Apacheスクリプトが実行されていないPHPスクリプト


54

ApacheとPHP5を再インストールしたばかりですが、ドキュメントルートにアクセスすると、「ダウンロード」ファイルがダウンロードされます。そして、documentroot /index.php を試してみると、PHPファイルをダウンロードするだけです。

PHPをインストールしていますが、Apacheはそれを実行したくないようです。
「Load Module」行を追加することを提案されましたhttpd.confが、そのファイルはありません。

回答:


103

タイピング:

sudo apt-get install apache2 php5 libapache2-mod-php5

必要なものをすべてインストールし、PHPをサポートするApacheサーバーを起動します。

phpモジュールがロードされていることを確認するには、次を入力します。

a2query -m php5

有効になっていない場合は、次を使用してロードします。

sudo a2enmod php5

そして、Apacheを再起動します:

sudo service apache2 restart

php7.xの更新(Ubuntu 16.04、16.10、18.04、18.10でテスト済み

コメントのおかげで、php7.xの答えを更新します。

インストール:

sudo apt-get install apache2 php7.x libapache2-mod-php7.x 

確認:

a2query -m php7.x

負荷:

sudo a2enmod php7.x

Apacheを再起動します。

sudo service apache2 restart

使用a2enmod可能なmodと有効なmodの間でファイルを手動でコピーするよりも使用する方が適切です。 a2enmodシンボリックリンクを作成するため、設定のコピーは1つしかありません。
jkt123 14

@ jkt123そのとおりです。アドバイスをありがとう、答えを編集します。
girardengo

私の場合、「ERROR:module php5 does not exist!」と表示されます。インストールされている
マリアンクリューシュピーズ

3
PHP7とUbuntuの16.04のために私は、次のコマンドを実行しているapt-get install libapache2-mod-phpa2query -m php7.0service apache2 restart
マーロ

Ubuntuの14.04の場合:#a2query -m php7.0 php7.0それでもPHPのコードが実行されていません(サイト管理者によって有効)
アシシュKarpeを

19

もう1つの一般的な原因は、phpの短いタグ<?がデフォルトのphp.ini構成で有効になっていないため、アップグレードまたは再インストール後、その設定がオフになり、phpコードが依存する可能性があることです。に置き換え<?てみてください<?php

クレジット


13

Ubuntu 16.04はPHP 7に移行しました。この単一のコマンドにより、次のことが可能になります。

sudo apt-get install apache2 php libapache2-mod-php

ここlibapache2-mod-phpとlibapache2-MOD-PHP7をインストールするメタパッケージです。


2

開くphp.ininano、端末に:

sudo nano /etc/php/php5.6/apache2/php.ini

次に変更します:

short_open_tag = Off

short_open_tag = On

次に、apache2を保存して再起動します。

sudo systemctl restart apache2

1
または、PHPスクリプトを修正します:-)This directive determines whether or not PHP will recognize code between <? and ?> tags as PHP source which should be processed as such. It is generally recommended that <?php and ?> should be used and that this feature should be disabled [...]
ニコラスラウル

1

私は同じ問題に遭遇しましたが、私の特定の問題は独特でした。(mod_userdirを使用して)ユーザーディレクトリで実行していました。つまり、http: //host.name.com/~username/example.phpを使用してWebページにアクセスします。

これは、mods対応ディレクトリのphp * .confでデフォルトで無効になっています。コメントアウトするために修正する必要がありました:

#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
#</IfModule>

それは理解するのが苦痛だった..

まあ、私は誰もこの特定の問題を抱えているとは思いませんが、それは私にとって恥ずかしくて、誰かが同じことをしているかもしれないので、それを追加すると思いました。私以外は誰も〜/ userを使用していません。

もちろんこの後、Apacheを再起動する必要があります。


0

私の場合は少し違っていました。Ubuntu 19.04から19.10にアップグレードしました。アップグレーション中にphp 7.3をインストールしました(php 7.2はすでにインストールされています)。2つのバージョンがインストールされている場合、a2query -m php7.3 return php7.3に一致するモジュールはありません

私が見つけた解決策は、how-to-install-php-7-3-on-ubuntuからのものでした。

PHP 7.0をデフォルトとして設定するには、次を実行します

update-alternatives --set php /usr/bin/php7.0

PHP 7.2をデフォルトとして設定するには、実行します

update-alternatives --set php /usr/bin/php7.2

PHP 7.3をデフォルトとして設定するには、実行します

update-alternatives --set php /usr/bin/php7.3

PHP 7.3を使用するようにApacheを構成する前に、次のように入力してPHP 7.0の古いバージョンを無効にする必要があります。

a2dismod php7.2

次のコマンドを使用して、新しくインストールしたPHP 7.3バージョンを有効にします。

a2enmod php7.3

Apache Webサーバーを再起動して、変更を有効にします。

sudo systemctl restart apache2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.