Kategoria: Pozycjonowanie

SeoAdder w CRONie lub CRONTABie

2008 Wrzesie艅 26 – 16:18

Przegladajac forum SeoAddera zauwazylem ze wiele osob ma problem z automatycznym dodawaniem do katalogow. Ogolnie wiadomo ze potrzeba do tego pliku automat.php oraz programu CRON.
Postaram sie tutaj opisac najczesciej wystepujace problemy i ich rozwiazania, jako ze mialem SeoAddera na 1 wspoldzielonym hostingu, na 2 domowych serwerach (ubuntu i debian), a teraz mam na serwerze dedykowanym. Wydaje mi sie ze spotkalem sie z wiekszoscia problemow ktore mogly sie pojawic.

Zakladam ze tzw „dodawanie reczne” czyli przez przegladarke dziala.
Jesli dodawanie nie dziala, rzuc okiem do podrecznika instalacji seoaddera, czy masz wszystkie potrzebne pakiety php zainstalowane.

Absolutne dzialajace rozwiazanie

Jedyna metoda, ktora dziala dla mnie, na wszystkich moich serwerach to:
/usr/bin/php-cgi -f /home/xxx/public_html/seoadder/automat.php > /dev/null;
Naturalnie sciezke do php nalezy odpowiednio dobrac. Metoda ta wymaga zainstalowanego php-cgi lub php-fcgi.
Koncowka „> /dev/null” jest obowiazkowa ! Inaczej nie dziala !
>” zapisuje dane w bardzo pojemnym pliku /dev/null 馃槈

Dla bardziej niekumatych, moja linijka w crontabie wyglada tak:
0,30 1-8 * * * /usr/bin/php-cgi -f /home/yyy/public_html/seoadder/automat.php > /dev/null;

Problemy i rozwiazania

  • Brak CRONa (crontab)
    w przypadku braku crona (co jest prawie niemozliwe) nie mozemy okresowo uruchamiac naszych skryptow, nalezy w takim wypadku zainstalowac crona 馃槈
  • CRON sie nie uruchamia
    sprawdz w logach (zwykle /var/log/syslog), ta linia mowi ze skrypt sie uruchomil
    Sep 26 10:50:01 komp /USR/SBIN/CRON[17975]: (yyy)
    CMD (/usr/bin/php-cgi -f /home/yyy/public_html/seoadder/automat.php > /dev/null;)

    dokladniej, ze uzytkownik yyy na komputerze o nazwie komp, uruchomil automat.php.
  • CRON sie uruchamia, ale nie dodaje stron
    to w sumie najpowazniejszy problem, bo wydaje sie ze wszystko dziala, a mimo to nie dziala 馃槈
    dlatego poswiece temu caly „punkt”

Nie-dzialajacy automat CRON, ale reczne dodawanie dziala

Ogolne:

  • CRON z natury nie widzi sciezek, czyli uruchomienie w cronie php-cgi nie da efektu bo cron tego pliku nie znajdzie, mimo ze ta komenda bez problemu dziala w konsoli !!!
    Nalezy wpisac pelna sciezke np. /usr/bin/php-cgi.
    To samo dotyczy wget. Czyli nalezy wpisac np. /usr/bin/wget.

Niektore przyklady wzielem z forum seoaddera. Niektore sa z moich doswiadczen.

  • problem ze zwyklym cronem
    /usr/bin/php-cgi -f /home/xxx/public_html/seoadder/automat.php
    lub
    /usr/bin/php-cgi -f /home/xxx/public_html/seoadder/automat.php;
    Zdarza sie ze proces „nie trwa”. Czyli od razu po wlaczeniu sie wylacza. O dziwo u mnie problem ten rozwiazal sie kiedy wyjsce przekierowalem do pliku. Nie wiem czemu tak sie dzieje, ale po dopisaniu na koncu „> logowanie„, albo lepiej „> /dev/null„, cron i automat.php dziala.
  • problem z komenda file, readfile, file_get_contents
    Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /home/frutek/domains/adder.flader.pl/public_html/cron-1310.php on line 3
    Warning: file_get_contents(http://adder.flader.pl/auto321.php) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /home/frutek/domains/adder.flader.pl/public_html/cron-1310.php on line 3

    Jest to wbrew pozorom rzecz naturalna, poniewaz proba sciagniecia pliku z innego serwera czesto nie jest dozwolona (kwestia bezpieczenstwa), a bezpiecznie robi sie to CURLem. Takie rozwiazanie wydaje sie tez niepotrzebnie zamotane, chociaz ma ten plus ze mozna z innego serwera/komputera przez crona uruchamiac automat.php.
  • co do poprzedniego problemu
    Jesli chcemy otwierac plik automat.php niebezposrednio (np z innego serwera), najlepiej zamiast php uzyc zupelnie normalnego wgeta (niezalecam lynx, ani links, niepotrzebne obciazenie serwera)
    /usr/bin/wget http://seoadder.jakishosting.pl/automat.php -q -O/dev/null
    To rozwiazanie jest czyste i nieskomplikowane. Musi dzialac jesli dziala dodawanie reczne. W ten sposob mozna rowniez przekazac haslo. Opcja -q to quiet, a -O/dev/null to jak zwykle zapisanie logow w odpowiednim miejscu 馃槈
    Zamiast -O/dev/null mozna uzyc opcji –spider ktora ma taki sam efekt, ale jest chyba korzystniejsza pod wzgledem zasobow.
  • problem z dodatkowym plikiem cron-xxxx.php
    zalozmy ze utworzylismy powyzszy plik i zawiera on teraz
    <? chdir('Adder/');
    include_once('automat.php'); ?>

    ale wyskakuje komunikat:
    Warning: chdir() [function.chdir]: No such file or directory (errno 2) in /home/xxx/domains/adder.vdl.pl/public_html/Adder/cron.php on line 2
    wtedy bierzemy slownik jezyka angielskiego i czytamy „nie ma takiego pliku albo katalogu”, co znaczy tyle, ze zle podalismy sciezke w chdir. Wtedy sprawdzamy poprawnosc sciezki, albo bezpieczniej, podajemy sciezke absolutna, w tym wypadku
    /home/xxx/domains/adder.vdl.pl/public_html/Adder/
    Mozna rozwazyc sciezki „/Adder„, „./Adder„, „Adder” i „Adder/„. Oczywiste jest ze sciezka „/Adder” ani „/Adder/” nie ma sensu (rooty wiedza o co chodzi).
  • powyzszy problem, mozna lepiej rozwiazac wpisujac w cronie odpowiednia sciezke, czyli
    cd /home/xxx/public_html/seoadder/; /usr/bin/php-cgi -f automat.php;
    sprawa jest oczywista, cd przechodzi do odpowiedniego katalogu, po czym php uruchamia automat.php
  • problem z prawami dostepu
    Tue Aug 21 00:00:04 2007 [VCRON] WARN!!! : Can't exec "/home/xxx/ftp/cron-1310.php": Brak dost臋pu at /usr/local/bin/vcron_worker line 113
    Nawet bez slownika widzimy ze nie mamy dostepu do pliku, albo plik nie jest uruchamialny (na jedno wychodzi). Wiec sprawdzamy poprawnosc sciezki, nadajemy prawa uruchamiania (x) dla pliku, oraz sprawdzamy czy my jestesmy uzytkownikiem crona (czy jakis cronuser albo cos). Jesli cron ma swojego usera, naturalnie musi on tez miec dostep do uruchamianego pliku.
  • problem z prawami dostepu/uruchamianiem
    Wpisujac w CRONie „/home/xxx/ftp/cron-1310.php” mozemy natrafic na oczywisty problem, poniewaz pliki PHP zwykle nie sa uruchamialne.
    Can't exec "/home/xxx/ftp/cron-1310.php": Brak dost臋pu
    Czyli nalezy to uzupelnic dopisujac (patrz punkt pierwszy) np.
    /usr/bin/php /home/xxx/ftp/cron-1310.php
  • mamy taki blad
    Warning: file_get_contents(template/adding_row.htm): failed to open stream: No such file or directory in /home/vvv/public_html/adder/Ctemplate.php on line 10
    Brak prawa dostepu do pliku : stat/4.dat

    plik jest uruchamiany przez
    /usr/local/bin/php /home/vvv/public_html/adder/automat.php
    Tutaj wyglada na to ze php jest uruchamiany jako modul, albo przez fcgi
    , a nie przez najprostsze cgi. To znaczy ze interpretacja php odbywa sie nie jako uzytkownik uruchamiajacy komende, tylko jako uzytkownik php-costam (albo np apache). Naturalnie moze on nie miec praw dostepu do odpowiednich plikow.

Dodawanie dziala, ale nie tak jak chce

  • dodawanie jest zbyt powolne
    W takiej sytuacji nalezy uruchamiac skrypt automat.php czesciej. Wazne jest zeby dwie instancje (uruchomione skrypty) sie nie nakladaly. Czyli nalezy sprawdzic jaki jest najdluzszy czas uruchomienia skryptu php i dac mu dodatkowo kilka minut. Np u mnie skrypt dziala przez 12 min, wiec moge go bez strachu uruchamiac co 15 minut.
    Uwaga. Czasami ustawienie skryptu (np moje 12 minut) jest ograniczone przez serwer php (ktory moze miec to ustawione np na 5 minut). Wtedy nic nie poradzimy, bo watpie zebysmy przegadali admina zeby zwiekszyl ten limit dla tak malo istotnej aplikacji.
  • dodawanie jest zbyt powolne, mimo ze czesto uruchamiam
    Moze sie tak zdarzyc jak mamy slabe lacze, albo serwer jest przeciazony.聽 Korzystnie jest uruchamiac automat.php w nocy, kiedy obciazenie sieci jest o wiele nizsze niz w dzien.
  1. One Response to “SeoAdder w CRONie lub CRONTABie”

  2. Witam,

    Dziekujemy za obszerne wyjasnienie problemow, ktore dotykaja naszych klient贸w.

    Przy okazji chcemy wspomnie膰 o wersji Addera 7, kt贸r膮 ju偶 dzi艣 mo偶na naby膰 wraz z serwerem w doskona艂ych baaardzo konkurencyjnych cenach ! 馃檪

    zapraszamy na http://www.seoadder.info !

    By Emterso on Sty 12, 2011

Dodaj komentarz

Tw贸j adres email nie zostanie opublikowany. Pola, kt贸rych wype艂nienie jest wymagane, s膮 oznaczone symbolem *