1

Apache Web サーバー (localhost) で php.netから PHP をセットアップしようとしています。

過去 1 日半にわたって、Apache サイト、php.net サイト、SO、およびその他の場所で現在のエラーのヒットを示しているドキュメントを調べて、問題を解決しようとしました。ここに、私の現在の設定と (誤解の可能性がある) 理解の詳細を示します。

Define SRVROOT "/Apache/00"
ServerRoot "${SRVROOT}"

Apache の public ディレクトリは に設定されていhtdocsます。Apache は、その下のディレクトリのリストを問題なく作成していlocalhostます。私が正しいアドレスを持っていて、それが Apache であることを確認するためだけに、以下で説明するオン/オフ テストを行います。

PHP 用に提供されている Windows MSI を実行しました。次に、ファイルを調整し/conf/httpd.confて追加しました。

ScriptAlias /php/ "${SRVROOT}/php/"
AddType application/x-httpd-php .php

注: php (htdocs公開ファイル) &confディレクトリはすべて、同じディレクトリのルートにありSRVROOTます。

アパッチをテストする

http://localhost/lib/ 

以下を生成する可能性があります:

Index of /lib

    Parent Directory
    amd64/
    web.jar
    x86/

Apache をシャットダウンしてリストを更新すると、FF エラーが表示されます。

Unable to connect
Firefox can't establish a connection to the server at localhost.

そのため、Apache 自体は正常に動作しているようで、実行中はディレクトリの一覧を表示できます。

PHP のテスト

http://localhost/php/

ショー:

Forbidden
You don't have permission to access /php/ on this server.

当然のように思えますが、Apache はディレクトリの存在を認めるようになりましたが、一般に閲覧されることを意図していないと述べています。

を含むディレクトリphpinfo.phpのルートに があります。php

<?phpinfo();?>

参照するhttp://localhost/phpinfo.phpと情報が得られるはずですが、代わりに 404 メッセージが表示されます。

Not Found

The requested URL /phpinfo.php was not found on this server.

http://localhost/php/phpinfo.php禁止されたメッセージが表示されるため:

Forbidden
You don't have permission to access /php/phpinfo.php on this server.

典型的error.log

sl:warn] [pid 1504:tid 336] AH01909: RSA certificate configured for localhost:443 does NOT include an ID which matches the server name
[Sun Aug 04 19:06:01.995343 2013] [ssl:warn] [pid 1504:tid 336] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Sun Aug 04 19:06:02.298078 2013] [ssl:warn] [pid 1504:tid 336] AH01909: RSA certificate configured for localhost:443 does NOT include an ID which matches the server name
[Sun Aug 04 19:06:02.298078 2013] [ssl:warn] [pid 1504:tid 336] AH02292: Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Sun Aug 04 19:06:02.300031 2013] [mpm_winnt:notice] [pid 1504:tid 336] AH00354: Child: Starting 64 worker threads.
[Sun Aug 04 19:06:03.279523 2013] [authz_core:error] [pid 1504:tid 1004] [client ::1:50589] AH01630: client denied by server configuration: I:/Apache/00/php/index.html
[Sun Aug 04 19:15:39.932843 2013] [authz_core:error] [pid 1504:tid 1004] [client ::1:50599] AH01630: client denied by server configuration: I:/Apache/00/php/
[Sun Aug 04 19:21:49.700421 2013] [authz_core:error] [pid 1504:tid 1004] [client ::1:50608] AH01630: client denied by server configuration: I:/Apache/00/php/phpinfo.php
[Sun Aug 04 19:26:58.432843 2013] [authz_core:error] [pid 1504:tid 1004] [client ::1:50621] AH01630: client denied by server configuration: I:/Apache/00/php/phpinfo.php
[Sun Aug 04 19:37:26.403546 2013] [mpm_winnt:notice] [pid 4400:tid 324] AH00422: Parent: Received shutdown signal -- Shutting down the server.
[Sun Aug 04 19:37:28.403546 2013] [mpm_winnt:notice] [pid 1504:tid 336] AH00364: Child: All worker threads have exited.
[Sun Aug 04 19:37:28.418195 2013] [mpm_winnt:notice] [pid 4400:tid 324] AH00430: Parent: Child process 1504 exited successfully.

質問

phpinfo.php資料を見せたい。私が犯しているばかげた間違いを誰かが見ることができますか (私は初心者です)?

以下も参照してください。

これらは私が見ている主なドキュメントです:

4

1 に答える 1

1

実行中の Apache サーバーが読み取れるように phpinfo.php ファイルにアクセス許可が設定されていないため、アクセス許可エラーが発生している可能性があります。Apache は、実行時に制限されたユーザー アカウントに特権をドロップするように構成できます。ファイルのセキュリティ アクセス許可が、そのユーザー アカウントによるファイルの読み取りを許可していない場合は、アクセス許可エラーが発生します。これは、最終的なパス名のすべてのディレクトリに適用されることに注意してください。つまり、/Apache と /Apache/00 と /Apache/00/php と /Apache/00/php/phpinfo.php は、Apache を実行するユーザー アカウントですべて読み取り可能でなければなりません。下。

別の可能性として、httpd.conf にデフォルトのアクセス ポリシーである deny-first の Directory ディレクティブがある場合、/php/ へのアクセスを許可するために、Directory ディレクティブを httpd.conf に追加する必要がある場合があります。

また、PHP Apache モジュール DLL を Apache モジュール フォルダーにインストールした場所や、httpd.conf ファイルにモジュールを追加した場所についても言及されていません。PHP モジュールをロードしないと、PHP ファイルは PHP を通過しません。

于 2013-08-04T15:47:07.630 に答える