ApacheはPHPファイルを実行しませんが、ダウンロードさせます


15

したがって、このチュートリアルを使用してサーバーをセットアップし、サーバーのIPを使用してアドレスを入力したときにtest.phpファイルが問題なく機能する場合、

http://1.2.3.4/test.php

ただし、仮想ホストを使用する場合、ブラウザはファイルを実行するのではなく、ダウンロードすることを提案します。したがって、この:

http://blog.mydomain.com/test.php

スクリプトを実行するのではなく、ファイルをダウンロードすることを提案します。

仮想ホスト用に/etc/apache2/apache2.confで使用するコードは次のとおりです。

Include /etc/phpmyadmin/apache.conf
Include /etc/apache2/mods-available/php5.conf

<VirtualHost *:80>
    DocumentRoot /path/to/vhosts/folder1
    ServerName www.mydomain.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /path/to/vhosts/folder2
    ServerName blog.mydomain.com
</VirtualHost>

NameVirtualHost *:80

私はapache2サーバーを再起動すると警告メッセージが表示されると言わなければなりませんが:

[....] Restarting web server: apache2
[Sun Jan 19 13:33:40 2014] [warn] NameVirtualHost *:80 has no VirtualHosts ... waiting [Sun Jan 19 13:33:41 2014] [warn] NameVirtualHost *:80 has no VirtualHosts

それがLAMPサーバーであることを知っていますか?
Braiam 14年

@Braiam正直なところ、私はLAMPとApacheの間で迷っています...違いはわかりません...しかし、あなたは私の質問に対する答えを得ましたか?
量子物理学者14年

このディレクトリはどこにありますか?私にはうまくいきません。助けてください?vhost vieターミナルをリロードするにはどうすればよいですか?
神の世界

@Godworldどのディレクトリ?Apache構成ファイルはにあり/etc/apache2/ます。
量子物理学者

回答:


19

私はそれをラインで動作するようにしました:

sudo apt-get install libapache2-mod-php7.0

sudo service apache2 restart

このライブラリに名前を付けてくれてありがとう。これを修正するためにライブラリをインストールする必要があることは知っていましたが、名前はわかりませんでした。
ラーフルプラサド

libapache2-mod-php7.0パッケージには、メインのUbuntuのリポジトリに存在しません。16.04がリリースされるまで。libapache2-mod-php5代わりに使用する必要があります。
ダン

4

時にはさらに悪いことが起こる可能性があります。


5
私はこれが本当の答えと呼ばれることはほとんどないと思いますが、私はそれがややそうだと思います。
セス14

3
適切な数のマシンがあり、それがかなり夜遅くになったら、これは間違いなく有効な答えです。
Avio

1
確かに有効な答え。php5、php5-cli、php5-fpm、およびphp-whatnotのジャグリングで問題が発生しました。Apacheには適切なパッケージが欠落していました。
有名なガーキン

0

ここで解決策を見つけました。いくつかのモジュールを有効にする必要がありました...


user1075581によるこのスタックオーバーフローの回答から取られた:

これは最終的に正しい道に私を置きました:

http://www.linuxquestions.org/questions/linux-server-73/php-not-working-on-one-vhost-but-works-on-all-others-851093/

解決策は次のとおりです。

では<Directory>セクション、私はこれらの行が含まれていました。

<IfModule sapi_apache2.c>
    php_admin_flag engine on
</IfModule>
<IfModule mod_php5.c>
    php_admin_flag engine on
</IfModule>

または、私のサーバー上のソリューションの編集されたコピー/貼り付け:

<Directory "/var/www/vhosts/A2/httpdocs">
    <IfModule sapi_apache2.c>
        php_admin_flag engine on
    </IfModule>
    <IfModule mod_php5.c>
        php_admin_flag engine on
    </IfModule>

    (Other configuration parameters)

</Directory>

0

私はこれを長い間探していましたが、私の場合に機能する解決策を見つけました。標準のubuntuインストールのprocessorder.php5ディレクトリ/var/wwwにファイル()を入れていました。これはphpが見た場所だと思いました。しかし、html(またはおそらく同じものと考えられるphpファイル)については、それを調べました/var/www/html。つまり、のhtmlサブディレクトリです/var/www

ファイルをディレクトリに移動すると、機能しました。私はこれがどこにも文書化されているのを見たことがないと思う


0

パーミッションの問題は、この奇妙な動作を引き起こす可能性もあります

chmod -R u=rwX,go=rX my_publishing_directory

パーミッションの問題を取り除きます(ファイルで644、ディレクトリで755)

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