配置一个Web服务器
编辑该页面警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.4,不再维护。
读这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。
配置一个Web服务器
Symfony应用程序开发的首选方法是使用欧宝娱乐app下载地址PHP web服务器的内部。然而,当使用一个老的PHP版本或在生产环境中运行应用程序时,您将需要使用一个web服务器平台。本文描述了几种方式使用Symfony输入或Nginx。欧宝娱乐app下载地址
当使用输入,您可以配置PHP作为一个Apache模块或与FastCGI使用PHP FPM。FastCGI也是使用PHP的首选与Nginx。
Web目录
web目录的所有应用程序的公共和静态文件,包括图像、样式表和JavaScript文件。这也是前面控制器居住。更多细节,请参阅在Symfony创建页面欧宝娱乐app下载地址。
web文档根目录服务在配置您的web服务器。在下面的例子中,web /
将文档根目录。这个目录是/var/www/project/web/
。
输入使用mod_php / PHP-CGI
高级的Apache配置选项,请参阅官方Apache欧宝体育电话文档。最低基本使您的应用程序运行在输入:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
< VirtualHost *: 80 >ServerNamedomain.tldServerAliaswww.domain.tldDocumentRoot/var/www/project/web<目录/var/www/project/web >#启用. htaccess重写AllowOverride所有订单允许,拒绝允许从所有< /目录>ErrorLog/var/log/apache2/project_error.logCustomLog/var/log/apache2/project_access。日志的总和< /虚拟主机>
请注意
由于性能的原因,你可能会想AllowOverride没有
和实施的重写规则web / . htaccess
到虚拟主机
配置。
如果您使用的是php-cgi,Apache没有通过HTTP基本PHP默认用户名和密码。为了解决这个限制,您应该使用以下配置代码片段:
1
RewriteRule* -[E = HTTP_AUTHORIZATION: % {HTTP:授权}]
谨慎
在Apache 2.4中,为了允许,拒绝
已经取代了要求所有授予
,因此你需要修改目录
权限设置如下:
1 2 3 4 5
<目录/var/www/project/web >#启用. htaccess重写AllowOverride所有需要所有授予< /目录>
输入与PHP-FPM
利用PHP5-FPM与Apache,首先必须确保FastCGI程序经理php-fpm
二进制和Apache的FastCGI模块安装(例如,在一个基于Debian系统安装libapache2-mod-fastcgi
和php5-fpm
包)。
PHP-FPM使用所谓的池处理传入的FastCGI请求。您可以配置任意数量的池在FPM配置。在一个池配置TCP套接字(IP和端口)或unix域套接字监听。每个池也可以运行在不同的UID和GID:
1 2 3 4 5 6 7 8 9 10
;一个叫www池(www)用户= www-data集团= www-data;使用unix域套接字听= /var/run/php5-fpm.sock;或监听TCP套接字听=127.0。0.1:9000年
用mod_proxy_fcgi Apache 2.4
如果您正在运行Apache 2.4,您可以轻松地使用mod_proxy_fcgi
通过PHP-FPM传入的请求。配置PHP-FPM监听TCP套接字(mod_proxy
目前不支持unix socket吗),使mod_proxy
和mod_proxy_fcgi
在您的Apache配置和使用ProxyPassMatch
指令通过PHP FPM PHP文件的要求:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
< VirtualHost *: 80 >ServerNamedomain.tldServerAliaswww.domain.tldProxyPassMatch^ / (. * \。php (/ . *) ?) $ fcgi: / / 127.0.0.1:9000 / var / www /项目/ web /1美元DocumentRoot/var/www/project/web<目录/var/www/project/web >#启用. htaccess重写AllowOverride所有需要所有授予< /目录>ErrorLog/var/log/apache2/project_error.logCustomLog/var/log/apache2/project_access。日志的总和< /虚拟主机>
谨慎
当您运行Symfony应用程序在您的欧宝娱乐app下载地址文档根的子路径,正则表达式中使用ProxyPassMatch
指令必须相应的改变:
1
ProxyPassMatch^ / path-to-app / (. * \。php (/ . *) ?) $ fcgi: / / 127.0.0.1:9000 / var / www /项目/ web /1美元
PHP-FPM与Apache 2.2
Apache 2.2或更低,您不能使用mod_proxy_fcgi
。你必须使用FastCgiExternalServer指令。因此,Apache配置应该是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
< VirtualHost *: 80 >ServerNamedomain.tldServerAliaswww.domain.tldAddHandlerphp5-fcgi。php行动php5-fcgi / php5-fcgi别名/ php5-fcgi /usr/lib/cgi-bin/php5-fcgiFastCgiExternalServer/usr/lib/cgi-bin/php5-fcgi主机127.0.0.1:9000 -pass-header授权DocumentRoot/var/www/project/web<目录/var/www/project/web >#启用. htaccess重写AllowOverride所有订单允许,拒绝允许从所有< /目录>ErrorLog/var/log/apache2/project_error.logCustomLog/var/log/apache2/project_access。日志的总和< /虚拟主机>
如果你喜欢使用unix socket,你必须使用套接字
选项:
1
FastCgiExternalServer/usr/lib/cgi-bin/php5-fcgi插座/var/run/php5-fpm.袜子-pass-header授权
Nginx
高级的Nginx配置选项,请参阅官方Nginx欧宝体育电话文档。最低基本让你的应用程序运行Nginx以下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
服务器{server_namedomain.tldwww.domain.tld;根/var/www/project/web;位置/ {#试图直接提供文件,app.php撤退try_files美元uri/ app.php美元is_args美元arg游戏;}位置~ ^ / (app | app_dev |配置)\。php (/ | $){fastcgi_passunix: / var /运行/ php5-fpm.sock;fastcgi_split_path_info^ (. + \。php)(/ . *)美元;包括fastcgi_params;fastcgi_paramSCRIPT_FILENAME美元document_root美元fastcgi_script_name;fastcgi_paramHTTPS从;}error_log/var/log/nginx/project_error.log;access_log/var/log/nginx/project_access.log;}
请注意
根据您的PHP-FPM配置,fastcgi_pass
也可以fastcgi_pass 127.0.0.1:9000
。
提示
这个执行只有app.php
,app_dev.php
和config。
在web目录。所有其他文件将作为文本。你必须也确保如果你做部署app_dev.php
或config。
这些文件是安全的和没有任何外部用户(IP检查代码默认这是每个文件的顶部)。
如果你有其他PHP文件在您的web目录需要执行时,一定要包括他们位置
块以上。