Obsługa CRONa (Crontab)

Na niektórych typach serwerów (nie posiadających odpowiedniego panelu zarządzania, np. DirectAdmin czy cPanel) zachodzi konieczność ręcznej edycji poleceń CRONa.
Jeżeli chcielibyśmy edytować polecenia CRONa musimy zalogować się do serwera przez SSH. Następnie wydajemy polecenie
crontab -e
Inne polecenia:
crontab -l listowanie poleceń CRONa
crontab -r usunięcie wszystkich poleceń CRONa
Po uruchomieniu edycji wpisów, możemy je modyfikować używając następujących przycisków:
i zastąpnienie
a dodanie
x skasowanie
dd skasowanie całej linii
: początek komendy
:w zapisywanie
:q wyjście
:q! wyjście bez zapisywania
:wq wyjście z zapisaniem

Uruchomienie cURL na WebServ’erze

cURL jest domyślnie wyłączony na WebServerze. Aby go uruchomić należy:

1. Odpalić edycję pliku php.ini (z menu WebServ Ustawienia->PHP i z listy rozwijanej Edycja plików konfiguracyjnych wybieramy php.ini)

2. Znaleźć i odkomentować linijkę
;extension=php_curl.dll
Po zmianie linijka powinna wyglądać tak
extension=php_curl.dll

3. Zapisać zmiany i zrestartować WebServ

Często po takiej zmianie występuje problem z bibliotekami .dll. W takim przypadku w katalogu z WebServ znajdujemy dwie biblioteki:
ssleay32.dll (zazwyczaj lokalizacja wygląda tak C:/Program Files/WebServ/php/ssleay32.dll)
libeay32.dll (zazwyczaj lokalizacja wygląda tak C:/Program Files/WebServ/php/libeay32.dll).

Następnie obydwie biblioteki kopiujemy do głównego katalogu Windowsa, np C:/Windows.
Restartujemy WebServ – powinno już działać.

Przypisanie domeny do serwera home.pl

Niestety główni polscy hostingodawcy tacy jak nazwa.pl czy home.pl zrezygnowali z udostępniania swoim klientom ogólnie znanych paneli obsługi serwera takich jak DirectAdmin czy cPanel, na rzecz własnych, nie zawsze dopracowanych i zrozumiałych dla użytkowników. Także panele domen nie są zoptymalizowane pod kątem usability.

Problemem może okazać się np. dodanie domeny zakupionej w Home do serwera tego hostingodawcy. Po wejściu w panel zarządzania domeną, kliknięciu Usługi, następnie domeny która nas interesuje, a na końcu Konfiguracja usługi. Naszym oczom ukazuje się niewielki panel zarządzania wartościami konfiguracyjnymi domeny. Dopiero po kliknięciu przycisku Konfiguruj domenę (rys. poniżej)

przechodzimy do właściwej edycji pozwalającej na dodanie domeny do serwera.

Jeżeli domenę chcemy dodać do serwera home.pl, wybieramy opcję Przypisz domenę do usługi w home.pl, wpisujemy nazwę usługi (serwera) i hasło. W przypadku przekierowania na podkatalog zaznaczamy opcję Włącz przekierowanie na podkatalog i wpisujemy nazwę katalogu.

Po zapisaniu, zmiany powinny być widoczne po ok godzinie.

Wywołanie w CRON skryptu umieszczonego na innym serwerze

Polecenie wywołania skryptu przez CRONa, na lokalnym serwerze jest powszechnie znane i może przybrać postać:

/usr/local/bin/php /home/login_konta/sciezka_do_skryptu/twojskrypt.php

Problem pojawia się gdy chcemy wywołać skrypt znajdujący się na innym serwerze. Sytuacja taka typowa jest dla serwerów oferujących bardzo rzadkie wywołania z poziomu CRONa. Dla przykładu na serwerach nazwa.pl (autorski panel zarządzania serwerem), skrypty można wywoływać tylko co godzinę. Rozwiązaniem problemu jest wywoływanie skryptów z zewnętrznych serwerów, takich jak np. linuxpl.com (panel DirectAdmin).

Wywołanie skryptu znajdującego się na innym serwerze niż CRON, może przybrać następującą postać:

/usr/bin/lynx --dump http://twojawitryna.pl/twojskrypt.php/

Katalog na serwerze chroniony hasłem – htaccess auth

Często się zdarz,a że chcemy chronić jakieś dane znajdujące się na serwerze. Oczywiście można napisać skrypt logowania, który umożliwi wyświetlenie zawartości danej strony jedynie zalogowanym użytkownikom. Co jednak jeśli chcemy chronić dostęp do wszystkich plików, podkatalogów znajdujących się w danym katalogu?

Z pomocą przychodzi nam .htaccess.

W katalogu, który chcemy chronić, tworzymy plik .htaccess z następującymi regułami:

AuthName "Tekst do wyświetlenia, np. podaj hasło"
AuthType Basic
AuthUserFile /SCIEZKA_BEZWZGLEDNA_DO_KATALOGU_Z_PLIKIEM_HASEL/.htpasswd
Require valid-user

W katalogu do którego nie ma dostępu zwykły user (np. katalog wyżej od public_html) tworzymy plik .htpasswd. W pliku tym będziemy przetrzymywali hasła. Ścieżka bezwzględna do pliku powinna zostać wpisana w pliku .htaccess zamiast SCIEZKA_BEZWZGLEDNA_DO_KATALOGU_Z_PLIKIEM_HASEL

Struktura pliku .htpasswd powinna mieć postać:

user1:password1
user2:password2
user3:password3

itd., gdzie “user1″ to nazwa użytkownika, a “password1″ to hasło dla tego użytkownika. Hasło musi przed wpisaniem do pliku zostać zakodowane. Narzędzie do kodowania haseł najdziecie tutaj http://www.kxs.net/support/htaccess_pw.html

Po wykonaniu powyższych kroków i wpisaniu do przeglądarki adresu katalogu bądź katalogów podrzędnych, powinno wyskoczyć okienko logowania. Kiedy wprowadzimy dane dowolnego usera z pliku .htpasswd uzyskamy dostęp do katalogu.

Fatal error: Allowed memory size of 8388608 bytes exhausted

Kiedy używamy lokalnego serwera często pojawiają się problemy z pamięcią.

Bez odpowiedniej konfiguracji często niektóre skrypty po prostu nie działają.

Jednym z częstych błędów jest przekroczenie dopuszczalnego rozmiaru pamięci. Przykładowy błąd “Fatal error: Allowed memory size of 8388608 bytes exhausted” pojawi się w momencie, gdy skrypt próbuje wykorzystać więcej pamięci niż zostało przydzielone (w tym przypadku 8MB).

Rozwiązanie tego problemu jest bardzo proste. Wyłączamy nasz lokalny serwer. Następnie odnajdujemy plik php.ini (c:/Windows/php.ini). Edytujemy jego treść. W linijce zawierającej

memory_limit =

zmieniamy przydzielony limit pamięci. Standardowo ustawiony limit wynosi 8M. Możemy go zmienić na np. 16M.

Po wprowadzeniu zmian zapisujemy je i powtórnie uruchamiamy serwer.

Odradzam edycję pliku przed wyłączaniem serwera (w wielu poradnikach można znaleźć info o tym żeby po wyedytowaniu pliku php.ini po prostu zrestartować serwer) – może to powodować jego zawieszanie i niestabilną pracę.

Po restarcie środowiska odświeżamy stronę. Jeżeli przydzieliliśmy odpowiednio dużo pamięci błąd nie powinien się już pojawić.

Problem ze skryptem po przeniesieniu na home.pl – home.hit.gemius.pl

Często spotykanym problemem podczas przenosin serwisów z serwera na serwer, jest nagłe “wysypanie się” skryptu.

Jeżeli przenosiliście portal na home.pl, jeden ze skryptów przestał działać, pokazuje się pusta strona, a na dolnym pasku przeglądarki, obok paska postępu wyświetla się napis “Przesyłanie danych z home.hit.gemius.pl…” poniżej prezentuję rozwiązanie problemu.

Bug ten związany jest ze statystykami home.pl. Wywołanie adresu home.hit.gemius.pl w jakiś sposób blokuje prawdopodobnie niektóre JSy (mi zablokowało jquery). Generowany jest błąd zawieszający przeglądarkę.

Rozwiązanie problemu jest banalne. Wchodzimy w panel zarządzania serwerem na home.pl i przechodzimy do zakładki konfiguracja www.  Na samym dole w ramce Statystyki stat.pl z listy rozwijanej wybieramy serwis, który chcemy naprawić. Klikamy wybierz. Po załadowaniu odpowiedniego portalu (domeny) odhaczamy opcję dodaj automatycznie skrypt zliczający do serwisu ‘twojawitryna.pl’home.hit.gemius.pl

Klikamy zapisz.

Problem powinien zniknąć