簡體   English   中英

PHP 文件由瀏覽器下載,而不是由本地開發服務器 (MAMP) 處理

[英]PHP files are downloaded by browser instead of processed by local dev server (MAMP)

一切都很順利,直到我將AddHandler application/x-httpd-php5s .php到本地服務器文檔根目錄中的 .htaccess 文件中(我經常根據我使用的站點更改該文件)。 因為我在訪問http://localhost:8888時這樣做了,所以我的瀏覽器只下載 index.php 並且根本沒有處理它,只是原始代碼。 現在我從 .htaccess 文件中刪除了該行,但我仍然遇到這個問題

我發現如果我為 127.0.0.1 的主機文件添加一個替代條目,新條目的行為就像過去的“localhost”。 但是,如果我將上面的行添加到我的 .htaccess 中,它也會淘汰那個新主機。 我試過重新安裝MAMP並清除它的緩存和我能找到的所有臨時文件。 我瀏覽了 Apache 的 httpd.conf 文件,但無濟於事。

所以,要明確: http://localhost:8888遇到了上述問題。 如果我為 127.0.0.1 在我的主機文件中添加一個新條目,例如“goomba”,並且上面的行不在根 .htaccess 中(並且從未用於該主機/別名/任何內容),那么我可以訪問http:/ /goomba:8888就好了。 但是,如果我確實將該行添加到 .htaccess 中,那么即使我從 .htaccess 文件中刪除了該行,我也必須向我的主機文件中添加另一個條目以繞過它。

我可以使用不同的 127.0.0.1 別名(主機?那叫什么?),但讓我煩惱的是這仍然是壞的。

需要說明的是,我使用的是 Mac OS Leopard(但我沒有使用內置的 Apache 設置,而是使用 MAMP)。

我遇到過幾次類似的問題,重命名文件對我不起作用。 使用 OS X Lion 我發現正確的配置是這樣的:

<IfModule php5_module>
    AddType application/x-httpd-php .php
    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>
    AddType application/x-httpd-php-source .phps
    <IfModule dir_module>
        DirectoryIndex index.php index.html
    </IfModule>
</IfModule>

讓它為我工作的魔法是SetHandler application/x-httpd-php部分。

當然,將<IfModule php5_module>編輯為您的 php 版本。

您在處理程序應在的位置應用 mimetype(請參閱有關處理程序的文檔

試試這個:

AddType application/x-httpd-php5 .php

編輯:正如您已經指出緩存模塊已加載,您可以閱讀緩存htcacheclean (以清除磁盤緩存)。 您還可以臨時使用CacheDisable指令。 您還可以嘗試的另一件事是重命名您請求的文件(例如 index.php -> index.bak),在瀏覽器中再次請求該文件(現在應該是 404),然后還原並重試。

請注意,請確保您的實時環境中沒有與其他文件一起意外下載的 htaccess 文件。 此外,請確保在編輯 htaccess 時匹配您的 PHP 版本。 錯誤的版本會導致同樣的問題——錯誤的設置。

下面是一個運行 PHP7 的例子:

應用程序/x-httpd-ea-php71 .php .php7 .phtml

我希望這些信息能有所幫助 - 在創建票證 8 年后發生在我身上 :)

也許你想要application/x-httpd-php5而不是application/x-httpd-php5s (請注意末尾缺少s 。)

在我的情況下,刪除或注釋掉我的根涉及的 htacces 文件中的“AddHandler php56-cgi .php”解決了它

最好的事物

如果有人再次遇到這種問題,請先做一些最重要的事情。 我的意思是,使用私人導航(無緩存)。 因為這個,我浪費了我的時間。

GLHF

對於同樣的問題,我刪除了“5”AddType 應用程序/x-httpd-php .php .htm .html

它的工作正常! 嘗試

我實際上有一個非常相似的問題。 當我嘗試測試 php 和 apache 是否一起工作時,我的所有 php 文件都在下載。 原來他們沒有一起工作。

我不得不卸載 php,我會推薦相同的操作過程,然后僅使用 php.net 上的 zip 文件下載重新安裝 php,而不是使用 MAMP 安裝它。 我認為我的問題是我使用了 php 安裝程序。 我不建議使用它。

該網站對我幫助很大,我遇到了 apache 無法啟動的問題,雖然這不是您的問題,但該網站解決了 apache 無法啟動和 php 文件下載問題,即使您使用的是 mac,它也可能有所幫助你也是http://forums.phpfreaks.com/topic/185771-problem-starting-apache-2214-after-installing-php-5212

希望一切正常! 祝你好運!

首先檢查您的 apache 服務器是否正在運行。 開始->運行->cmd然后執行命令:

netstat -abn

像這樣查找行的結果:

TCP 0.0.0.0:8888 0.0.0.0:0 聆聽 600 [apache.exe]

如果您在端口 8888(沒有 0.0.0.0:8888 行)上找不到任何偵聽內容,那么您的 apache 無法啟動。 要找出它無法啟動的原因,您應該找到 apache 日志目錄並檢查 error.log(可能是您最近更新了 php?)。 如果您發現 0.0.0.0:80 偵聽線路但其他一些軟件正在偵聽那里(您是否正在運行 IIS?)那么您應該刪除/重新配置該軟件以釋放端口 80。如果您有 apache 偵聽端口 80 但仍然無法打開您的網站,您無法通過檢查 apache 日志文件找出導致問題的原因,然后是數據庫問題。 檢查您的 mysql 是否正在運行並使用相同的命令進行偵聽,但您應該尋找

TCP 0.0.0.0:3306 0.0.0.0:0 偵聽 [mysqld-nt.exe]

如果你找不到這樣的行,那么你的 mysql 服務器沒有運行 - 檢查 mysql 日志文件是否有錯誤。 如果兩個服務器都在運行並且您無法在瀏覽器中獲得任何輸出,請檢查您的防火牆和防病毒軟件 - 它們可能會阻止您的請求。 希望這可以幫助 ;)

我遇到了同樣的問題,這是因為在這個文件夾中你有 .htaccess 文件隱藏了一些自定義代碼,對我來說是因為我從我正在運行的網站服務器復制。 嘗試重命名文件,您將看到您的項目。 然后根據您的需要自定義文件。

刪除評論就好了

<IfDefine PHP>
   LoadModule php_module        modules/libphp.so
</IfDefine>

在 etc/extra/httpd-xampp.conf

就我而言,在克隆 repo 並嘗試設置項目后,我不得不運行composer update來安裝所有依賴項,然后打開頁面而不是下載文件

暫無
暫無

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

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