簡體   English   中英

在Windows上為Apache設置PHP

[英]Setting up PHP for Apache on Windows

我一直試圖在我的Apache Web服務器(本地主機)中從php.net設置PHP。

在過去的一天半里,我一直在Apache站點,php.net站點,SO以及其他任何地方瀏覽文檔,以查找當前錯誤的答案,以嘗試解決問題。 以下是我目前的設置和(可能的錯誤)理解的一些細節。

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

Apache的公共目錄設置為htdocs Apache通過localhost可以毫無問題地生成其下目錄的列表。 只是為了確保我有正確的地址(它是Apache),我按以下說明進行了開/關測試。

我運行了為PHP提供的Windows MSI。 然后我調整了/conf/httpd.conf文件以添加:

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

注意: phphtdocs (公共文件)和conf目錄都在同一目錄SRVROOT的根目錄中。

測試Apache

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現在承認該目錄的存在,但表示不打算被公開瀏覽。

我在包含的php目錄的根目錄中有一個phpinfo.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文件。 有人能看到我犯的愚蠢錯誤嗎(我是新手)?

也可以看看:

這些是我一直在看的主要文檔:

您可能會收到權限錯誤,因為phpinfo.php文件沒有設置權限,因此您正在運行的Apache服務器可以讀取它。 可以將Apache配置為在運行時將權限授予受限用戶帳戶,並且如果文件的文件安全權限不允許該用戶帳戶讀取文件,則會出現權限錯誤。 請記住,這適用於最終路徑名中的每個目錄,即/ Apache和/ Apache / 00和/ Apache / 00 / php和/Apache/00/php/phpinfo.php必須由Apache運行的用戶帳戶全部讀取下。

另一種可能性是,如果您的httpd.conf具有默認訪問策略為拒絕優先的目錄指令,則可能需要在httpd.conf中添加目錄指令以允許訪問/ php /。

我也沒有提到您將PHP Apache模塊DLL安裝到Apache modules文件夾中的位置,也沒有提及將模塊添加到httpd.conf文件中的位置。 如果不加載PHP模塊,PHP文件將不會通過PHP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM