1

PHPをfcgidからfpmに切り替えようとしています。私はこれを最後までグーグルで検索しましたが、同じように見える問題がありますが、まだ解決できません。

CentOS 6.5、Apache 2.2、PHP 5.4 を実行しています。mod_fastcgi と php-fpm をインストールしました。PHP はシェルから動作していますが、ブラウザー経由で 403 エラーを受け取ります。明らかに、Apache はリクエストを適切に渡していません。インストール後、次の変更を行いました。

/etc/httpd/conf.d/fcgid.conf の名前を fcgid.conf.disabled に変更しました

/etc/httpd/conf.d/fastcgi.conf に以下を追加

<IfModule mod_fastcgi.c>
    DirectoryIndex index.html index.shtml index.cgi index.php
    AddHandler php5-fcgi .php
    Action php5-fcgi /php5-fcgi
    Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
    FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass$

    <Directory "/usr/lib/cgi-bin">
        Order allow,deny
        <Files "php5.fastcgi">
            Order deny,allow
        </Files>
    </Directory>
</IfModule>

また、ディレクトリ /usr/lib/cgi-bin を作成し、それを apache.apache に chown しました (それが必要かどうかはわかりません)。

どの仮想ホスト宣言にも何も追加しませんでした。PHPだけでなく、他のすべてのファイルが解決されます。

どんな助けでも大歓迎です。ありがとう。

4

2 に答える 2

1

これで解決できました。

/etc/php-fpm.d/www.conf

listen = /tmp/php5-fpm.sock

php-fpm を再起動し、/tmp/php5-fpm.sock を apache.apache に chown しました

/etc/httpd/conf.d/fastcgi.conf

<IfModule mod_fastcgi.c>
DirectoryIndex index.php index.html index.shtml index.cgi
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization

# For monitoring status with e.g. Munin
<LocationMatch "/(ping|status)">
    SetHandler php5-fcgi-virt
    Action php5-fcgi-virt /php5-fcgi virtual
</LocationMatch>

最後に、ブラウザで /info.php とサーバー API: FPM/FastCGI を指定しました。

于 2014-07-28T13:02:33.263 に答える