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
編集:Apacheが.htaccessファイルを許可するように設定されていると仮定しています。そうでない場合は、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よりも優先されます(メンテナンスページを表示する必要がある場合に便利です)
これは誰かに役立つかもしれません。これはhttpd.confのスニペットです(Apacheバージョン2.2ウィンドウ)
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html
DirectoryIndex index.php
</IfModule>
現在、index.htmlファイルが検索され、見つからない場合はindex.phpが検索されます。
直接管理者がホストするサイトのサイトでも同じ問題が発生しました。追加した
DirectoryIndex index.php
カスタムのhttd拡張機能(サイトのhttpd
ファイルにコードを追加)として、サイトはデフォルトでindex.php
を実行しました。
次を使用して.htaccessファイルを作成してみてください。
DirectoryIndex index.php
編集:実際には、「php-Apache」パッケージや、両方でインストールすることになっているものはありませんか?
同様の症状がありました。私の場合、私の愚かさは、意図せずに、Webルートフォルダーに空のindex.htmlファイルも持っていました。 DirectoryIndex
はmods-available/dir.conf
で次のように構成されていたため、index.phpを明示的に要求しなかった場合、Apacheはindex.phpではなくこれを提供していました。
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
つまり、優先度リストで「index.html」が「index.php」よりも先に表示されます。 Webルートからindex.htmlファイルを削除すると、自然に問題が解決しました。ど!
これをすべて読んで修正しようとした後、ubuntuフォーラムで簡単な解決策を得ました( https://help.ubuntu.com/community/ApacheMySQLPHP )。問題はlibapache2-mod-php5モジュールにあります。ブラウザがWebページを表示するのではなく、index.phpファイルをダウンロードするのはそのためです。以下をせよ。 Sudo a2enmod php5が返すモジュールが存在しない場合、問題はlibapache2-mod-php5にあります。コマンドSudo apt-get --purge remove libapache2-mod-php5を使用してモジュールを削除し、再度インストールしますSudo apt-get install libapache2-mod-php5
Info:Apache2のいくつかのconfでは、mods_enabled/dir.confにDirectoryIndexコマンドを追加する必要があります(Apache2.confにはありません)
この投稿は古いかもしれませんが、他の人に役立つ場合にだけ投稿しています。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.htmlは、index.hmlの前に** index.php *を記述することを除いて、デフォルトのインデックスとして使用されます。 =
私はそれが誰かを助けることを願っています...ハッピーコーディング
Ubuntu 16.04.4 LTSおよびApache/2.4.18の手順と完全な手順
「Sudo -s
」
「cd /etc/Apache2/mods-enabled
」
「vi dir.conf
」と以下のようにDirectoryIndexの直後にindex.phpを移動し、ファイルを保存してからApacheサーバーを再起動します。
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
「service Apache2 restart
」
Dir.confが表示されない場合は、ロードする必要があります(方法についてはgoogle)
できた.
これは魅力のように機能します!
最初の
<IfModule dir_module>
DirectoryIndex index.html
DirectoryIndex index.php
</IfModule>
その後はfrom
<Files ".ht*">
Require all denied
</Files>
to
<Files ".ht*">
Require all granted
</Files>
私にとっても同じ問題です。私の解決策は、mod_dirが有効になっておらず、Apache2がVirtualHostファイルのディレクティブを読み取るときにエラーを発行していなかったことです。
DirectoryIndex index.html
コマンドの使用:
Sudo a2ensite dir
Sudo sudo service Apache2 restart
問題を修正しました。