diff --git a/book/installation.rst b/book/installation.rst index 4f27965d1de..2b9e31371c7 100644 --- a/book/installation.rst +++ b/book/installation.rst @@ -294,8 +294,10 @@ Symfony2 should welcome and congratulate you for your hard work so far! this is not required for development it is recommended at the time your application goes into production as all system and configuration files become inaccessible to clients then. For information on configuring - your specific web server document root, see the following - documentation: `Apache`_ | `Nginx`_ . + your specific web server document root, read + :doc:`/cookbook/configuration/web_server_configuration` + or consult the official documentation of your webserver: + `Apache`_ | `Nginx`_ . Beginning Development --------------------- diff --git a/book/page_creation.rst b/book/page_creation.rst index 45a8f1b5780..f90ae6d4f48 100644 --- a/book/page_creation.rst +++ b/book/page_creation.rst @@ -439,6 +439,8 @@ the same basic and recommended directory structure: * ``web/``: This is the web root directory and contains any publicly accessible files; +.. _the-web-directory: + The Web Directory ~~~~~~~~~~~~~~~~~ diff --git a/cookbook/configuration/index.rst b/cookbook/configuration/index.rst index 3ca24b01bd4..9cdc9023135 100644 --- a/cookbook/configuration/index.rst +++ b/cookbook/configuration/index.rst @@ -9,3 +9,4 @@ Configuration external_parameters pdo_session_storage apache_router + web_server_configuration diff --git a/cookbook/configuration/web_server_configuration.rst b/cookbook/configuration/web_server_configuration.rst new file mode 100644 index 00000000000..d285f01c009 --- /dev/null +++ b/cookbook/configuration/web_server_configuration.rst @@ -0,0 +1,88 @@ +.. index:: + single: Web Server + +Configuring a web server +======================== + +The web directory is the home of all of your application's public and static +files. Including images, stylesheets and JavaScript files. It is also where the +front controllers live. For more details, see the chapter about +:ref:`the-web-directory`. + +The web directory is the one that you will need to configure in your webserver +as the documentroot. In the examples below, this directory is in +``/var/www/project/web/``. + +Apache2 +------- + +For advanced Apache configuration options, see the official `Apache`_ +documentation. The minimum basics to get your application running under Apache2 +are: + +.. code-block:: Apache2 + + + ServerName www.domain.tld + + DocumentRoot /var/www/project/web + + # enable the .htaccess rewrites + AllowOverride All + Order allow,deny + Allow from All + + + ErrorLog /var/log/apache2/project_error.log + CustomLog /var/log/apache2/project_access.log combined + + +.. note:: + + For performance reasons, you will probably want to set + ``AllowOverride None`` and implement your ``.htaccess`` into the + vhost config. + +Nginx +----- + +For advanced Nginx configuration options, see the official `Nginx`_ +documentation. The minimum basics to get your application running under Nginx +are: + +.. code-block:: nginx + + server { + server_name www.domain.tld; + root /var/www/project/web; + + location / { + # try to serve file directly, fallback to rewrite + try_files $uri @rewriteapp; + } + + location @rewriteapp { + # rewrite all to app.php + rewrite ^(.*)$ /app.php/$1 last; + } + + location ~ ^/(config|app|app_dev)\.php(/|$) { + fastcgi_pass unix:/var/run/php5-fpm.sock; + fastcgi_split_path_info ^(.+\.php)(/.*)$; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param HTTPS off; + } + + error_log /var/log/nginx/project_error.log; + access_log /var/log/nginx/project_access.log; + } + +.. note:: + + Depending on your PHP-FPM config, the ``fastcgi_pass`` can also be + ``fastcgi_pass 127.0.0.1:9000``. + +.. _`Apache`: http://httpd.apache.org/docs/current/mod/core.html#documentroot +.. _`Nginx`: http://wiki.nginx.org/Symfony + diff --git a/cookbook/map.rst.inc b/cookbook/map.rst.inc index 67e3684fb81..fcb0a4e67cb 100644 --- a/cookbook/map.rst.inc +++ b/cookbook/map.rst.inc @@ -26,6 +26,7 @@ * :doc:`/cookbook/configuration/external_parameters` * :doc:`/cookbook/configuration/pdo_session_storage` * :doc:`/cookbook/configuration/apache_router` + * :doc:`/cookbook/configuration/web_server_configuration` * :doc:`/cookbook/console/index`