CentOS、Apache、PHPをインストールしました。私のサイトhttp://example.com/myapp/にアクセスすると、「禁止」と表示されます。デフォルトでは、index.phpファイルは読み込まれません。
http://example.com/myapp/index.phpにアクセスすると、問題なく動作します。
その問題を修正する方法はありますか?
CentOS、Apache、PHPをインストールしました。私のサイトhttp://example.com/myapp/にアクセスすると、「禁止」と表示されます。デフォルトでは、index.phpファイルは読み込まれません。
http://example.com/myapp/index.phpにアクセスすると、問題なく動作します。
その問題を修正する方法はありますか?
回答:
Apacheは、index.phpをインデックスファイルとして認識するように設定する必要があります。
これを達成する最も簡単な方法。
Webルートに.htaccessファイルを作成します。
行を追加...
DirectoryIndex index.php
これは問題に関するリソースです...
http://www.twsc.biz/twsc_hosting_htaccess.php
編集:.htaccessファイルを許可するようにapacheが構成されていると思います。そうでない場合は、Apacheの構成ファイル(httpd.conf)の設定を変更する必要があります。
「DirectoryIndex index.php」を.htaccessファイルに追加すると機能する場合がありますが、
注意:
一般に、.htaccessファイルは使用しないでください
これはhttp://httpd.apache.org/docs/1.3/howto/htaccess.htmlから引用されて
います。これは古いバージョンのapacheを指しますが、原則はまだ当てはまると思います。
次のものをhttpd.confに追加すると(アクセスできる場合)、より適切な形式と見なされ、サーバーのオーバーヘッドが少なくなり、まったく同じ効果があります。
<Directory /myapp>
DirectoryIndex index.php
</Directory>
おそらく、ディレクトリインデックスがindex.htmlまたは何らかのバリアントに設定されていると思います。
DirectoryIndex index.html index.php
これにより、index.htmlがindex.phpよりも優先されます(メンテナンスページを表示する必要がある場合に便利です)。
これらすべてを読んで修正しようとした後、ubuntuフォーラム(https://help.ubuntu.com/community/ApacheMySQLPHP)で簡単な解決策を得ました。問題はlibapache2-mod-php5モジュールにあります。これが、ブラウザーがWebページを表示するのではなく、index.phpファイルをダウンロードする理由です。以下をせよ。sudo a2enmod php5 returns moduleが存在しない場合、問題はlibapache2-mod-php5にあります。コマンドsudo apt-get --purge remove libapache2-mod-php5を使用してモジュールをパージ削除し、再度インストールしますsudo apt-get install libapache2-mod-php5
同様の症状がありました。私の場合でも、私の愚かさは、意図せずにWebルートフォルダーに空のindex.htmlファイルを持っていることでした。Apacheは、index.phpを明示的に要求しなかったときに、index.phpではなくこれを提供DirectoryIndex
していましたmods-available/dir.conf
。
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
つまり、優先度リストでは「index.html」が「index.php」の前に表示されます。index.htmlファイルをWebルートから削除すると、問題は自然に解決しました。ああ!
Ubuntu 16.04.4 LTSおよびApache / 2.4.18の手順と完全な手順
「sudo -s
」
「cd /etc/apache2/mods-enabled
」
" vi dir.conf
"とindex.phpを以下のようにDirectoryIndexの直後に移動してファイルを保存し、Apacheサーバーを再起動します。
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
「service apache2 restart
」
dir.confが表示されない場合は、それをロードする必要があります(方法についてはGoogle)
できました。
この投稿は古いかもしれませんが、他の人に役立つ場合にのみ投稿しています。Webルートに.htaccessファイルを作成してインデックスを変更することはお勧めしません。手順に従う方が良いと思います
私のApacheフォルダのconfフォルダに移動します
C:\Apache24\conf
という名前のファイルを開きます
httpd.conf
セクションに行く
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
以下に示すように、それにindex.phpを追加します
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
このように、index.htmlとindex.phpをデフォルトのインデックスとして選択しますが、index.htmlが* index.phpの前にあるため、index.htmlを優先します。つまり、index.htmlとindex.phpの両方が同じディレクトリにある場合、index.hmlの前に** index.php *と記述しない限り、index.htmlがデフォルトのインデックスとして使用されます。
私はそれが誰かを助けることを願っています... Happy Coding