Jak spustit soubor PHP na počítači. Pokud je vše v pořádku

Okamžitě učiním výhradu, že vše, co bude probráno v tomto článku, je použitelné pouze pro operační systémy typu Unix a nebude fungovat pod Windows. To je přesně to, o čem mluvíme alternativa ke koruně. Nešťastní milovníci Windows budou muset kouzlit "Plánovač úloh"- Černá magie pro ně zůstane nepřístupná :) Navíc budete potřebovat ssh přístup, a v ideálním případě - přístup php skripty do příkazového řádku.

Co je to démonický program a jak napsat démona v PHP

Démon(démon, démon, starořecké božstvo δαίμων) - počítačový program v systémech třídy UNIX, spouštěných samotným systémem a spuštěných pozadí bez přímou interakci s uživatelem. Démoni se obvykle spouštějí během spouštění systému.

Aplikovatelné na PHP, je to skript, který může běžet sám o sobě, bez zastavení a bez interakce uživatele. Jak takový skript získat? Ve skutečnosti je to velmi jednoduché, stačí porušit jedno z prvních pravidel programování, které učí ve škole, a vytvořit nekonečná smyčka:

// Aby program fungoval neustále, musí prostě pracovat neustále;) while(1) ( // Kód démona bude umístěn zde // ... // Doba spánku démona mezi iteracemi (závisí na potřebách systém) spánek(1);

Neskutečně jednoduchý kód stále vyvolává několik otázek. Jak to spustit? Jak sledovat jeho realizaci? Jak ho zastavit?

Jak spustit php démona

Jak obecně spouštíte PHP skripty? Pokud se jedná o webovou aplikaci, pak pomocí prohlížeče a webového serveru. Tato možnost ale není vhodná, protože máme co do činění s nekonečným skriptem a doba provádění skriptů je omezena direktivou max_execution_time PROTI php.ini. Přes konzoli se tedy musí spouštět nekonečný skript, protože pak se nepočítá s maximální dobou provádění. Příkaz pro spuštění démona vypadá asi takto:

PHP -f /cesta/k/vasemu/daemon.php &

Pro ruční start musí být zadán v ssh terminálu (putty, WinSCP atd.) a musí být systémem spuštěn při startu - do odpovídajícího spouštěcího souboru (pozice a název souboru závisí na operační systém). Všimněte si prosím té konzole démon skript běží na pozadí, aniž by uživatel musel čekat na jeho dokončení (koneckonců, skript je nekonečný). Právě schopnost spouštět proces na pozadí je důvodem, proč metoda, kterou popisuji, není vhodná pro servery Windows. Po spuštění by se měla zobrazit konzole id procesu našeho démona, takzvaného PID.

Sledování a zastavení démonů

Zda proces démona běží, můžete zkontrolovat jednoduchým otevřením seznamu procesů v systému:

PS-aux

Nalezení démona v seznamu procesů je snadné, jak pomocí příkazu spuštění, tak pomocí PID:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND ... root 22193 0,1 0,2 393180 72132 ? S 24. dubna 5:05 php -f /cesta/k/vasemu/daemon.php &

Zastavte proces démona můžete to udělat stejným způsobem jako jakýkoli jiný proces:

Zabít xxxx

V uvedeném příkladu je xxxx PID, identifikátor procesu.

Stojí za zmínku, že to není zastavení, ale spíše „zabití“ procesu démona. Scénář se totiž bude kdekoli přerušovat, což se ne vždy každému hodí. Teoreticky by v tomto případě měl být démon zastaven někde mezi jeho iteracemi a již ne z konzole. Můžeme například vytvořit požadavek na zastavení skriptu v databázi nebo v nějakém souboru na serveru a mezi iteracemi démona zkontrolovat, zda takový požadavek existuje. Pokud je aplikace nalezena, zastavte smyčku příkazem break.

Systém ovládání démonů

Co když potřebujete vytvořit a sledovat mnoho démonů najednou? Například ve výše zmíněné službě CheckTrust se na zpracování uživatelských dat a projektů podílí > 30 takových skriptů. Jejich vytváření a sledování z konzole je velmi nepohodlné – je potřeba uživatelsky přívětivější rozhraní.

V pohodě, že? :) Tak akorát na tvoření podobný systém bylo by hezké mít přístup k příkazovému řádku z php. Každý démon je záznam v databázi, naproti kterému můžete zadat příkaz pro jeho spuštění, stejně jako Zpracovat PID. V důsledku toho je možné spouštět, zastavovat a sledovat stav démonů přímo z webového rozhraní. V důsledku toho se ukázalo, že samotní démoni jsou součástí konzolové aplikace a systém pro jejich správu se stal součástí webové aplikace.

Vzhledem k tomu, že výše uvedený systém je navržen výhradně pro CheckTrust, nebudu jeho kód ukazovat. Ale zkopíruji kód sem třída php pro procesní řízení, který jsem použil při jeho vytváření:

<?php /* * Process.php * Snadný způsob, jak mít přehled o externích procesech. * Chtěli jste někdy spustit proces v php, ale chtěl mít proces trochu pod kontrolou? No... Tohle je způsob, jak to udělat.

* @kompatibilita: Pouze Linux. (Windows nefunguje). * @author: Peec */ class Process( private $pid; private $command; public function __construct($cl=false)( if ($cl != false)( $this->command = $cl; $this-> runCom(); ) ) soukromá funkce runCom())( $příkaz = "nohup ".$this->příkaz." > /dev/null 2>&1 & echo $!"; exec($příkaz ,$op); $ this->pid = (int)$op ) veřejná funkce setPid($pid)( $this->pid = $pid; ) veřejná funkce getPid())( return $this->pid; ) status veřejné funkce(); ))( $command = "ps -p ".$this->pid; if (!isset($op))vrátí hodnotu false; jinak vrátí hodnotu true; this->command != "")$this->runCom() ; else return true; ( $příkaz = "zabít ".$this->pid; exec($příkaz); if ($ this->status() == false)return true; else return false;

Jedinou nevýhodou této třídy je, že jsem již popsal tu vaši - zastavuje procesy pomocí metody kill, ale to mi zatím stačí :) A tady to je příklad jeho použití:// Spusťte démona a

získání PID (za předpokladu, že je pid někde po spuštění uložen) $command = ""; $process = new Process($příkaz); $processId = $process->getPid(); // Kontrola stavu démona $process = new Process(); $process->setPid($processId); $stav = $proces->stav(); // vrátí true nebo false // Zastavení démona $process = new Process(); $process->setPid($processId); $zastaveno = $proces->stop(); // vrátí true nebo false

  • Abych to shrnul, chci říct, že to není jediná možná a dost možná ani nejoptimálnější implementace démonů v PHP. Existuje například skvělé PHP rozšíření PCNTL pro víceprocesové démony. Někdo by mohl dokonce říci, že pro konzolové aplikace existují úplně jiné programovací jazyky. Ale ať už se dá říci cokoli, tato implementace je nepopiratelná výhody:
  • Je jednoduchá jako pantoflíček. Démon je jen nekonečná smyčka, mnohem jednodušší.
  • Je kompatibilní s webovými aplikacemi- jako součást webové služby se moji démoni spoléhají na stávající vývoj, používají stejné datové modely, třídy a metody práce s nimi.

Funguje to!

Zdravím všechny. Dnes začínám psát nová sekcePHP! V podstatě zde budou základy a základy tohoto jazyka. A nejprve vám řeknu, jak otevřít soubor php v prohlížeči?

Proč se php neotevírá jako html?

Tady je věc: php je jazyk na straně serveru. Html a javascript jsou na straně klienta. V souladu s tím je pro spuštění kódu PHP nutné spustit server, pouze v tomto případě lze soubor otevřít. Ve skutečnosti existují pouze 2 způsoby:

  1. Vytvořit na skutečný hosting stránky, kde budete experimentovat s php
  2. Vytvořit lokální server, kde můžete tvořit zdarma neomezené množství stránky na vašem počítači a experimentujte, jak chcete.

A důrazně vám radím přesně tu druhou možnost. Než začnete otevírat soubory php, musíte takový server nainstalovat. Jen si nemyslete, že je to těžké – zvládnete to za pár minut. Z nejznámějších místních serverů pro Windows Mohu zdůraznit následující:

  1. OpenServer
  2. Denwer
  3. Xammp

Osobně jsem spolupracoval pouze s Denverem. O jeho instalaci bych mohl psát samostatně, ale usoudil jsem, že nemůže být nic lepšího než oficiální dokumentace od vývojářů. V tomto ohledu je to tady. Na internetu můžete najít spoustu článků a videí o instalaci jiných serverů.

Jak otevřít soubor php po instalaci serveru?

Je server nainstalován? Skvělé, nyní máte vše pro spouštění souborů php. Ve skutečnosti k tomu musí být spuštěn váš místní server. Toto je zkratka, kterou byste měli mít na ploše:

Nyní musíte vytvořit nový web pro váš místní server. Opět jen ukazuji, jak to udělat v Denveru. Pojďme na kořenová složka server, zde najdeme složku domov. Bude obsahovat všechny vaše stránky. Potřeba vytvořit nová složka, jeho název bude názvem nového webu. Ve vytvořené složce musíte vytvořit složku www, bez toho nebude nic fungovat. Posledním krokem je přetažení potřebných php souborů (které je potřeba otevřít) do složky www. Je to kořenový adresář webu.

Způsob otevírání souborů php se liší od způsobu otevírání html. Nelze je otevřít přímo v prohlížeči, v takovém případě uvidíte pouze kód. Chcete-li otevřít soubor, musíte zaregistrovat web, na kterém se nachází, a také cestu k souboru na webu. Chci zdůraznit, že pokud jednoduše zadáte název webu (bez http://, ale s lomítkem), server spustí index.php, pokud nějaký existuje.

Příklad:
Vytvořil jsem na lokálním serveru složku phptest s www a už jsem do ní nahrál potřebné soubory. Skvělé, nyní musíte restartovat Denver, pokud jste jej měli spuštěný. Pokud ne, stačí spustit. Nyní do řádku prohlížeče musíte zadat: phptest/

Takže se dostanete domovskou stránku místo. Tento soubor by se měl jmenovat index.php. Například jsem vytvořil kalkulačku v php, dal ji do phptestu s názvem calc.php. Před tento soubor napíšu adresu:

Skvělé, kalkulačka se otevřela. Aplikaci můžete otestovat.

Jak neotevírat php?

Nemusí to být provedeno jako html soubory. Tedy ne skrz "Otevřít pomocí""prohlížeč". Takže teprve uvidíte zdrojový kód spis, v žádném případě však výsledek jeho provedení.

To je vše, přišli jsme na to, jak otevřít soubor php v prohlížeči. Stačí jednou nainstalovat a nakonfigurovat lokální server a v budoucnu budete moci bez problémů otevírat soubory tohoto rozlišení. To je vše, co pro dnešek mám. Doufám, že vám vše vyšlo. Uvidíme se.

V SAPI CLI jsou tři odlišně spustit PHP kód:

    Ukazování konkrétní soubor začít.

    $ php my_script.php $ php -f my_script.php

    Oba způsoby (s uvedením možnosti -F nebo bez) spustí soubor my_script.php. Můžete si vybrat libovolný soubor ke spuštění a vaše PHP skripty nemusí mít příponu .php a může mít libovolný název a příponu, kterou chcete.

    Komentář:

    Pokud potřebujete předat argumenty svým skriptům, pak při použití volby -F první argument by měl být -- .

  1. Předejte PHP kód přímo na příkazovém řádku.

    $ php -r "print_r(get_defined_constants());"

    Při použití této metody musíte být obzvláště opatrní, protože může dojít k záměně. shellové proměnné při použití dvojitých uvozovek.

    Komentář:

    Přečtěte si prosím pozorně příklad, neobsahuje otevírací ani zavírací tagy! Volba-r

  2. prostě je nepotřebuje. Jejich použití bude mít za následek chybu analyzátoru. Předejte spuštěný PHP kód přes standardní vstup ().

    stdin To dává mocná příležitost

    dynamicky generujte PHP kód a vložte jej do spouštěcího souboru, jak ukazuje tento (falešný) příklad:

$some_application | nějaký_filtr | php | sort -u > final_output.txt

Žádný z těchto tří způsobů spouštění kódu nelze kombinovat. Jako každý jiný konzolová aplikace , binární soubor PHP přebírá argumenty, ale váš skript PHP může také přebírat argumenty. PHP není omezující, předané vašemu skriptu (konzolový shell nastavuje určitou hranici pro počet znaků, které lze předat; tento limit je obvykle dostatečný). Předané argumenty jsou dostupné v globálním poli $argv . První index (nula) vždy obsahuje název skriptu volaného z příkazového řádku. Vezměte prosím na vědomí, že pokud je kód volán za běhu z příkazového řádku pomocí volby Volba, hodnota $argv bude jednoduše spojovník ( - ). Totéž platí pro kód odesílaný z STDIN.

Druhá registrovaná globální proměnná je $argc, která obsahuje počet prvků v poli $argv ((a Ne počet argumentů předávaných skriptu).

Pokud argumenty, které předáte, nezačínají znakem - , To speciální problémy tam by nemělo být. - Předáním argumentu skriptu, který začíná -- způsobí problémy, protože PHP se rozhodne, že by to mělo zvládnout samo. Chcete-li tomuto chování zabránit, použijte oddělovač seznamu argumentů

. Jakmile PHP přečte tento oddělovač, všechny následující argumenty budou předány beze změny vašemu skriptu.# Tento příkaz se nespustí tento kód

, ale zobrazí informace o použití PHP $ php -r "var_dump($argv);" -h Použití: php [-f] [...] # Tento příkaz předá vašemu skriptu argument "-h", čímž zabrání zobrazení nápovědy PHP $ php -r "var_dump($argv);" -- -h array(2) ( => string(1) "-" => string(2) "-h" ) Na unixových systémech však existuje jiný způsob, jak použít PHP pro konzolové skripty. Můžete napsat skript, jehož první řádek začíná #!/usr/bin/php(v případě potřeby nahraďte správnou cestu k vašemu binárnímu souboru soubor PHP CLI). Za tento řádek můžete umístit běžný PHP kód uzavřený v otevírání a zavírání PHP tagy

. Jakmile u souboru nastavíte správné atributy spuštění (např.

chmod +x test
), váš skript lze spustit jako běžný skript konzole nebo perl:
?>

Příklad č. 1 Spuštění PHP skriptu jako konzolového skriptu

#!/usr/bin/php

var_dump ($argv); - .

Spustitelný soubor PHP lze použít ke spouštění skriptů PHP nezávisle na webovém serveru. V případě, že běžíte na systému podobném Unixu, musíte ke všem skriptům přidat speciální první řádek a nastavit je jako spustitelné, abyste označili, který program má tyto skripty zpracovávat. Na platformách Windows můžete souborům s příponami přiřadit obslužný program php.exe .php nebo vytvořte dávkový soubor (.bat) pro spouštění skriptů pomocí PHP. Řádek přidaný na začátku skriptu pro unixové systémy neovlivňuje jejich provoz na OS Windows, takže můžete vytvářet skripty pro různé platformy. Níže je uveden jednoduchý příklad skriptu spouštěného z:

příkazový řádek

chmod +x test

Příklad #2 Skript navržený ke spuštění z příkazového řádku (script.php)
?>

If ($argc != 2 || in_array ($argv [ 1 ], array("--help" , "-help" , "-h" , "-?" ))) (

Toto je skript konzole PHP, který má jeden argument.

nebo -? zobrazí aktuální informace nápovědy.
) jinak (
}
?>

echo $argv [ 1 ];

Ve výše uvedeném příkladu používáme speciální první řádek k označení, že tento skript je třeba spustit pomocí PHP. Protože pracujeme s verzí CLI, nebudou se zobrazovat hlavičky HTTP. Při psaní konzolových aplikací v PHP máte k dispozici dvě proměnné: $argc a $argv . První je počet předaných argumentů plus jedna (název skriptu, který se provádí). , Druhým je pole předávaných argumentů počínaje názvem skriptu s indexem nula ($argv). , Také ve výše uvedeném příkladu kontrolujeme počet předávaných argumentů. V případě, že je jich více či méně, a také v případě, že předaný argument byl -? --pomoc

-pomoc -h nebo , zobrazíme zprávu nápovědy nahrazením názvu skriptu, který je dynamicky prováděn. Jinak přijatý argument jednoduše vytiskneme. Pokud chcete výše uvedený příklad spustit na unixovém systému, budete jej muset nastavit jako spustitelný a jednoduše jej spustit z konzole script.php echothis:

nebo

skript.php -h

. V systému Windows pro to můžete vytvořit dávkový soubor Příklad č. 3 Dávkový soubor pro spuštění PHP skriptu z příkazového řádku (script.bat) @echo OFF "C:\php\php.exe" script.php %*.

Můžete se také podívat na rozšíření Readline, které lze použít k vylepšení skriptu konzoly PHP.

PHP je jedním z nejvíce populární jazyky programování na webu. Za svou oblibu vděčí především snadnému učení a všestrannosti. Rozsah jeho uplatnění ale nekončí pouze tvorbou jednoduchých webových stránek. PHP skripty lze spouštět z příkazového řádku, což umožňuje psát na něm plnohodnotné konzolové aplikace.

Jak spustit php skript z příkazového řádku?

Bez ohledu na operační systém, který používáte, ke spuštění skriptu musíte do konzoly zadat následující příkaz:

PHP skript.php

Váš operační systém může zobrazit zprávu, která to uvádí příkaz php jí neznámý. V tomto případě a pokud jste si jisti, že je samotný PHP interpret správně nainstalován, pomůže zadání úplné cesty k interpretu při spuštění skriptu.

C:\php\php.exe skript.php

Pro Systémy podobné UNIXu:

/usr/bin/php script.php

Vezměte prosím na vědomí, že cesta k PHP interpretu ve vašem systému může být odlišná, takže to je také třeba vzít v úvahu. Například pro uživatele oblíbeného balíčku WampServer může být cesta:

C:\wamp\bin\php\php5.3.8\php.exe

A konečně, abyste pokaždé nezadávali celou cestu, měli byste přidat cestu k interpretu proměnná prostředí PATH vašeho operačního systému.

Píšeme jednoduchý skript pro kontrolu kódu odpovědi serveru

Abychom ukázali vlastnosti skriptu z příkazové řádky, napíšeme jednoduchou aplikaci, která zabere textový soubor s odkazy a zkontrolujte kód odpovědi serveru pro každý z těchto odkazů. Navíc poskytneme možnost výběru požadovaný soubor PROTI interaktivní režim zjistit, jak se to dělá.

Ihned po spuštění skript vybere všechny soubory s příponou *.txt from složky souborů. Poté výstupy tento seznam uživateli ve formátu číslo => jméno a čeká, až uživatel zadá číslo souboru, o který má zájem.

Načtení všech souborů pomocí masky je snadné, použijeme k tomu standardní funkci glob, ale čtení dat z konzole je o něco zajímavější. Faktem je, že po spuštění skriptu z příkazového řádku tři standardní průtok: Pro výstup (STDOUT), vstup (STDIN) a chyby (STDERR). Ukazatele na tyto proudy má skript k dispozici ve formě stejnojmenných konstant a lze s nimi pracovat stejně jako např. s běžné soubory. Chcete-li tedy číst data z konzoly, jednoduše načtěte řádek ze vstupního proudu: fgets(STDIN) .

$soubory = glob("soubory/*.txt");

$files or exit("Žádné soubory ke kontrole.".PHP_EOL);

echo "Soubory ve složce: ".count($files).PHP_EOL;

foreach ($files jako $index => $name) ( echo "[($index)] => ($name)".PHP_EOL; ) echo "Vyberte soubor: "; $volba = intval(fgets(STDIN)); Poté, co uživatel provedl svůj výběr a ověřil, že výběr je správný, můžeme soubor otevřít ke čtení. Array_key_exists($choice, $files) or exit("Vybrán nesprávný soubor.".PHP_EOL);$soubor = $soubory[$volba]; echo "Zpracovávání souboru "($soubor)...".PHP_EOL;$start_time = microtime(true);

$code_stats = array();

$f = fopen($soubor, "r");

Pomocí

zatímco smyčka

Začneme iterovat všechny řádky v souboru. Řetězce musí být platné adresy URL, jinak je nebudeme schopni určit

správný kód

To je vše, jednoduchá a interaktivní konzolová aplikace v PHP je připravena. Nechtěl jsem psát nějaký úplně zbytečný program, takže se tento skript hodí nejen k učení, ale i k použití. Pokud například uložíte mapu webu do textového souboru, skript vám pomůže určit možné chyby s odkazy, a když to trochu upravíte, tak to i naznačí jaké :).

Samotnou aplikaci lze stáhnout.

Tento článek poskytuje průvodce krok za krokem při instalaci PHP pro spolupráce S HTTP server Apache na Windows. Tento postup byl testován na Windows XP i Vista. Předpokládá se, že jste již dokončili instalaci Apache.

Kroky nastavení PHP 5

1. Stáhněte si PHP 5

Než začnete, stáhněte si kopii PHP 5 z stránky ke stažení. Stáhněte si zabezpečený balíček VC6 ze sekce "Windows Binaries" - to znamená, že nestahujte instalační program. Vyberte například balíček označený „ ZIP balíček PHP 5.2.5"pokud je zapnuto momentálně aktuální verze — 5.2.5 .

Poznámka: Upozorňujeme, že níže uvedený postup jsem netestoval verze PHP 5.3, pouze s 5.2.5, což bylo nejnovější verzi v době psaní. Teoreticky by měly být provedeny stejné kroky pro Instalace PHP 7 .

2. Nainstalujte PHP 5

Vytvořte složku na pevném disku pro PHP. Navrhuji c:php , i když můžete použít jiný název složky a umístění. Osobně raději nepoužívám názvy s mezerami.

Extrahujte všechny soubory ze staženého archivu do této složky. Chcete-li to provést, jednoduše dvakrát klikněte na soubor zip. A pak přetáhněte všechny soubory do složky c:php.

3. Pro ty, kteří aktualizují balíček: Odstraňte starý soubor PHP.INI z adresáře Windows

Pokud upgradujete na PHP 5 z výše stará verze, přejděte na adresář Windows , (obvykle je to c:windows) a odstraňte všechny soubory php.ini, které jste tam dříve umístili.

4. Nastavení PHP

Přejděte do složky c:php a vytvořte kopii souboru php.ini-recommended. Jméno nový soubor php.ini. Nyní byste měli mít soubor c:phpphp.in s obsahem shodným se souborem c:phpphp.ini-recommended.

Poznámka: Pokud používáte Apache 1, musíte buď přesunout soubor php.ini do adresáře Windows ( c: windows), nebo nakonfigurovat proměnná prostředí CESTA k zahrnutí c:php. Pokud nevíte, jak to udělat, jednoduše přesuňte soubor php.ini do složky c:windows. Pokud používáte Apache 2, nemusíte to dělat, protože později uvedeme direktivu v konfiguračním souboru Apache 2 s umístěním souboru php.ini.

Chcete-li nainstalovat PHP na Windows 7 pomocí textový editor (například Poznámkový blok, který najdete v části Systém v nabídce Start)? otevřete soubor php.ini. Možná budete muset v souboru provést následující změny:

a) Včetně krátkých otevíracích štítků

Najděte následující řádek:

short_open_tag = Vypnuto

Pokud je short_open_tag nastaveno na vypnuto , značky jako "

Protože mnoho PHP skriptů třetích stran používá "

short_open_tag = Zapnuto

b) Magické citáty

Když je standardně nainstalován Apache PHP, příchozí data nejsou automaticky escapována lomítkem. Pokud chcete, aby vstup měl předponou zpětné lomítko (""), například pro reprodukci nastavení hostování, vyhledejte následující řádek:

magic_quotes_gpc = Vypnuto

a nahradit jej:

magic_quotes_gpc = Zapnuto

Nedoporučuje se to dělat, pokud tento parametr není na hostingu nastaven. I při nastavení na Vypnuto můžete stále používat PHP funkce addlashes() přidat lomítka pro konkrétní části dat.

c) Použití globálních proměnných

Řada starších skriptů při spuštění předpokládá, že všechna data odeslaná prostřednictvím formuláře budou mít automaticky proměnnou PHP se stejným názvem. Pokud má například formulář vstupní pole s názvem „něco“, starší skripty PHP předpokládají, že procesor PHP automaticky vytvoří proměnnou nazvanou $něco, která obsahuje hodnotu zadanou prostřednictvím tohoto pole.

Pokud takové skripty používáte, musíte najít následující řádek:

register_globals = Vypnuto

a změňte to na:

register_globals = Zapnuto

Upozornění: Při instalaci PHP na Windows to nedělejte, pokud nemáte skripty třetích stran, které to vyžadují. Při psaní nových skriptů je nejlepší vždy předpokládat, že element register_globals je nastaven na " Vypnuto«.

d) Zobrazení chyb

Na živém webu se chyby ve skriptu obvykle zaznamenávají, aniž by se objevily v souboru chyb PHP. Ale na lokálním počítači, když testujete a ladíte PHP skript, je pohodlnější odesílat chybové zprávy, když jsou detekovány přímo do okna prohlížeče. Tímto způsobem vám neuniknou chyby, i když zapomenete zkontrolovat soubor protokolu chyb.

Chcete-li, aby PHP zobrazovalo chybové zprávy přímo v okně prohlížeče, vyhledejte následující řádek:

display_errors = Vypnuto

a změňte to na:

display_errors = Zapnuto

Toto nastavení by mělo být na běžícím webu vždy nastaveno na Vypnuto.

e) Cesta relace

Pokud skript používá relace, vyhledejte následující řádek:

;session.save_path = "/tmp"

session.save_path určuje složku, kam PHP ukládá soubory relace. Protože složka /tmp ve Windows neexistuje, musíte nainstalovat jinou složku. Jedním ze způsobů je vytvořit složku s názvem c:tmp ( jako dříve jsme vytvořili c:php) a zadejte tuto složku pro tento parametr. Pokud to uděláte, změňte tento řádek následovně:

session.save_path = "c:tmp"

Všimněte si, že kromě změny cesty jsem také odstranil předponu středníku (";") z řetězce.

Můžete také použít aktuální složku TEMP v počítači. Nebo vytvořte složku tmp v adresáři PHP, například c:phptmp, a podle toho nastavte konfigurační soubor. Možností může být mnoho. Pokud se nemůžete rozhodnout, který si vybrat, stačí vytvořit c:php a udělat, jak jsem řekl výše.

f) Server SMTP

Pokud jste nainstalovali PHP 55, pokud váš skript používá funkci mail() a chcete, aby funkce úspěšně odeslala poštu na vašem místním počítači, podívejte se na následující část:

; Pouze pro Win32. SMTP = localhost smtp_port = 25 ; Pouze pro Win32. ;odeslat_od= [e-mail chráněný]

Změňte jej tak, aby zahrnoval adresu vašeho serveru SMTP a e-mailový účet. Například pokud váš SMTP server mail.example.com a e-mailovou adresu [e-mail chráněný], změňte kód takto:

SMTP = mail.example.com smtp_port = 25 sendmail_from = [e-mail chráněný]

Vezměte prosím na vědomí, že když se poté skript pokusí použít funkci mail(), bude se muset připojit k vašemu ISP, aby úspěšně fungoval. Pokud nezměníte výše uvedené řádky a pokusíte se použít funkci mail() ve skriptu, funkce vrátí kód selhání a zobrazí chybovou zprávu.

Jak nakonfigurovat Apache pro PHP 5

Apache PHP lze nainstalovat dvěma způsoby. Za prvé: nastavte jej na stahování PHP interpret jako modul Apache. Za druhé: nakonfigurujte jej tak, aby spouštěl interpret jako binární soubor CGI. Je třeba použít pouze jeden z nich. Vyberte metodu modulu, pokud je na hostingu nainstalováno také PHP, jako je modul Apache, nebo použijte metodu CGI, pokud je na hostingu implementována.

a) Spuštění PHP 5 jako modulu Apache

Chcete-li nakonfigurovat Apache tak, aby načítal PHP jako modul pro analýzu PHP skriptů, použijte textový editor ASCII k otevření konfiguračního souboru Apache httpd.conf.

Pokud používáte Apache 1.x, je soubor umístěn ve složce c:Program FilesApache GroupApacheconf. Uživatelé Apache 2.0.x jej mohou najít ve složce C:Program FilesApache GroupApache2conf a uživatelé Apache 2.2.x jsou ve složce C:Program FilesApache Software FoundationApache2.2conf. Obvykle se nachází ve složce conf adresáře, kde je nainstalován Apache.

Vyhledejte část souboru s příkazy LoadModule. Deklarace, kterým předchází symbol hash "#", jsou považovány za komentované.

Pokud používáte Apache 1.x, přidejte za všechny příkazy LoadModule následující řádek:

LoadModule php5_module "c:/php/php5apache.dll"

Pokud používáte Apache 2.0.x, přidejte za všechny příkazy LoadModule následující řádek:

LoadModule php5_module "c:/php/php5apache2.dll"

Pokud používáte Apache 2.2.x, přidejte následující řádek:

LoadModule php5_module "c:/php/php5apache2_2.dll"

Všimněte si, že tento příklad instalace PHP používá znak lomítka („/“) namísto tradičního zpětného lomítka ve Windows („“). Nejedná se o překlep.

Pokud používáte Apache 1.x, najděte řadu příkazů "AddModule" a za všechny řádky přidejte následující.

AddModule mod_php5.c

Potom najděte v souboru blok AddType a za poslední příkaz AddType přidejte následující řádek. To je třeba provést bez ohledu na to, jakou verzi Apache používáte. Pro Apache 2.2.x musíte v sekci najít řádky AddType . Přidejte řádek těsně před uzavřenímpro tuto sekci.

Pokud potřebujete podporu pro jiné typy souborů, jako je „.phtml“, přidejte je do seznamu, například takto:

Pro ty, kteří používají jednu z verzí Apache 2, musíte zadat umístění souboru PHP ini. Přidejte následující řádek na konec souboru httpd.conf.

PHPIniDir "c:/php"

Pokud jste použili jiný adresář, budete muset změnit c:/php na správnou cestu. Nezapomeňte použít lomítko ("/").

Pokud používáte Apache 1, již jste umístili soubor php.ini do složky Windows nebo někam do své PATH. PHP si to tedy bude muset najít samo.

Spuštění PHP 5 jako CGI binární

Pokud jste nakonfigurovali PHP 5 tak, aby se načítalo jako modul Apache, můžete tuto část přeskočit. Je určen pro ty, kteří chtějí nakonfigurovat PHP tak, aby běželo jako binární CGI.

Postup při instalaci PHP 7 je stejný pro Apache 1.xa všechny verze řady 2.x.

Vyhledejte část konfiguračního souboru Apache, která obsahuje sekci ScriptAlias ​​​​. Přidejte řádek níže bezprostředně za řádek ScriptAlias ​​pro " cgi-bin" Pokud používáte Apache 2.2.x, ujistěte se, že řádek je před zavřenímpro oddíl .

Vezměte prosím na vědomí: Pokud jste nainstalovali PHP do jiného umístění, například c:Program Filesphp , musíte místo toho zadat příslušnou cestu c:/php/ (například c:Program Filesphp). Nezapomeňte, že zde používáme dopředné lomítko ("/") místo zpětného lomítka Windows ("").

ScriptAlias ​​​​/php/ "c:/php/"

Apache potřebuje nakonfigurovat typ PHP MIME. Najděte blok komentáře AddType vysvětlující jeho použití a přidejte pod něj následující řádek. Pro Apache 2.2.x vyhledejte řádky AddType pod . Přidejte následující řádek těsně před uzavřením pro tuto sekci.

AddType application/x-httpd-php .php

Stejně jako při instalaci PHP jako modulu Apache můžete přidat jakákoli rozšíření, aby je Apache rozpoznal jako PHP skripty, například:

AddType application/x-httpd-php .phtml

Poté musíte serveru říci, aby spustil spustitelný soubor PHP pokaždé, když narazí na skript PHP. Přidejte do souboru následující kód, například za blok komentářů vysvětlujících " Akce«.

Pokud používáte Apache 2.2.x, přidejte kód ihned za výše popsaný příkaz AddType; Apache 2.2.x nemá blok komentářů " Akce«.

Action application/x-httpd-php "/php/php-cgi.exe"

Poznámka: Část "/php/" bude rozpoznána jako ScriptAlias, což je druh makra, které bude Apache rozšířeno na "c:/php/" ( nebo "c:/Program Files/php/", pokud jste tam nainstalovali PHP). Jinými slovy, neuvádějte cestu "c:/php/php.exe" nebo "c:/Program Files/php/php.exe", ale použijte „/php/php-cgi.exe“ .

Pokud používáte Apache 2.2.x, vyhledejte v souboru httpd.conf následující část:

Přidejte řádky níže hned za sekci, kterou jste právě našli.

AllowOverride None Options None Objednat povolit, odepřít Povolit od všech

c) Nastavení výchozí stránky indexu

Tato část se týká možnosti instalace PHP na Windows jako modulu Apache i binárního CGI.

Pokud vytvoříte soubor index.php a chcete, aby jej Apache načetl jako domovskou stránku webu, budete muset do souboru httpd.conf přidat další řádek. Najděte řádek, který začíná " DirectoryIndex“ a přidejte „ index.php" do seznamu souborů. Pokud jste například měli kód takto:

DirectoryIndex index.html

změnit na:

DirectoryIndex index.php index.html

Až se příště přihlásíte na webový server pomocí názvu adresáře, jako je „ localhost"nebo" localhost/directory/", Apache odešle všechny skripty z index.php nebo obsah souboru index.html, pokud index.php není dostupný.

Restartujte webový server Apache

Restartujte server Apache. To je nezbytné, aby Apache mohl číst nové konfigurační direktivy PHP, které jste umístili do souboru httpd.conf. Server Apache 2.2 lze restartovat poklepáním na ikonu Apache Service Monitor na hlavním panelu a kliknutím na tlačítko „Restartovat“ v okně, které se objeví.

Testování instalace PHP

Po instalaci PHP 5 5 nebo jiné verze jazyka vytvořte soubor php s následujícím řádkem:

Uložte soubor s názvem test.php do adresáře Apache htdocs. Pokud používáte Poznámkový blok, nezapomeňte uložit název " test.php“ s uvozovkami. V opačném případě program automaticky přidá příponu .txt.

Otevřete tento soubor ve svém prohlížeči zadáním „localhost/test.php“ (bez uvozovek) do adresního řádku. Neotevírejte soubor přímo prostřednictvím Průzkumníka – uvidíte pouze kód, který jste zadali dříve. Chcete-li, aby se prohlížeč pokusil o přístup k webovému serveru Apache, na kterém běží PHP pro interpretaci skriptu, musíte použít výše uvedenou adresu URL.

Pokud vše proběhne v pořádku, zobrazí se vám stránka s informacemi o nastavení PHP. Gratulujeme – úspěšně jste nainstalovali PHP a nakonfigurovali Apache pro práci s ním. Můžete nahrát stejný soubor test.php na svůj hosting a spustit jej tam, abyste zjistili, jak hosting nakonfiguroval PHP, a pokuste se tato nastavení reprodukovat na vašem počítači.

Pokud to nefunguje, zkontrolujte, zda instalace PHP nebo instalace Apache nehází chyby. Chcete-li to provést, otevřete okno příkazového řádku a spusťte php-cgi.exe v souboru test.php, například c:phpphp-cgi test.php .

Pokud jste zavolali PHP z příkazového řádku a viděli jste velký soubor HTML se všemi konfiguračními informacemi PHP, pak je PHP nakonfigurováno správně. Problém pravděpodobně souvisí s konfigurací Apache. Ujistěte se, že po provedení změn konfigurace restartujete Apache a že jste správně nakonfigurovali webový server.




Nahoru