web-dev-qa-db-ja.com

Debian Apache2はphpスクリプトを実行しておらず、代わりにソースを表示しています

私はこれがおそらくオンラインで最も議論されているトピックであることを知っています、私はここで検索してstackexchangeを行い、さまざまな答えを試しましたが、どれも私のために働いていないようです、それで私はこれを投稿しています。

私はLAMPスタックを備えたDebianを持っており、最近phpを5.4から5.6(最新)にアップグレードする必要がありました。

私は次のように古いバージョンを削除することから始めました:

a2dismod php5

Sudo apt-get --remove --purge libapache2-mod-php5filter libapache2-mod-php5 libphp5-embed php-pear php5 php5-cli php5-common php5-curl php5-dev php5-Gd php5-mcrypt php5-mysql

私の/etc/apt/sources.listファイルに以下を追加しました:

deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all
deb http://packages.dotdeb.org wheezy-php56-zts all
deb-src http://packages.dotdeb.org wheezy-php56-zts all

そして、次のコマンドを実行しました。

wget https://www.dotdeb.org/dotdeb.gpg
Sudo apt-key add dotdeb.gpg
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get install libapache2-mod-php5 php-pear php5 php5-cli php5-common php5-curl php5-dev php5-Gd php5-mcrypt php5-mysql php5-mysqlnd

次に、このコマンドa2enmod php5でphp5を有効にし、このコマンドservice Apache2 restartでApache2を再起動しました。

サイトのPHPスクリプトの1つにアクセスすると、ソースが表示され、スクリプトが実行されていません。

サーバー上で、PHP5.6が正しくインストールされていることがわかります。

root@server:~# php -v
PHP 5.6.18-1~dotdeb+zts+7.1 (cli) (built: Feb  6 2016 23:39:42) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

そして、Apache2でPHP5モジュールが有効になっていることがわかります。

enter image description here

これらのファイルの内容は次のとおりです。

サーバー全体を再起動しようとしましたが、役に立ちません。 /var/log/Apache2/error.logを確認しましたが、エラーは表示されません。私が見るのは:

[Tue Feb 09 12:52:09 2016] [notice] Digest: generating secret for digest authentication ...
[Tue Feb 09 12:52:09 2016] [notice] Digest: done
[Tue Feb 09 12:52:09 2016] [notice] Apache/2.2.22 (Debian) mod_ssl/2.2.22 OpenSSL/1.0.1e configured -- resuming normal operations

Apache2のVirtualHostを使用してサイトにサービスを提供しています。これは私のエントリです:

<VirtualHost *:80>

    ServerAdmin [email protected]
    ServerName www.mydomain.com
    DocumentRoot /home/setup/public_html

    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>

    <Directory /home/setup/public_html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

PHPスクリプトが実行されない理由は何ですか?私が見逃したことは何ですか?何か助けていただければ幸いです。

1
Latheesan

さて、私はそれを修正しました。

私は以下を削除しました:

# Running PHP scripts in user directories is disabled by default
# 
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

/etc/Apache2/mods-enabled/php5.confからApacheを再起動すると、PHPが機能するようになりました。

0
Latheesan