Přeskočit přímo na text


Cron na strojích, kde nemáte wget ani poormanscron

Píšem tu malú noticku, ktorá snáď bude nápomocná, ak sa niekto ocitne v podobnom probléme. Zároveň ma zaujíma, či existujú i iné riešenia.
 Náčrt:

  1. spúšťanie CRONu v drupalovskej inštalácii na hostingu, kde máte prístup len cez FTP a CRON je poskytovaný formou adresárov (CRONden, CRONhodina etc.), kde uploadnete skripty
  2. php binárka (PHP je na Apache ako FastCGI) raz začas prekukne tieto CRONovské adresáre, spustí všetky skripty a vymalováno

Problém:

  1. nezavoláte skript pomocou wgetu ani nijakej inej aplikačky – tieto adresáre sú len pre php skripty (častý bezpečnostný neduh, ja osobne viem, že to má takto organizovaný Český Hosting a Webhosting C4)
  2. logicky teda umiestnite do CRONu súbor cron.php, upravíte cestu k includovaným súborom a pokojne zaspávate. Ouha, nefunguje. Problém je asi v systémových cestách, v includovanom skripte includes/bootstrap.inc je toho požehnane, a keď som ho editoval, tak som si rozhasil celý drupal (toto je len moja voľná úvaha, opravte ma, ak sa mýlim)
  3. nechcel som poormanscron. Neznášam zbytočné navrstvovanie modulov.

My way:

1. Začal som pátrati po možnosti uploadu php súboru, ktorý by volal cron.php v roote inštalácie drupalu (spúšťal ho!). Naveľa som narazil na funkciu file_get_contents()
tu link na syntax na php.net
tu link na popis funkcie od Kuby Vrány
2. samotný skript je triviálny:

<?php
$vosolho = file_get_contents('http://vasadomena.cz/cron.php');
echo $vosolho;
?>

3. nezabudnite si nastaviť file permiss. tohto súboru na execute

About the author

http://dobo.sk

 

C4

na hostingu C4 provozuju nekolik webu, a cron jsem vzdy resil jednoduse tim ze jsem napsal na podporu ktery soubor volat, kdy ho volat a je to.

ja to obycajne riesim tak, ze

ja to obycajne riesim tak, ze cron na vsetkych strankach, kde mam drupal, spustam z lubovolneho ssh uctu (teda linuxu), ktory mam k dispozicii. teda nie z lubovolneho, ale v podstate len z jedneho. mam teda v cron-e niekolko takychto riadkov (v zavislosti od poctu instalovanych drupal webov):

0 0 * * * wget -q -O /dev/null „http://adresa.drupal.webu/cron.php“

vyhoda? spusta sa to naozaj pravidelne cron-om, nemusim riesit instalaciu dodatocnych modulov alebo inych „pseudo cron“ rieseni.

pochopiteľne

lenže ja nemám na hostingu prístup k wget-u. Mám to vždy „odpáliť“ zo svojho desktopu? to by šlo, ale čo v prípade, že idem na 2 týždne dovolenky atd. Chcem riešenie, ktoré by vobec nepočítalo s prácou inej mašiny, než tá, na ktorej je webserver s Drupalom.

díky za jednoduché a funkční

díky za jednoduché a funkční řešení pro neprogramátory! :)

To jsem musel dělat např. na

To jsem musel dělat např. na Českém hostingu. Jen doplním, že skript lze zjednodušit na toto:
 <?php file_get_contents(‚http://vasweb.cz/cron.php‘); ?> 

Bacha, ty uvozovky mají být oboje horní jednoduché.

Poslat nový komentář

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
  • You can use Texy! to format and alter entered content.
  • Povolené HTML značky: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <p> <br> <b> <i> <h2> <img> <pre> <sup> <sub> <pre class="php"> <span class="php-keyword1"> <span class="php-var"> <span class="php-num"> <img class="screenshot"> <p class="beginner"> <a class="greybox"> <h3> <h4>

Více informací o možnostech formátování

Mollom CAPTCHA (play audio CAPTCHA)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated.

Drupal meet-up mobilni web 2011

Hledat

Přihlášení

Poslední komentáře