2011-04-08 7 views
8

私はApache Webサーバーを持っています。このサーバーのドメインがexample.comであるとします。ブラウザからApache Webサーバーからphpファイルをダウンロード

example.comにアクセスすると、index.phpファイルがブラウザに正しく表示されます。

ただし、 example.com/~userの場合、/home/user/public_html/index.phpファイルのindex.phpファイルが表示されずにダウンロードされます。

この問題を解決するにはどうすればよいですか? php.ini"expose_php = Off"を変更しましたが、何も変更されていません。

+2

どのLinuxディストリビューション、あなたは使っている?デフォルトでは、debian/ubuntuはユーザのパブリックディレクトリのPHP解析を無効にします。 – RageZ

答えて

12

では、Debian/Ubuntuの上にある場合/etc/apache2/mods-available/php5.conf

鉱山はこのようになります。このファイルを見て、あなたは、PHPは、ユーザーでの作業を取得するために、私はいくつかの行をコメントしていた見ることができますDIR

<IfModule mod_php5.c> 
    <FilesMatch "\.ph(p3?|tml)$"> 
     SetHandler application/x-httpd-php 
    </FilesMatch> 
    <FilesMatch "\.php$"> 
     SetHandler application/x-httpd-php 
    </FilesMatch> 
    <FilesMatch "\.phps$"> 
     SetHandler application/x-httpd-php-source 
    </FilesMatch> 
    # 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_value engine Off 
    # </Directory> 
    #</IfModule> 
</IfModule> 

ファイルを編集した後に変更を有効にするには、Apacheを再起動する必要があります。DebianベースのシステムでApacheを再起動するコマンドは次のようになりますのでご注意ください:/etc/init.d/apache2 restart

5

これにより、私はこの質問が古いことは知っていますが、この問題を探しているときにはまだ出ています。

これはapache2のすべてのインストールでうまくいくのかどうか分かりませんが、私はubuntuでapache2を実行していて、正しいインデックスファイルを表示するのではなくウェブブラウザのファイルをダウンロードするという問題がありました。

問題は、ここではデフォルト設定文書は、私が/etc/apache2/httpd.conf

だからオープンに設定していたものを上書きして /etc/apache2/mods-enabled/dir.confファイルにあり/etc/apache2/mods-enabled/dir.confを開き、リストされているファイルの順序を変更してください。 OK作業が、他は、生のPHPコードをダウンロードしているように見えるいくつかのPHPファイル -

:)私は似たような経験をしました

0

私の場合は、短いタグフォーマット<を使用しているファイルが壊れていたためでしたか?そして? >。これはお勧めできません。デフォルトのphp.iniには、このサポートが強制されていることがあります。サポートをオフにすると、phpコードがHTMLのようにブラウザに送られます。

あなたが(私の場合のように - 全体のレガシーコードベースを短いタグを使用して)短いタグを避けることができない場合は、あなたがphp.iniで許可するように設定することができますが:

short_open_tag = On 
関連する問題