Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: php v terminálu a php.ini  (Přečteno 2714 krát)

Martin - ViPEr*CZ*

  • Závislák
  • ***
  • Příspěvků: 3047
php v terminálu a php.ini
« kdy: 23 Července 2011, 11:57:22 »
Zdravím kolegy a přítomné.
Mám takovej záhadnej problém. Když si v terminálu spustím skript přes:

Kód: [Vybrat]
php skript.php
Což mimochodem najdu všude, kde je tento problém. Tak se mi stane, že daná instance nepoužije danou konfiguraci php.ini. Protože, když použiju ve skriptu phpinfo, tak se mi např max_execution_time nastaví na 0 což je pěkná čuňačinka. Nevíte jakým přepínačem nebo jak to donutit, aby si to vzalo mojí konfiguraci? (-c path_k_ini nejde).
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

ETNyx

  • Aktivní člen
  • *
  • Příspěvků: 425
Re: php v terminálu a php.ini
« Odpověď #1 kdy: 23 Července 2011, 13:10:49 »
Zrovna tenhle případ (max_execution_time) je dost blbej, dokumentace pravi

http://www.php.net/manual/en/info.configuration.php#ini.max-execution-time

Citace
This sets the maximum time in seconds a script is allowed to run before it is terminated by the parser. This helps prevent poorly written scripts from tying up the server. The default setting is 30. When running PHP from the command line the default setting is 0.


Taky se mi nikdy nepodařilo php-cli donutit ke spolupráci s php.ini. Nicméně ruční konfigurací příkazu jde skript přinutit použít jinou hodnotu než-li 0
Kód: [Vybrat]
echo "<?php phpinfo(); ?>" | php -d max_execution_time=20 | grep max_execution_time
jabber: etnyx@jabbim.cz

Martin - ViPEr*CZ*

  • Závislák
  • ***
  • Příspěvků: 3047
Re: php v terminálu a php.ini
« Odpověď #2 kdy: 23 Července 2011, 13:14:20 »
Díky za reakci. Parametr -d jsem taktéž objevil v dokumentaci. Myslel jsem nějaké efektivnější řešení, aby to načítalo z konfigu (nejlépe php.ini). Kdybych chtěl např. upravit další 4 directivy, aby to bylo bezpečnější, tak bych se pokaždý musel opisovat. :-\
Maj to trochu nedomyšlený, obzvlášť když se zeptám na konfiguraci, tak mi to vypisuje, že si to loaduje onen správnej konfigurák php.ini, ale jako když to pak ty hodnoty zase přepíše.
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

ETNyx

  • Aktivní člen
  • *
  • Příspěvků: 425
Re: php v terminálu a php.ini
« Odpověď #3 kdy: 23 Července 2011, 13:23:07 »
Kód: [Vybrat]
sudo nano /usr/bin/php-my

#/!bin/bash

php -d max_execution_time=20 -d max_input_time=10

sudo chmod 755 /usr/bin/php-my
echo "<?php phpinfo(); ?>" | sudo php-my | grep max | grep time
echo "<?php phpinfo(); ?>" | sudo php | grep max | grep time


« Poslední změna: 23 Července 2011, 13:27:01 od ETNyx »
jabber: etnyx@jabbim.cz

Martin - ViPEr*CZ*

  • Závislák
  • ***
  • Příspěvků: 3047
Re: php v terminálu a php.ini
« Odpověď #4 kdy: 23 Července 2011, 13:28:43 »
Teď jsem poslední návod nepochopil k čemu to... neboť jsem se na ono neptal...ale díky. Udělat si takovýto bash skript umím ;)
Spíš mi šlo o to, že těch direktiv v konfiguraci php.ini mám nastaveno hafo... a muset je obsat do parametru -d pro terminál pro více skriptů je opruz. A udělat se vychytávku co mi ulehčí práci s tím vypisováním nebo jen kopírovat již podle nějakého prvního skriptu mi přijde jako zhovadilost, když už jeden php.ini mám. Myslel jsem, že php pro terminál s tím konfigem umí spolupracovat, ale asi se jedná o bug či co... díky.
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

ETNyx

  • Aktivní člen
  • *
  • Příspěvků: 425
Re: php v terminálu a php.ini
« Odpověď #5 kdy: 23 Července 2011, 13:57:27 »
Jen jsem se snažil pomoct,...

podle mně to v php.ini nastavit pro cli nepůjde Už v dokumentaci je napsáno že je to tak nastaveno na "tvrdo" (hardcore). A neviděl bych to jako bug. Předpokladem k spouštění skriptů v teminálu (ať už bash, php-cli nebo cokoliv) je oprávnění to udělat a oprávnění by měl mít člověk který tomu rozumí. Když spouštím nějakej bashovskej skript tak taky muže trvat 2 hodiny než se dokončí. A nechci aby mi to utnul nějakej max_execution_time. Narozdíl od běhu přes httpd jde ten skript přerušit jinak než killnutím httpd. Podle mně je nutno o php-cli přemýšlet jako o dalším "shellu" a ne o jako holé nadstavbě nad httpd, která je httpd navíč řízena
jabber: etnyx@jabbim.cz

Martin - ViPEr*CZ*

  • Závislák
  • ***
  • Příspěvků: 3047
Re: php v terminálu a php.ini
« Odpověď #6 kdy: 23 Července 2011, 14:53:27 »
Omlouvám se, nemyslel jsem to zle.

To je asi pravda a asi s tím nebudu mít problém. V tom případě dotaz malinkatý. Na hostinzích je povolený cron. Když do cronu dám php skript s nějakou nekonečnou smyčkou a nějakou akcí, aby to zaměstnalo malinko server, pak se každou minutu spustí nový a nový takovýto skript co se neukončí. Jak se například proti tomuto brání?

Toto možná objasní moje pátrání. ;)
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

ETNyx

  • Aktivní člen
  • *
  • Příspěvků: 425
Re: php v terminálu a php.ini
« Odpověď #7 kdy: 23 Července 2011, 15:27:09 »
Nevím jakým způsobem to dělají velké hostingy, ale já mám na serverch skript kterej dovoluje uživatelům nastavit cron, tedy kdy a jakej skript se má spustit, ale nevolám php ale wget, takže to jede normálně přes httpd takže se akceptuje php.ini úplně normálně, jako při přístupu přes prohlížeč.
jabber: etnyx@jabbim.cz

Martin - ViPEr*CZ*

  • Závislák
  • ***
  • Příspěvků: 3047
Re: php v terminálu a php.ini
« Odpověď #8 kdy: 23 Července 2011, 15:58:20 »
Přes wget to není marný otevřít to jako browser. (doufám, že má volbu nějakou aby ty data jakoby nestahoval... ještě jsem nekoukal)
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

ETNyx

  • Aktivní člen
  • *
  • Příspěvků: 425
Re: php v terminálu a php.ini
« Odpověď #9 kdy: 23 Července 2011, 16:04:50 »
teďka si nejsem uplně jist jak to mam nastavený, ale
Kód: [Vybrat]
wget -O /var/cron/www.exmaple.com/cron.php --max-redirect 100 -w 5 http://www.example.com/cron.phppripadne to lze nastavit tak, že se nic nestahuje pomocí
Kód: [Vybrat]
-O -
navic tam mam nastaveno maximalne 100 redirectu a cekanim 5s mezi jednotlivými redirecty.
jabber: etnyx@jabbim.cz

 

Provoz zaštiťuje spolek OpenAlt.