更新至18.04後開啟PHP網頁顯示原始碼 [論壇 - 伺服器架設]
正在瀏覽:
1 名遊客
更新至18.04後開啟PHP網頁顯示原始碼 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2018/11/27 14:15 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 5
![]() |
從16.04更新至18.04後,開啟PHP網頁會顯示原始碼,
上網查詢可能原因為:未安裝PHP, 下指令查詢後得知有安裝PHP且版本為7.2, 請問該怎麼處理這個問題?
2018/11/27 14:28
|
||||||||||
![]() |
回覆: 更新至18.04後開啟PHP網頁顯示原始碼 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 905
![]() |
假如您已經安裝了「libapache2-mod-php7.2」。
請先檢查「/etc/apache2/mods-enabled/php7.2.load」這個檔案 和「/etc/apache2/mods-enabled/php7.2.conf」這個檔案 是否存在, 舉例,檢查「/etc/apache2/mods-enabled/php7.2.load」這個檔案是否存在
若不存在,會顯示如下
若不存在,請執行下面指令
就會產生「/etc/apache2/mods-enabled/php7.2.load」這個檔案 和產生「/etc/apache2/mods-enabled/php7.2.conf」這個檔案 接著執行下面指令
註: 透過「sudo a2enmod」產生「/etc/apache2/mods-enabled/php7.2.load」,會是一個「symbolic link」, 會「symbolic link」到「/etc/apache2/mods-available/php7.2.load」。 執行
顯示
============================================================ 另外有一種情形,是關於個人家目錄底下的網頁的,請參考「#3 回覆: php網頁打開變原始碼」, 確認看看在您的環境,是否是這個因素導致您提到的狀況? * /etc/apache2/mods-available/php7.2.conf * /etc/apache2/mods-enabled/php7.2.conf * http://php.net/manual/en/apache.configuration.php#ini.engine * http://php.net/manual/en/configuration.changes.php * http://php.net/manual/en/apache.configuration.php#ini.engine 以下擷取「/etc/apache2/mods-available/php7.2.conf」最下方一段 # Running PHP scripts in user directories is disabled by default # # To re-enable PHP in user directories comment the following lines # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it # prevents .htaccess files from disabling it. <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_flag engine Off </Directory> </IfModule> ============================================================ 也有可能是其他因素導致的,該討論串也有列一些參考連結,您可以先參考看看 * https://help.ubuntu.com/lts/serverguide/web-servers.html * https://help.ubuntu.com/lts/serverguide/httpd.html * https://help.ubuntu.com/lts/serverguide/php.html 有其他線索,可以再提出來討論 ============================================================
顯示
執行
顯示
執行
顯示
以上提供探索的起點 以前有紀錄一些討論案例在「[索引] Apache操作實務」,也可以參考。 以下是一些相關指令範例,提供參考
![]()
2018/11/27 14:41
|
||||||||||
![]() |
回覆: 更新至18.04後開啟PHP網頁顯示原始碼 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2018/11/27 14:15 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 5
![]() |
感謝您的回覆,
* /etc/apache2/mods-available/php7.2.conf * /etc/apache2/mods-enabled/php7.2.conf php_admin_flag engine Off 將其修改為php_admin_flag engine On 依序輸入您提供的指令, 並使用您提供的指令範例重啟 $ sudo a2dismod php7.2 $ sudo a2enmod php7.2 $ sudo systemctl restart apache2 $ sudo /etc/init.d/apache2 restart $ sudo service apache2 restart 仍無法解決此問題。
2018/11/27 15:36
|
||||||||||
![]() |
回覆: 更新至18.04後開啟PHP網頁顯示原始碼 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 905
![]() |
我上面「#2」有重新編輯了一下,您再參考看看,
抱歉,我一開始想到啥,就直接寫了,可能誤導您了。 關於指令範例只是給您參考,您需要了解每個指令在做什麼, 否則有可能我會誤導您執行到錯誤的步驟 Orz... 執行下面指令,了解「a2enmod」的用法
執行下面指令,了解「a2dismod」的用法
其他相關的
============================================================ 執行
顯示
關於「a2enmod」是「Perl script」, 所以也可以直接觀看「/usr/sbin/a2enmod」,來了解它裡面執行那些動作
2018/11/27 15:44
|
||||||||||
![]() |
回覆: 更新至18.04後開啟PHP網頁顯示原始碼 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2018/11/27 14:15 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 5
![]() |
謝謝您的回覆,
#2根據您新增的部分, 「/etc/apache2/mods-enabled/php7.2.load」 「/etc/apache2/mods-enabled/php7.2.conf」 檢查後發現有這兩個檔案 並確認 <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_flag engine Off </Directory> </IfModule> 改為 <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_flag engine On </Directory> </IfModule> 並重啟apache2, 另外,想詢問你 <Directory /home/*/public_html> 該行路徑需要改設為網站資料夾的路徑嗎?
2018/11/27 16:28
|
||||||||||
![]() |
回覆: 更新至18.04後開啟PHP網頁顯示原始碼 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 905
![]() |
TETETETETE 寫到: 這裡應該是不需要去修改它的路徑, 這是另一個議題,應該是跟原本您提到的無關, 它是有關每個使用者家目錄裡面的網頁設定, 舉例: 使用者「cooker」, 就會是跟「/home/cooker/public_html」這個資料夾有關。 假設有一個檔案「/home/cooker/public_html/test.php」。 對應的連結就是「http://localhost/~cooker/test.php」。 假設有一個檔案「/home/cooker/public_html/demo.html」。 對應的連結就是「http://localhost/~cooker/demo.html」。 另外也要開啟「userdir」這個模組,也就是執行「$ sudo a2enmod userdir」。 也就是會產生下面兩個檔案 * /etc/apache2/mods-enabled/userdir.load * /etc/apache2/mods-enabled/userdir.conf 您可以觀看「/etc/apache2/mods-enabled/userdir.conf」裡面的設定,
============================================================ 另外請注意下面綠色字的註解說明 以下擷取「/etc/apache2/mods-available/php7.2.conf」最下方一段 # Running PHP scripts in user directories is disabled by default # # To re-enable PHP in user directories comment the following lines # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it # prevents .htaccess files from disabling it. <IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_flag engine Off </Directory> </IfModule> ============================================================ 而您在「#1」提供的「圖」, 關於「http://127.0.0.1/info.php」這個連結。 應該是「/var/www/html/info.php」。 關於「/var/www/html/」相關的設定在 * /etc/apache2/sites-available/000-default.conf * /etc/apache2/sites-enabled/000-default.conf 而「apache」最主要設定則在「/etc/apache2/apache2.conf」。 ============================================================ 可能您要再研究看看,會是什麼因素,導致在您的環境,發生「#1」這樣的情形 目前我還聯想不到其他的因素 Orz...
2018/11/27 16:55
|
||||||||||
![]() |
回覆: 更新至18.04後開啟PHP網頁顯示原始碼 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2018/11/27 14:15 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 5
![]() |
感謝您的回覆,
好像找出問題原因了, 根據您的回覆執行「$ sudo a2enmod userdir」 開啟userdir後就可以正常顯示網頁了, 謝謝大大的幫助!!
2018/11/27 17:16
|
||||||||||
![]() |
回覆: 更新至18.04後開啟PHP網頁顯示原始碼 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 905
![]() |
TETETETETE 寫到: 在我的環境「Ubuntu 18.04」, 並不需要開啟「userdir」這個模組, 也不需要修改「/etc/apache2/mods-available/php7.2.conf」這個檔案, 只需要開啟「php7.2」這個模組,重啟「apache」。 就能正常讓php執行, 也就是您原本提到的「http://127.0.0.1/info.php」這個連結, 顯示的是php執行後的結果,而非顯示php的原始碼(「/var/www/html/info.php」這個檔案的原始內容)。 所以我也不確定,在您的環境,會是什麼環節,導致您提到的狀況, 以上再次釐清。 不過既然在您的環境,目前可以正常運作,那就先這樣吧, 若您有興趣去找出真正的原因,有空時,您再花時間去研究其中真正的原因吧, 可以參考我上面回覆提到的相關資訊,再去探索研究。 報告完畢! ![]()
2018/11/27 17:55
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.