PHP fejlesztői környezet OSX-en

2011. október 23. vasárnap - kepes

Ha jól emlékszem lassan három hónapja gyűröm a MacBook Pro-t, és próbálom elfelejteni az évek alatt beidegződött Windows-t több kevesebb bosszúság árán. Eljutottam addig a pontig, hogy már nem csak felhasználóként szeretném használni az OSX-et, hanem az új webtárhely oldalunkat a Tárhelypark-ot oldalt is szeretném ezen fejleszteni és tesztelni mielőtt éles üzembe kerül. Mivel egyelőre ezt WordPress-el tervezzük, ezért szükségem van a Mac-en egy Apache/PHP/MySQL fejlesztői környezetre, amit most össze is rakok.

Állítólag a Mac már alap kiszerelésben is egy fejlesztői gép, ezért minden van rajta kezdve az Apache-tól a PHP-n át a Ruby-ig. Ez talán igaz is lehetne, ha nem derült volna ki azonnal, hogy azért egy kis tuningolás nem árt, mert egy alap WordPress futtatásához hiányzik egy két dolog: a PHP telepítésből az mcrypt könyvtár, a MySQL adatbázis kezelő, és némi Apache konfiguráció.

A konfiguráció amin dolgozom: Mac OS X 10.6.8 (10K549) – Snow Leopard

OSX Apache konfiguráció

Az OSX-ben már benne van az Apache, de nem fut, el kell indítani:

$ sudo apachectl start

leállítani vagy újraindítani így tudod:

$ sudo apachectl stop

$ sudo apachectl restart

Ha fut a webszerver akkor a localhost-on már látnod is kell egy böngészőből:

http://localhost

Apache Virtuális hosztok

Én szeretem a virtuális hosztok használatát, mert így könnyebb megjegyezni az egyes alkalmazások elérését, és nem kell foglalkozni az elérési utakkal az URL-ben. Úgy terveztem, hogy a létrehozott oldalakat a saját Sites könyvtáramban fogom tárolni a /Users/user/Sites könyvtárban, mert ezt használja több program is alapértelmezésben.

Az Apache konfigurációs fájlban (/etc/apache2/httpd.conf) engedélyezni kell a virtuális hosztokat:

/etc/apache2/httpd.conf

# Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf

A httpd.vhosts.conf konfigurációs fájlban felvettem a tarhelypark.local domain-hez tartozó hosztot.

httpd-vhosts.conf

ServerAdmin xyz@codeplay.hu
DocumentRoot "/Users/kepes/Sites/tarhelypark-wp"
ServerName tarhelypark.local
ServerAlias *.tarhelypark.local
ErrorLog "/private/var/log/apache2/tarhelypark.local-error_log"
CustomLog "/private/var/log/apache2/tarhelypark.local-access_log" common

Hosts fájl az OSX-en

Ahhoz, hogy a virtuális hosztok működjelenk, még fel kell venni a megfelelő nevűt a /etc/hosts fájlba. A ServerName paraméterben megadott nevet kell hozzákapcsolni a localhost Ip címéhez.

$sudo nano /etc/hosts

127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
127.0.0.1 tarhelypark.local
127.0.0.1 myadmin.local
127.0.0.1 blog.tarhelypark.local

Miután ezt felvettük, és az Apache újraindult, a böngészőből el lehet érni a szervert a tarhelypark.local beírásával.

Symbolic link not allowed or link target not accessible

Jól használhatók még a szimbolikus linkek is, amiket trükkös engedélyezni. Nem a fő konfigurációs fájlban kell beállítani a FollowSymlinks paramétert mert egy inkludált konfig fájl felülírja azt.

/etc/apache2/users/username.conf

Options Indexes MultiViews FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Amiért még ilyen hibaüzenetet kaphatunk, az a könyvtár jogosultsága amire a szimbolikus link mutat. Ha a konfiguráció után még mindíg jelentkezik a probléma, akkor jól nézd át a jogokat és tulajdonosokat!

PHP konfiguráció

Eredetileg nincsen php.ini fájl, létre kell hozni a /etc könyvtárban

$ sudo cp /etc/php.ini.default /etc/php.ini

PHP és mcrypt

A PHP alap konfigurációból hiányzik az mcrypt könyvtár, ami számos programhoz, például a PHPMyAdmin-hez is szükséges. Ezt most pótolni fogjuk.

Először is nézzük meg milyen php verzió fut a gépen:

$ php -v

PHP 5.3.4 (cli) (built: Dec 15 2010 12:15:07)

Copyright (c) 1997-2010 The PHP Group

Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Nálam a PHP 5.3.4. Ahhoz, hogy az mcrypt-et hozzá tudjuk kapcsolni a PHP-hez szükségünk van a következő három dologra:

Az xcode telepítése után csomagold ki a libmcrypt és php letöltéseket. A libmcrypt fordítása:

$ ./configure

$ make

$ make install

A PHP-ből nincsen szükség a teljes csomag lefordítására, csak az mcrypt kiegészítő szükséges:

$ cd php-/ext/mcrypt/

$ sudo phpize

$ sudo ./configure

$ sudo make

$ sudo make install

Ezek után létre kell jöjjön egy .so fájl a /usr/lib/php/extensions/no-debug-non-zts-20090626 könyvtárban.

Az /etc/php.ini fájlban szerepelnie kell a következő két sornak:

extension_dir=/usr/lib/php/extensions/no-debug-non-zts-20090626
extension=mcrypt.so

Az Apache újraindításával a phpinfo-ban meg kell jelennie az mcrypt könyvtárban.

MySQL

A MySQL letöltés és telepítése egyszerű, ezt nem részletezem. Miután a telepítés befejeződött szükség van a my.cnf konfigurációs fájl létrehozására a /etc könyvtárban. Én a fejlesztéshez a legkisebb példa konfigurációt, a my-small.cnf fájlt választottam.

$ sudo cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf

Alapértelmezés szerint a PHP rossz helyen keresi a sock fájlt, ezért meg kell változtatni a /etc/php.ini fájlban a mysql.default_socket bejegyzést:

mysql.default_socket = /tmp/mysql.sock

$ sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

Érdemes belerakni a MySql-t a path -ba

$ nano ~/.profile
export PATH=$PATH:/usr/local/mysql/bin

Címkék: , , , , ,

3 hozzászólás “PHP fejlesztői környezet OSX-en” bejegyzésre

  1. junkiest szerint:

    Nice tutorial…. thanks !!!

  2. atomxml.org szerint:

    Ebből az Apple Pro-ból meglenne egy jó kis Sony Vaio és egy Alianware asztali gép monitorral, plusz egy jó kis Cisco router. Utána az Alienware – re mehet is fel a Windows Server és a Microsoft IIS. Azt ha beindul a vállalkozás akkor bedobható a szerverterembe.

    Nem tom telepítettél e már fel PHP-t IIS-re kb. 3 klikk, SSL/TLS – t egy normál emberi lény be sem tud állítani Apache-on, IIS-en 2db klikk. Friendly URL-ezés is kb. 3db klikk, míg apache-on vagy alias-ozol, vagy nevetséges .htaccess-ezel.

    Szóval felejtsd el az Apple-t webszerverre ez a cuccos nem arra való, hanem csak státusszimbólumnak.

  3. kepes szerint:

    Köszi az infot, de a cikk nem arról szól, hogy webszervert telepítettem volna, hanem fejlesztői környezetet, ami arra való, hogy lefejleszd az alkalmazásod, és utána ha működik, kirakd webszerverre.

    A fejlesztői környezet egyik alap feladata szerintem, hogy ne egyen sok erőforrást, és mindenben támogassa a fejlesztést (log, debug, profile stb.). Nem ismerem az IIS-t, de ha az is megfelel ezeknek a követelményeknek, és elfut pár MB memóriával, akkor jó lehet. Különben valóban kell egy erőmű, amin fejlesztesz. A fentebb leírt környezet egy alap MacBook-on is tökéletesen fut.

    Számomra a kattintások száma nem szempont, inkább a fejlesztés gyorsasága a lényeg. Ehhez kell a jó és stabil környezet, pl. egy OSX :)

Itt lehet hozzászólni !