Kako vklopiti web strežnik s PHP, IMAP in mySQL podporo v OS X Mavericks
Moja instalacija OS X na prenosniku se vleče že od leta 2007, ko sem si kupil prvega MacBooka. Od takrat sem že nekajkrat nadgradil OS X in tudi pohekal njegovo drobovje. Zato sem se odločil, da z novim Mac mini-jem začnem čisto na novo.
Sledijo navodila kako vse to dosežemo, da zadeve nemoteno tečejo na vsakem macu z nameščenim OS X Mavericks.
Najprej namestimo (brezplačen) Xcode iz App Store-a in ga zaženemo (to je potrebno, da potrdimo licenčne pogoje)!
Nato namestimo mySQL iz http://www.mysql.com ter kreiramo konfiguracijsko datoteko /etc/my.cnf (uporabimo nano ali mySQL Workbench).
Sledi namestitev HomeBrew iz http://brew.sh. HomeBrew nam olajša namestitve podpornih programov.
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)”
$ brew doctor
$ echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
$ brew install git
ter nujno potrebni wget
$ brew install wget
in autoconf, da bo delal ukaz phpize.
$ brew install autoconf
Sledi prenos izvorne kode za IMAP ter ustrezne verzijo PHP iz katerih lahko nato sestavimo PHP modul IMAP.
$ mkdir ~/imap
$ cd ~/imap
IMAP podporne knjižnice,
$ wget -c ftp://ftp.cac.washington.edu/imap/imap-2007f.tar.gz
$ tar xvvfz imap-2007f.tar.gz
$ cd imap-2007f
$ make osx EXTRACFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp”
$ sudo mkdir -p /usr/local/imap-2007f/include
$ sudo cp c-client/*.h /usr/local/imap-2007f/include
$ sudo mkdir -p /usr/local/imap-2007f/lib
$ sudo cp c-client/c-client.a /usr/local/imap-2007f/lib/libc-client.a
$ cd ..
PCRE,
$ wget "http://sourceforge.net/projects/pcre/files/pcre/8.20/pcre-8.20.tar.gz”
$ tar xvvfz pcre-8.20.tar.gz
$ cd pcre-8.20
$ ./configure --prefix=/usr/local
$ make
$ sudo make install
$ cd ..
PHP ustrezne verzije (kot je nameščena v OS X Mavericks),
$ export PHPVERSION=`php --version|head -n1|cut -f 2 -d ' ‘`
$ wget --no-check-certificate -c https://github.com/php/php-src/tarball/PHP-$PHPVERSION -O PHP-$PHPVERSION.tar.gz
$ tar xvvfz PHP-$PHPVERSION.tar.gz
$ cd PHP-$PHPVERSION
$ cd `ls |grep php-php-src-|head -n1`
$ cd ext/imap
$ phpize
$ ./configure --with-imap=/usr/local/imap-2007f --with-kerberos --with-imap-ssl
na koncu kopiramo tako dobljeno knjižnico v PHP mapo za razširitve
$ sudo cp modules/imap.so /usr/lib/php/extensions/no-debug-non-zts-20100525/
in pobrišemo začasne datoteke.
$ cd ~
$ rm -Rf ~/imap
Ker se spletni strežni ne zažene samodejno ob startu računalnika, poskbimo najprej za to.
$ sudo defaults write /System/Library/LaunchDaemons/org.apache.httpd Disabled -bool false
$ sudo pico /etc/apache2/users/USERNAME.conf
<Directory "/Users/USERNAME/Sites/">
Options Indexes MultiViews FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Nato popravimo lastništvo in pravice na datotekah.
$ sudo chown root:wheel /etc/apache2/users/*
$ sudo chmod 644 /etc/apache2/users/*
$ sudo chmod 644 /System/Library/LaunchDaemons/org.apache.httpd.plist
Sledi omogočanje PHP tako, da odkomentiramo ustrezno vrstico load_module v httpd.conf datoteki.
$ sudo pico /etc/apache2/httpd.conf
Kreiramo /etc/php.ini datoteko v kateri PHP najde ustrezne nastavitve tako, da kopiramo pripravljeno predlogo ter jo ustrezno uredimo. Za uspešno sodelovanje PHPja in mySQL je na OS X potreben vpis v spremenljivki mysql.default_socket in mysqli.default_socket. To pa zato, ker mySQL na OS X ne uporablja standardne lokacije za socket, ki je na /var/mysql/mysql.sock, temveč /tmp/mysql.sock.
$ sudo cp /etc/php.ini.default /etc/php.ini
$ sudo pico /etc/php.ini
extension=/usr/lib/php/extensions/no-debug-non-zts-20100525/imap.so
output_buffering=8192
[mysql]
mysql.default_socket=/tmp/mysql.sock
[mysqli]
mysqli.default_socket=/tmp/mysql.sock
Na koncu sledi (re)start Apache strežnika z ukazom:
$ sudo apachectl restart
In na ta način usposobimo PHP z IMAP in mySQL podporo na OS X Mavericks.
Seveda vsega tega nisem iznašel sam, zelo mi je pomagal blog Ivana Vučica.
Upam, da bodo ti koraki komu pomagali. :)