web-dev-qa-db-ja.com

php7.0-fpmがUbuntu-16.04のApache2.4で動作しない

私は、Apacheサーバーを確立するためにUbuntu-16.04を使用しています。私はphp-fpmを使用してphpファイルを処理します。私は この投稿 に従いました。構成後、Apache2およびphp7.0-fpmサービスが正しく再起動しました。しかし、phpファイルを参照すると、プレーンファイルが表示されました。 phpファイルを処理するphp cgiがないようです。私がどうかしましたか、まずいことでもありましたか?

Apacheは初めてです。そのため、貼り付ける構成がわかりません。回答に応じて必要な設定を掲載します。どうも!


私のインストール手順:

インストールPHPおよびPHP-fpm:

Sudo apt-get install php libapache2-mod-php
Sudo apt-get install libapache2-mod-fastcgi php7.0-fpm

Fastcgi modsを有効にする

Sudo a2dismod php mpm_prefork
Sudo a2enmod actions fastcgi alias mpm_worker

Php7.0-fpmのグローバル構成を作成する

Sudo vim /etc/Apache2/conf-available/php7.0-fpm.conf

そして、設定を書きます:

<IfModule mod_fastcgi.c>
    AddHandler php7.0-fcgi .php
    Action php7.0.fcgi /php7.0.fcgi
    Alias /php7.0-fcgi /usr/lib/cgi-bin/php7.0.fcgi
    FastCgiExternalServer /usr/lib/cgi-bin/php7.0.fcgi -socket /var/run/php7.0.fpm.sock -pass-header Authorization
    <Directory /usr/lib/cgi-bin>
        Require all granted
    </Directory>
</IfModule>

次に、php7.0-fpm confを有効にします。

Sudo a2enconf php7.0-fpm

Apacheとfpmを再起動します

Sudo service Apache2 restart && Sudo service php7.0-fpm restart

編集/var/www/html/index.php

<?php
phpinfo();
?>

次にhttp://localhost/index.php、しかし印刷されたページの代わりにファイルの内容を取得しました。

1
cosmozhang

設定が少しずれています。これを試して:

    <Directory /usr/lib/cgi-bin>
        Require all granted
    </Directory>
    <IfModule mod_fastcgi.c>
        AddHandler php7-fcgi .php
        Action php7-fcgi /php7-fcgi
        Alias /php7-fcgi /usr/lib/cgi-bin/php7-fcgi
        FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -socket /var/run/php/php7.0-fpm.sock -pass-header Authorization
    </IfModule>

これをここに追加すると、うまく機能します:/etc/Apache2/sites-available/000-default.conf

2
Roger

Ubuntu 16.04にphp7.0をインストールするときに、同様の問題を経験しました。これに私を拘束しないでください、しかし問題は許可と関係があったと思います。 www-dataを/ var/wwwフォルダー内のすべてのファイルの所有者およびグループにし、chmod権限をdrwxrwxr-xに変更します。これは私自身の開発サーバー上にあり、私はこれを経験したことがないので、あなた自身のリスクで使用してください。変更するのと同じくらい簡単に元に戻すことができます。

0
Robert Lefebvre