01/11/2014 - MAC, SYMFONY
This post shows you how to set up a symfony project and the virtual host to go with it. We're going to create a project called "sport".
mysql> CREATE DATABASE IF NOT EXISTS symfony CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Query OK, 1 row affected (0.00 sec)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| symfony |
+--------------------+
4 rows in set (0.01 sec)
Default webroot in OS is /Library/WebServer/Documents/
so CD into it. Assuming that you've composer installed globally.
Inanzzz-MBP:~ inanzzz$ cd /Library/WebServer/Documents/
Inanzzz-MBP:Documents inanzzz$ composer create-project symfony/framework-standard-edition sport
Inanzzz-MBP:~ inanzzz$ cd sport
Inanzzz-MBP:sport inanzzz$ rm -rf app/cache/*
Inanzzz-MBP:sport inanzzz$ rm -rf app/logs/*
Inanzzz-MBP:sport inanzzz$ HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1`
Inanzzz-MBP:sport inanzzz$ sudo chmod +a "$HTTPDUSER allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
Inanzzz-MBP:sport inanzzz$ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
Inanzzz-MBP:sport inanzzz$ php app/console generate:bundle --namespace=Your/NewBundle
Inanzzz-MBP:sport inanzzz$ sudo nano /private/etc/apache2/extra/httpd-vhosts.conf
# Add these lines
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/sport/web"
ServerName sport.local
<Directory "/Library/WebServer/Documents/sport/web">
Options Indexes FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog "/private/var/log/apache2/sport.local-error_log"
CustomLog "/private/var/log/apache2/sport.local-access_log" common
</VirtualHost>
Inanzzz-MBP:sport inanzzz$ sudo nano /etc/apache2/httpd.conf
# Enable
LoadModule dir_module libexec/apache2/mod_dir.so
LoadModule alias_module libexec/apache2/mod_alias.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php5_module libexec/apache2/libphp5.so
# <Directory "/Library/WebServer/Documents"> block should have:
Options FollowSymLinks Multiviews Indexes
AllowOverride All
# Enable
Include /private/etc/apache2/extra/httpd-autoindex.conf
Include /private/etc/apache2/extra/httpd-languages.conf
Include /private/etc/apache2/extra/httpd-vhosts.conf
Inanzzz-MBP:sport inanzzz$ sudo nano /etc/hosts
# Add this line
127.0.0.1 sport.local
Inanzzz-MBP:sport inanzzz$ sudo apachectl restart
If you call http://sport.local/app_dev.php/hello/inanzzz
in your browser, you should see "Hello inanzzz!" message.