Instalace PHP na Mac OS X (Mountain Lion)

Pokud chcete vyvíjet PHP aplikace na Mac OS X, s využitím serveru Apache a databáze MySQL, nejjednodušším způsobem je stažení balíku Xampp, pomocí kterého vše nainstalujete a nemusíte se o nic starat. V tomto článku ale popíšu instalaci jednotlivých částí samostatně, protože je pak jednodušší jednotlivé programy a nástroje spravovat a aktualizovat.

Aktuální k 5.9.2014 kdy jsou dostupné verze PHP 5.4.32, 5.5.16 a 5.6.0. Návod je psaný pro PHP 5.4. ale stejným způsobem nainstalujeme i ostatní verze.

Pokud provádíte instalaci na novém stroji, doporučuji si nejdříve nainstalovat alespoň iTerm (vylepšená náhrada za klasický terminál) a Sublime Text (editor textových souborů). Instalaci provádím na systému Mac OS X verze 10.8.2 (Mountain Lion), kde je standardně předinstalován webový server Apache ve verzi 2.2.22. a PHP 5.3.13. Stejný postup funguje i pro Mac OS X 10.9.4 Mavericks. Apache použijeme interní, ale PHP si nainstalujeme vlastní. Pro zjištění verze Apache slouží příkaz:

httpd -v (nebo apachectl -v)

Pro PHP je to zase:

php --version (nebo php -v)

1) Instalace Command Line Tools

Abychom si mohli nainstalovat balíčkovací systém (viz. níže) budeme nejdřív potřebovat nástroj Command Line Tools (CLT), nebo Xcode (které CLT obsahují). Xcode se vám bude hodit, pokud chcete v budoucnu vyvíjet aplikace třeba pro iOS, ale jejich balíček má 1,5 GB. CLT jsou potřeba pro kopilaci některých Homebrew balíčků.

2) Instalace Homebrew

Pro pohodlnou instalaci vývojářských nástrojů a obecně programů, které nejsou běžně dostupné přes App Store, použijeme balíčkovací systém. Já používám Homebrew.

Instalaci provedeme v terminálu pomocí příkazu:

ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"

K Homebrew přistupujeme pomocí příkazu brew. Jako první spustíme:

brew doctor

Tento příkaz zkontroluje, jestli je vše v pořádku. Případné problémy jsou velice dobře popsané, včetně případných příkazů, které je potřeba spustit. Vlastní instalace nástrojů pak provádíme pomocí brew install a pro hledání balíčků slouží příkaz:

brew search php54

kde konkrétně v tomto případě hledá balíčky, které se týkají PHP 5.4. Homebrew ukládá vše do adresáře /usr/local/Cellar/, není tak potřeba být root při instalaci. Do souboru /etc/paths akorát napíšeme na první řádek /usr/local/bin, aby se primárně spouštěli programy instalované přes Homebrew a ne interní. Restartujeme terminál.

3) Instalace PHP

Nejdříve potřebujeme do Homebrew doplnit cesty k repozitářům, kde jsou PHP balíčky umístěny. Spustíme postupně příkazy:

brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php

Zjistíme si možnosti instalace:

brew options php54

A nainstalujeme aktuální PHP 5.4.:

brew install php54 --with-postgresql --with-mysql --with-intl

Jak jednoduché. Stejným způsobem můžeme nainstalovat třeba databázi Redis, nebo další rozšíření pro PHP. Výhodou instalace přes brew je snadná aktualizace (brew update) a instalace dalších rozšíření. Verzí PHP můžeme mít více a pak je přepínat v konfiguračním souboru Apache.

Použité přepínače při instalaci značí, že budeme chtít přibalit rozšíření pro Apache a MySQL databázi. Proces bude chvíli trvat a po skončení se vypíší důležité informace, které budeme potřebovat pro další kroky. Tyto informační kroky je možno znovu vypsat pomocí:

brew info php54

Zároveň můžeme zkontrolovat, jestli je vše v pořádku příkazem:

which pear

Pokud příkaz nic nevypíše, znamená to, že jsme nenastavili cestu /usr/local/bin do souboru /etc/paths viz. výše.

V případě problému konkrétně s homebrew je možno využít posloupnosti příkazů:

brew unlink php54
brew link php54

4) Nastavení PHP s Apache

Načtení PHP modulu do serveru Apache provedeme v konfiguračním souboru:

/etc/apache2/httpd.conf

Najdeme řádek LoadModule php5_module a nahradíme ho řádkem, který se nám vypsal po skončení instalace PHP:

LoadModule php5_module /usr/local/Cellar/php54/5.4.37/libexec/apache2/libphp5.so

Číslo verze (5.4.37) nemusí být stejné jako bude to vaše. Když už máme soubor otevřený, rovnou si nakonfigurujeme adresář, kam budeme ukládat naše webové projekty. Najdeme řádku DocumentRoot "/Library/WebServer/Documents" a změníme, například na:

DocumentRoot "/Users/Vojta/Www"

Dále musíme najít konfiguraci daného umístění <Directory "/Library/WebServer/Documents"> a tam také změnit cestu. Nakonec změníme ještě AllowOverride None na AllowOverride All, aby nám fungovalo nastavení v souborech .htaccess.

Tímto je webový server nakonfigurován a můžeme ho restartovat, aby se nastavení projevilo:

sudo apachectl restart

Apache se nyní restartuje i s PHP rozšířením. Pro další práci s Apache se mohou hodit i parametry start, restart a stop. Pokud by PHP stále nešlo, hodí se přidat řádek: AddType application/x-httpd-php .php.

5) Ověření funkčnosti Apache + PHP

Otevřeme webový prohlížeč a zadáme adresu http://localhost/, měli bychom vidět výpis složky, kterou jsme si nastavili jako úložiště webových projektů. Pokud se výpis zobrazil, je Apache server spuštěný a funkční.

Dále si můžeme vytvořit soubor info.php, do kterého napíšeme:

<?php phpinfo(); ?>

a zkusíme ho přes localhost otevřít. Pokud se zobrazila konfigurace PHP v přehledném výpisu, je Apache i PHP funkční. Ve výpisu si můžeme všimnout načteného konfiguračního souboru:

/usr/local/etc/php/5.4/php.ini

a také bychom měli ve výpisu najít sekci mysql, která značí, že je aktivní rozšíření pro MySQL databázi. Pokud sekce mysql chybí, znamená to, že PHP běží, ale není připraveno pro běh s MySQL databází.

V konfiguračním souboru php.ini je vhodné změnit:

error_reporting = E_ALL & ~E_NOTICE

na:

error_reporting = E_ALL

aby se zobrazovaly všechny chyby.

6) Instalace MySQL databáze

Instalaci provedeme pomocí:

brew install mysql

A spustíme příkazy, které nám instalátor vypíše. Bude se jednat o příkaz, který zajistí spuštění databáze i po restartu počítače. Databáze by měla automaticky běžet na portu 3306. Pro přístup můžeme použít buď webový phpMyAdmin, nebo desktopový SequelPro.

Případný manuální start databáze:

sudo mysql.server start

výpis aktuální verze MySQL:

mysql --version

7) Instalace phpMyAdmin

phpMyAdmin stáhneme z webových stránek a rozbalíme do Www adresáře. Nejdříve vyřešíme 2002 socket problém:

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Aby fungoval alias localhost na 127.0.0.1 a spustíme nastavení:

http://localhost/phpMyAdmin/setup/

Nebo můžeme přímo editovat konfigurační soubor config.php, to už je na nás. Půjde hlavně o nastavení přístupových údajů k databázi.

8) Instalace PhpUnit

Instalaci provedeme přes PEAR kanál:

sudo pear channel-discover pear.phpunit.de
sudo pear channel-discover pear.symfony.com
sudo pear channel-discover components.ez.no
sudo pear install phpunit/PHPUnit

Nyní by měl fungovat příkaz:

phpunit --version

9) Spuštění Apache i po restartu počítače:

Pokud chceme spouštět webový server i po restartu počítače, provedeme:

sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

Přepínač -w značí permanentní nastavení, které se zachová i po restartu.

Tímto máme mít nastavené a funkční tzn. LAMP (linux, apache, mysql, php) vývojové prostředí.