Skip to content

Add example server configuration #2410

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions book/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
---------------------
Expand Down
2 changes: 2 additions & 0 deletions book/page_creation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
~~~~~~~~~~~~~~~~~

Expand Down
1 change: 1 addition & 0 deletions cookbook/configuration/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ Configuration
external_parameters
pdo_session_storage
apache_router
web_server_configuration
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whenever you have a new entry, there's also a second spot where you need to add a reference - which is the "map" file. Check out map.rst.inc in the cookbook/ directory and you'll see where you need to add the entry there. Most people miss this, and I usually take care of it for them, but since you've been having nice success with the docs, I thought I'd make you do it the right way ;)

thx

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay, thanks. I added this now

88 changes: 88 additions & 0 deletions cookbook/configuration/web_server_configuration.rst
Original file line number Diff line number Diff line change
@@ -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`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure this reference exists anywhere - where should it point to?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it should link to the book/installation.rst line 295 (the one you commented on above)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tvlooy then you should add:

.. _the-web-directory:

Above that note, otherwise Sphinx can't find the reference.

I prefer to make the reference somewhat more discribable and because the pointer is not before a heading, you need to include a link name:

:ref:`the web directory <setting-document-root>`

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, my bad. It should link to this instead http://symfony.com/doc/current/book/page_creation.html#the-web-directory I could have sworn that reference was there though. I'll add it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tvlooy there is no reference pointer to that section aswell.

When you do something like:

:ref:`the-web-directory`

Sphinx will look at the current page to find a section name which matches that name, then it will look at the hole documentation to find a reference pointer:

.. _the-web-directory:

If he find one, that will become the link.

If this pointer is above a section title, it will take that title as the link name at default. Otherwise, you need to set a link name.

.. _the-web-directory:

The Web Directory
-----------------

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep, think I get it now. I added it in my last commit.


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

<VirtualHost *:80>
ServerName www.domain.tld

DocumentRoot /var/www/project/web
<Directory /var/www/project/web>
# enable the .htaccess rewrites
AllowOverride All
Order allow,deny
Allow from All
</Directory>

ErrorLog /var/log/apache2/project_error.log
CustomLog /var/log/apache2/project_access.log combined
</VirtualHost>

.. 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

1 change: 1 addition & 0 deletions cookbook/map.rst.inc
Original file line number Diff line number Diff line change
Expand Up @@ -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`

Expand Down