所以,我需要在一个服务器上运行多个php应用/站点。其中一个或多个应使用apache和mod_php5运行,另外一个或多个应使用mod_fastcgi和php-fpm运行。目前,mod_php5的站点已经可以正常工作,如果禁用mod_php5,fastcgi的站点也可以正常工作,但是我无法让它们同时正常工作。
我认为可以通过在Apache中使用filesmatch、if.mod_fastcgi和if.mod_actions的某种组合来实现这一点,但我无法弄清楚具体方法。如果需要,我们可以安装任何必要的apache模块来完成此操作。
如果有适用于Apache 2.2或更低版本的不同版本的vhost,并且您也具有该片段,那将获得额外的奖励分数,或者至少知道我该怎么做。
我不会发布我拥有的所有vhosts,因为我知道它们是错误的,但第一个默认的基于mod_php的vhosts看起来像这样...
#NameVirtualHost 127.0.0.1:80 < Apache 2.2 or less
<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@localhost
ServerName some.site.tld
DocumentRoot /var/www/some/site/
<Directory /var/www/some/site/>
Options Indexes FollowSymLinks MultiViews
Require all granted
# Order deny,allow < Apache 2.2 or less
# Allow from all < Apache 2.2 or less
</Directory>
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
理想情况下,我希望这些保持不变,并且如果需要更多这样的内容,我们可以添加更多。
我想要的结果是能够像第一个配置那样轻松添加为mod_php配置的新虚拟主机,并且还可以像以下这样添加fast cgi虚拟主机。
# NameVirtualHost 0.0.0.0:80 < Apache 2.2 or Less
<VirtualHost 0.0.0.0:80>
ServerAdmin webmaster@localhost
ServerName some.application.tld
DocumentRoot /opt/some/app/dir/
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
<IfModule mod_fastcgi.c>
# php_admin_flag engine off < I tried to use this to disable PHP
AddType application/x-httpd-fastphp5 .php
Action application/x-httpd-fastphp5 /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi_someapp
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi_someapp -socket /var/run/php5-fpm_ptbuild.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Options Indexes FollowSymLinks MultiViews ExecCGI
Require all granted
</Directory>
<Directory /opt/some/app/dir/>
#Options Indexes FollowSymLinks MultiViews ExecCGI
Require all granted
</Directory>
</IfModule>
# I tried to use the below alongside mod_php, didnt work
# <IfModule mod_php5.c>
# php_admin_flag engine off
# AddType application/x-httpd-fastphp5 .php
# <Directory /opt/some/app/dir/>
# Options Indexes FollowSymLinks MultiViews ExecCGI
# Require all granted
# </Directory>
# </IfModule>
</VirtualHost>
如果您可以发布第二个虚拟主机配置,或者告诉我我做错了什么,非常感谢您的提前帮助。