Spletna stran uporablja piškotke za boljšo uporabniško izkušnjo in spremljanje statistike obiskov (Google Analytics).
Z nadaljno uporabo spletne strani ali klikom na "Strinjam se", se strinjate z uporabo piškotkov.
Piškotki in njihova uporaba

Kako vklopiti web strežnik s PHP, IMAP in mySQL podporo v OS X Mavericks

Objavil Blaž Kristan 17.5.2014 @ 10:21
Oznake: MySQL, OSX, PHP, server, web

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.

Izkaže pa se, da Mavericks ne omogoča več vklapljanja spletnega strežnika preko grafičnega vmesnika in hkrati privzeto nima vklopljene podpore za PHP. Poleg tega moja spletna aplikacija potrebuje tudi podporo za IMAP zaradi pregledovanja elektronske pošte, česar pa v OS X priloženem PHP ni, in je zadevo potrebno zgraditi iz izvorne kode.

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
Nato za vsak slučaj namestimo git,
$ 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
Kreiramo tudi konfiguracijsko datoteko, ki omogoči uporabniško mapo ~/Sites v kateri se lahko nahaja lastna spletna stran (zamenjamo USERNAME z ustreznim uporabniškim imenom). To lahko storimo za vse uporabnike računalnika.
$ 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. :) 

Komentarji

* Komentarje mora odobriti admin.