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