为什么Apache打印PHP文件的内容而不是将它们传递给PHP-FPM?

时间:2016-07-17 01:16:02

标签: php apache

我在sites-enabled下面有以下配置文件。我正在使用mod_proxy_fcgi

ServerName local.dev

<Directory /var/www/local/>
    AllowOverride all
    Require all granted
</Directory>


<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    ServerAlias *.local.*.com
    SetEnv CURRENT_ENVIRONMENT ENV_DOCKER

    ServerAdmin webmaster@localhost
    VirtualDocumentRoot /var/www/local/%3/trunk/%3+-%1/site/www

    ProxyPassMatch "^/var/www/local/(.*/trunk/.*/site/www/.*\.php.*)$" "fcgi://php:9000/var/www/local/$1"

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    LogLevel debug

    ErrorLog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combined

</VirtualHost>

<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    ServerAlias local.*.com
    SetEnv CURRENT_ENVIRONMENT ENV_DOCKER

    ServerAdmin webmaster@localhost
    VirtualDocumentRoot /var/www/local/%2/trunk/%2+/site/www

    ProxyPassMatch "^/var/www/local/(.*/trunk/.*/site/www/.*\.php.*)$" "fcgi://php:9000/var/www/local/$1"

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    LogLevel debug

    ErrorLog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combined

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

1 个答案:

答案 0 :(得分:1)

事实证明我在Apache配置中只需要一个SetHandler指令。

<FilesMatch "\.php$">
    SetHandler "proxy:fcgi://php:9000"
</FilesMatch>