I had to install a working Symfony environment on a MacBook? Pro. Maybe this can help some of you using Mac OS X asking whether they can switch or not. The best tool I've found for symfony and Mac Intel is MacPorts.
Then to install PHP5 with Apache2 and MySQL4 support:
sudo port install php5 +macosx +mysql4 +apache2
Now take a deeeep breath, go get a coffee, watch the news, it can take a long time :)...
If you get an error about "php/.lock" or "php/.xx files already installed",
sudo port remove php5
If it complains about multiple versions of php5, remove the old version:
sudo port remove php5 @..someversion..
Then try to install again.
Here we have the whole application compiled, now we do some setup:
- Apache2 :
- You can add the apache2 support programs to your $PATH, just add /opt/local/apache2/bin" to the '~/'.profile file that is created when you setup DarwinPorts?
- In /opt/local/apache2/conf rename the httpd.conf.sample to httpd.conf and change the conf you want
- PHP5 :
- Go into /opt/local/apache2/modules and type /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
- Then it looks like a little bug hit darwinport, so to activate PHP5 in apache2, edit /opt/local/apache2/conf/httpd.conf and add this
# php5 settings Include conf/extras-conf/mod_php.conf
- Rename either /opt/local/etc/php.ini-dist or /opt/local/etc/php.ini-recommended to /opt/local/etc/php.ini
- Symphony needs magic_quotes_gpc off, so be sure to check if it is off in php.ini:
; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off
- Currently PEAR is no longer included with PHP5 in DarwinPorts?. So we use PEAR from OS X itself. So we need to enable that in php.ini. Search for include_path and edit the line so it reads as follows:
; UNIX: "/path1:/path2" ;include_path = ".:/php/includes include_path = ".:/php/includes:bin/lib:/opt/local/lib/php:/usr/lib/php/"
- To really use PEAR with PHP5 from DarwinPorts? you will need to add the following to your .profile:
- Change ownership:
chown -R mysql:mysql /opt/local/var/db chown -R mysql:mysql /opt/local/var/run/mysqld chown -R mysql:mysql /opt/local/var/log/mysql
- Create the default database:
sudo -u /opt/local/bin/mysql_install_db --user=mysql
- Change ownership:
Et voila! It's done. Now you can run as root :
/opt/local/apache2/bin/apachectl start /opt/local/bin/mysqld_safe &
You can change /opt/local/apache2/conf/extra/httpd-vhost.conf to add your Symfony virtual host.
Symfony on Leopard
To install symfony on leopard using the PHP5 version included in the system, use these commands as PEAR-BASE in darwinports has bugs with leopard
sudo su - curl http://pear.php.net/go-pear > go-pear.php php -q go-pear.php pear channel-discover pear.symfony-project.com pear install symfony/symfony
You can change /private/etc/apache2/extra/httpd-vhost.conf to add your Symfony virtual host like the following:
<VirtualHost *> ServerName YourServerName DocumentRoot "/Users/YourUserName/Sites/YourProjectFolder/web" DirectoryIndex index.php Alias /sf /usr/share/pear/data/symfony/web/sf <Directory "/Users/YourUserName/Sites/YourProjectFolder/web"> AllowOverride All Allow from All </Directory> </VirtualHost>
Don't forget to uncomment the line
# Include /private/etc/apache2/extra/httpd-vhosts.conf
If DarwinPorts? seems imposing; you can install the universal packages made by Marc Liyanage at http://www.entropy.ch/software/macosx/welcome.html, if you don't need to compile PHP/MySQL. His packages include many common PHP extensions (including PostgreSQL and GD).