PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   請教關於WEB SERVER的問題 (https://www.pcdvd.com.tw/showthread.php?t=1187469)

vince5586 2021-07-11 09:12 PM

引用:
作者michelle-lai529
如同樓上說的,先把selinux 給 disable 掉試試,只是這個應該不會是運作了一段時間才出問題∼
首要先確定在該檔案下php是可以運作的。


selinux 本來就沒開的 確認過了
about.php在DocumentRoot裡是可以正常顯示<?php echo phpinfo(); ?> 的訊息

原本網頁的內容是這樣
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class About extends CI_Controller {

public function index()
{

$data["sid"] = $this->input->get('sid', TRUE);
if($data["sid"]<1){
$data["sid"] = 1;
}
$this->load->view('v_about' , $data);
}
}

dkjfso 2021-07-11 09:21 PM

把 if ( ! defined('BASEPATH')) exit('No direct script access allowed');
註釋掉
或在index.php中去define BASEPATH
但第二種方法那些頁面都要透過index.php去連

michelle-lai529 2021-07-11 09:25 PM

引用:
作者vince5586
selinux 本來就沒開的 確認過了
about.php在DocumentRoot裡是可以正常顯示<?php echo phpinfo(); ?> 的訊息

原本網頁的內容是這樣
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class About extends CI_Controller {

public function index()
{

$data["sid"] = $this->input->get('sid', TRUE);
if($data["sid"]<1){
$data["sid"] = 1;
}
$this->load->view('v_about' , $data);
}
}


看這個語法應該是CodeIgniter的php Framework 可以去查一下他的環境設定跟參數檔位置,在逐一核對。

ycli6921 2021-07-11 09:32 PM

引用:
作者vince5586
瀏覽器出現No direct script access allowed
檔案權限如下:
-rwxr-xr-x 1 root root 303 2021-07-11 19:06 about.php
-rwxr-xr-x 1 root root 6358 2021-07-10 17:40 index.php
謝謝!


假日晚上還在修改檔案
真是負責的好員工啊
猜想樓主的公司沒有用上版本控制吧
什麼東西被誰改了也搞不清楚

NTC_TW_IT 2021-07-11 09:36 PM

引用:
作者vince5586
selinux 本來就沒開的 確認過了
about.php在DocumentRoot裡是可以正常顯示<?php echo phpinfo(); ?> 的訊息

原本網頁的內容是這樣
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class About extends CI_Controller {

public function index()
{

$data["sid"] = $this->input->get('sid', TRUE);
if($data["sid"]<1){
$data["sid"] = 1;
}
$this->load->view('v_about' , $data);
}
}

很明顯,那個錯誤是你的程式噴的,不是httpd噴的
依照code的邏輯來看,這個php是不能被直接執行的,而是設計成被include使用,然後在主要程式部分include後顯示設計的內容

至於權限設定??不能說錯~~但是很特殊

vince5586 2021-07-11 10:20 PM

引用:
作者dkjfso
把 if ( ! defined('BASEPATH')) exit('No direct script access allowed');
註釋掉
或在index.php中去define BASEPATH
但第二種方法那些頁面都要透過index.php去連


index.php我之前看過了,但因為我不懂PHP看不出來要怎麼設定
時間也晚了,不打算再傷腦筋了
謝謝你!

vince5586 2021-07-11 10:32 PM

謝謝大家的回覆
網頁一直在DocumentRoot底下的application裡,之前都可以正常開啟
不知道是哪裡出錯了,沒辦法去開啟application裡的網頁

時間很晚了,我也不想再傷腦筋了,明天跟主管回報看他要怎麼辦吧!
問題有解決的話我再來跟大家回報是啥問題
謝謝大家!

darkangel 2021-07-11 10:40 PM

引用:
作者vince5586
php.ini沒動過,也沒更動版本 請問有哪些地方要做確認的?
OS是CentOS
謝謝!


抱歉 CentOS 我不熟,最後一次玩 RedHat 系列是快 10 年前的事了,
不知道現在還是不是用 yum,也無法確定是不是 auto upgrade 的鍋,
LAMP 也十幾年沒碰了。

可以再檢查一些東西:

1. 目錄用戶與權限。
2. 檢查 daemon。
3. 檢查 listen port 是否正常。(但我覺得應該正常)

用 ls -ld 查 DocumentRoot 的用戶,是否是 755 等,
用 ps aux | grep httpd 檢查 daemon euid,
看一下執行 httpd 的 euid,
試著把 DocumentRoot 整個目錄的用戶改相同看看,
比如說 euid 可能是 web,
用 chown web -R 或 chown web:group -R 來更動整個目錄的權限。

用 netstat -na(或 -tulpn) | grep 80 或 lsof -i :80 檢查 listen port。
不過我覺得這個應該不相關。

最好的方法就是找個熟 Linux 又信得過的朋友遠端過去看,
我以前都是這樣幫我同學的。

:laugh: :laugh: :laugh: :laugh: :laugh:

dkjfso 2021-07-12 06:15 AM

是第一句報錯
把about.php放到DocumentRoot
且將第一句的 if前面加//兩個斜線註釋掉應該就可以避掉這個檢查跟報錯
引用:
<?php //if ( ! defined('BASEPATH')) exit('No direct script access allowed');


darkangel 2021-07-12 10:00 AM

引用:
作者dkjfso
是第一句報錯
把about.php放到DocumentRoot
且將第一句的 if前面加//兩個斜線註釋掉應該就可以避掉這個檢查跟報錯


怎麼還在糾結這幾行?
我雖然多年沒碰 PHP,
但我有 99% 的信心認為他的問題與此無關,
這行的用意跟 Python 的 if __name__ == "__main__" 差不多,
都是用來判斷是否為直接執行或是被 require/include,
雖然作用不太一樣就是了。

:sleep: :sleep: :sleep: :sleep: :sleep:


所有的時間均為GMT +8。 現在的時間是06:22 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。