ホームページ >バックエンド開発 >PHPチュートリアル >警告: DocumentRoot エラーの解決策

警告: DocumentRoot エラーの解決策

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-30 13:30:141965ブラウズ

インストール時のセキュリティを考慮して、DocumentRoot を別のパーティションに配置する予定だったので、論理パーティション内に専用のディレクトリを作成しました: /Dmnr
このパーティションをマウントするには、/etc/fstab を次のように設定します。
コード:…
LABEL=/Dmnr /Dmnr ext3 のデフォルトは 1 2
ディレクトリが作成されたら、Web サイトのコンテンツをディレクトリ内の www/html にコピーし、/etc/httpd/conf/httpd.conf を次のように変更します。
[php]

ドキュメントルート「/Dmnr/www/html」


[/php]
Apache を再起動すると、次のエラー メッセージが表示されます:
コード: #service httpd 再起動
httpd の開始: 警告: DocumentRoot [/Dmnr/www/html] が存在しません
[OK]
もちろん、サーバーはこれがディレクトリではないと認識しますが、DocumentRoot "" が他のディレクトリを指す場合は問題なく、サーバーは正常に動作します。
解決策:
1. SELinux の設定 (省略…)、以下を参照してください:
http://www.chinalinuxpub.com/read.php?wid=1010
http://blog.josesun.org/archives/2004_08/2
2. HTML ディレクトリの権限を変更します:
1. Web サイトのコンテンツ ディレクトリを確認します
[php]
#ls -Z /Dmnr/www/html
[/php]
ステータスは次のとおりです:
[php]
-rwxr-xr-x someuser somegroup Index.php

[/php]
2. 明らかに SELinux 権限がないので、次の変更を加えます:
[php]
chcon -R -t httpd_user_content_t /Dmnr/www/html
[/php]
改めて見てみるとこんな感じです
[php]
-rwxr-xr-x someuser somegroup user_u:object_r:httpd_sys_content_t Index.php

[/php]
httpd を再起動すると、通常の PHP が動作します。
3. データベース
1.MySQL
ただし、データベースの読み取りおよび書き込み時には、SELinux によって拒否されます。/var/lib/mysql または /var/lib/pgsql に移動して、権限が次のとおりであることを確認します。 [php]
-rw-rw——- mysql mysql root:object_r:mysqld_db_t ibdata1
-rw-rw——- mysql mysql root:object_r:mysqld_db_t ib_logfile0
-rw-rw——- mysql mysql root:object_r:mysqld_db_t ib_logfile1
drwx—— mysql mysql root:object_r:mysqld_db_t mysql
srwxrwxrwx mysql mysql root:object_r:mysqld_var_run_t mysql.sock
drwx—— mysql mysql root:object_r:mysqld_db_t テスト
[/php]
しかし、データが配置されているテスト ライブラリを見てみると、自分で構築したテーブルにまだ SELinux 権限がないことがわかります。それは問題ではなく、変更するだけです。 [php]
chcon -R -t mysqld_db_t /var/lib/mysql
[/php]
ここでの SELinux 属性は mysqld_db_t です
2.pgsql
PostgreSQL ライブラリも開きましたが、この方法を使用してプロパティを変更できませんでした。エラーが発生しました:
[php]
chcon: ラベルのないファイル pgsql/data/base/23456 に部分的なコンテキストを適用できません
chcon: ラベルのないファイル pgsql/data/base/12345 に部分的なコンテキストを適用できません
[/php]
/var/lib/pgsql/data/base に移動して確認すると、自己構築ライブラリ 12345 と 23456 には属性を適用できないことがわかります。情報を探していて混乱していて、長い間手がかりがなかったので、忘れてください
[php]
#su - postgres


cd/var /li b/pgsql/ data /base 上記では、Warning: DocumentRoot エラーの解決策を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:php_array次の記事:php_array