Přejít k navigační liště

Zdroják » PHP » Instalace Apache, PHP a MySQL za 30 vteřin

Instalace Apache, PHP a MySQL za 30 vteřin

Články PHP

Jak si ve Windows spustit vlastní Apache, PHP a MySQL na svém PC za půl minuty.

Text vyšel původně na autorově webu Je čas.

Pro programování v PHP se většinou hodí mít možnost spouštět skripty na vlastním počítači, tzv. na localhostu. Je sice možné používat vzdálený webhosting a soubory upravovat a zkoušet přímo tam, ale lokální server mívá lepší odezvu.

Vlastní, nebo hotové řešení?

Jedna možnost, jak vlastního serveru docílit, je instalace jednotlivých aplikací vlastnoručně. Tedy nainstalovat si:

  • Apache (webový server)
  • PHP (podpora skriptování)
  • MySQL (database)

A nějak to nastavit, aby to dohromady fungovalo.

Dle mého názoru je to zbytečně pracné a zdlouhavé. Pohodlnější je použít hotový balík, který všechno nainstaluje sám, a další nastavování je povětšinou dostupné z grafického rozhraní a ne jen prostřednictvím konfiguračních souborů.

WampServer

Osobně se mi osvědčil WampServer.

Po stažení a prostém nainstalování jsou důležité následující údaje.

Složka pro umístění skriptů
C:\wamp\www
Zobrazení obsahu
http://localhost
Přihlašovací údaje k MySQL
  • Server: localhost
  • Jméno: root
  • Heslo: (prázdné)

Správa MySQL

Pro práci s DB (vytváření tabulek a podobně) je předinstalovaný nástroj phpMyAdmin (http://localhost/phpmyadmin/).

Osobně ale dávám přednost Admineru. Stačí stáhnout pouze českou versi pro MySQL.

Nastavení serveru

V případě, že se nastavení serveru na našem webhostingu liší od výchozího nastavení WAMPu, není problém si pohodlně zapínat různá rozšíření a moduly.

Veškeré nastavování (stejně jako spouštění/zastavování/restartování služeb) probíhá po kliknutí levým tlačítkem na ikonu WAMPu v hlavním panelu Windows vedle hodin.

Apache

U Apache se dá přímo zaškrtávat moduly, které mají běžet. V dnešní době je prakticky nezbytné například zapnout rewrite_module pro přepisování adres. Pro cacheování se potom hodí expires_module.

Ruční nastavování je možné provádět v souboru httpd.conf (vede na něj odkaz z menu WAMPu).

PHP

PHP má odděleno nastavení a rozšíření (PHP settings a PHP extensions):

Pro získávání obsahu cizích stránek se hodí v nastavení zapnout allow_url_fopen. K přístupu k serverům běžícím na HTTPS se zase hodí zapnout extenzi php_openssl a pro pracování s obrázky potom php_gd2.

Nastavování přes konfigurační soubor se provádí v souboru php.ini (také na něj vede odkaz z nabídky).

VirtualHosts

Při souběžném provozování více projektů se může hodit používat tzv. virtual hosty.

Díky tomu jde docílit hezčích adres než localhost/projekt. Třeba v podobě běžné domény – např. projekt.cz nebo projekt.local.

Jak na to?

  1. V souboru hosts ve Windows (umístění C:\Windows\System32\drivers\etc) přidat na konec souboru:
    127.0.0.1 projekt.local

    To zajistí, že se požadavek na „projekt.local“ pošle na lokální umístění (adresa 127.0.0.1), tedy localhost.

  2. V souboru httpd-vhosts.conf nastavit umístění souborů pro danou doménu. K httpd-vhosts.conf se jde proklikat z nabídky WAMPu v kategorii Apache nebo je umístěn v C:\wamp64\bin\apache\apache2.4.23\conf\extra. Jednotlivé virtual hosty jdou nastavit následovně:
    <VirtualHost *:80>
    	ServerName projekt.local
    	DocumentRoot c:/projekt/
    	<Directory  "c:/projekt/">
    		Options +Indexes +Includes +FollowSymLinks +MultiViews
    		AllowOverride All
    		Require local
    	</Directory>
    </VirtualHost>

Nyní by se po restartu Apache a zadání projekt.local do adresního řádku měl zobrazit obsah z c:/projekt.

Řešení problémů

Obsazený port

Může se stát, že WAMP z ničeho nic přestane fungovat. Typicky po nainstalování nějaké aplikace, která obsadí port 80 (ten používá WAMP ve výchozím nastavením).

V případě, že je blokování portu důvod, proč server neběží, se při testu portu 80 zobrazí název aplikace, která dělá problémy.

Řešení je tedy takovou aplikaci odinstalovat, vypnout, změnit u ní číslo portu nebo totéž změnit u Apache.

Službu Microsoft-IIS/7.5 z obrázku je možné vypnout v Ovládací panely\Systém a zabezpečení\Nástroje pro správu\Správce Internetové informační služby.

Změna portu

WAMP přímo nabízí možnost číslo portu změnit. Po kliknutí pravým tlačítkem na ikonku WAMPu v oznamovací oblasti, je tato možnost pod volbou Tools → Use a port other than 80.

Do zobrazeného dialogu stačí zadat jiné číslo (např. 8080). Adresa serveru potom nebude localhost ale localhost:8080.

Odkazy

Komentáře

Subscribe
Upozornit na
guest
11 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Oldis

wamp je uzasny nastroj, jen je skoda ze clovek co ho pouzije pak nema ani paru jak to vsechno funguje a jak je to propojene.

Michal Špaček

Na jednom počítači se mi cokoliv.local překládalo na IP adresu několik vteřin i přesto, že v etc\hosts byl správný záznam.

Nejspíš to bylo právě použitím .local domény. RFC 6762 (Multicast DNS) říká, že jakýkoliv DNS dotaz na cokoliv končící na .local MUSÍ být směrován na adresu 224.0.0.251, což právě mohlo způsobovat tu mou prodlevu. Přešel jsem na cokoliv.test, což je doména vyhrazená v RFC 2606 (Reserved Top Level DNS Names) a všechno je ok.

cokoliv.localhost zase nefunguje když to má v etc/hosts adresu jinou než 127.0.0.1 (třeba 127.0.0.123), Chrome od verze 43 překládá cokoliv.localhost stejně jako localhost, tedy na 127.0.0.1

Ondřej Mirtes

Na Macu mi při nainstalované php-imap extensioně trvalo každé spuštění CLI přesně 5 vteřin. Bylo to tím, že hostname mého počítače je „macbook.local“ :) Pomohlo přidat do /etc/hosts 127.0.0.1 macbook.local.

Michal Špaček

macOS má Multicast DNS („Apple began shipping mDNS in Mac OS X 10.2 in 2002“ — http://www.multicastdns.org/), takže to nejspíš posílalo na 224.0.0.251 a čekalo 5sec na timeout. Já mám na Windows nainstalovanou službu Bonjour, která Multicast DNS také „dělá“. Super, že se to vyřešilo úpravou etc/hosts (díky za info!), na Windows to nepomohlo, nejspíš kvůli jinýmu resolveru.

TomasVotruba

Díky za stručný článek k věci!

Mám ještě takový tip: většinu práce s apache, mod rewrite, hosts a doménami si můžeš ušetřit pomocí lokálního serveru. Ten spustíš v příkažové řádce:


php -S localhost:8080 -t C:\wamp\www

A otevřeš localhost:8080 a jedeš :-)


Port „8080“ můžeš samozřejmě změnit.
Na PHP 5.* to prý jelo pomaleji, ale s PHP 7.* jsem nikdy neměl problém.

Je to univerzální per OS, nezávislé na Apache/Nginx a hosts a nejtěžší je na tom napsat cestu ke složce. Pro začátečníka je tohle velká úleva. Sám si pamatuju, že první instalace PHP byla 5 % času PHP a 95 % času Apache a věci kolem.

Více příkladů viz php local server v dokumentaci

tacoberu

Umí to skoro všechno. Jen ne mapování koncovek. Soubor bez koncovky ok, s koncovkou .php ok. Ale třeba .gif, .jpeg už nefachá (.css, .js si nevybavuju). Testováno na PHP 5.6.

karel

Pred 15 lety jsem na win pouzival php triad. Dneska na linuxu poustim docker

Michal

Proč nepoužijete Docker?

uetoyo

Jestli se nepletu, tak na běh aktuální verze Dockeru potřebuju Windows 10. Jinak bych taky použil Docker. Vlastně bych rovnou změnil OS a používal Docker :D

Kůrovec

Zřejmě se jedna o článek z minulého století, který se nějakým nedopatřením dostal na titulní stránku.

Zkratka WAMP zní dneska jako solidní retro :-) Pár tipů ze současnosti: Docker, LXD, Vagrant, CoreOS, nebo celkem libovolná distribuce GNU/Linuxu.

lenochware

WAMP mě štval požadavky na instalaci nějakých microsoftích knihoven před vlastní instalací, potížemi s upgrade a taky dost nabobtnal.

Momentálně používám WPN-XM devstack (nginx, mariadb) – je mnohem menší a zatím spokojenost.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.

Pocta C64

Za prvopočátek své programátorské kariéry vděčím počítači Commodore 64. Tehdy jsem genialitu návrhu nemohl docenit. Dnes dokážu lehce nahlédnout pod pokličku. Chtěl bych se o to s vámi podělit a vzdát mu hold.