PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
vince5586
Major Member
 

加入日期: Jan 2006
文章: 286
引用:
作者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);
}
}
     
      
舊 2021-07-11, 09:12 PM #21
回應時引用此文章
vince5586離線中  
dkjfso
Senior Member
 

加入日期: Apr 2005
文章: 1,209
把 if ( ! defined('BASEPATH')) exit('No direct script access allowed');
註釋掉
或在index.php中去define BASEPATH
但第二種方法那些頁面都要透過index.php去連
 
舊 2021-07-11, 09:21 PM #22
回應時引用此文章
dkjfso離線中  
michelle-lai529
Regular Member
 

加入日期: Jun 2010
文章: 86
引用:
作者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 可以去查一下他的環境設定跟參數檔位置,在逐一核對。

此文章於 2021-07-11 09:41 PM 被 michelle-lai529 編輯.
舊 2021-07-11, 09:25 PM #23
回應時引用此文章
michelle-lai529離線中  
ycli6921
Advance Member
 

加入日期: Mar 2002
文章: 484
引用:
作者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
謝謝!


假日晚上還在修改檔案
真是負責的好員工啊
猜想樓主的公司沒有用上版本控制吧
什麼東西被誰改了也搞不清楚
舊 2021-07-11, 09:32 PM #24
回應時引用此文章
ycli6921離線中  
NTC_TW_IT
Regular Member
 

加入日期: Jul 2014
文章: 89
引用:
作者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後顯示設計的內容

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

此文章於 2021-07-11 09:42 PM 被 NTC_TW_IT 編輯.
舊 2021-07-11, 09:36 PM #25
回應時引用此文章
NTC_TW_IT離線中  
vince5586
Major Member
 

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


index.php我之前看過了,但因為我不懂PHP看不出來要怎麼設定
時間也晚了,不打算再傷腦筋了
謝謝你!
舊 2021-07-11, 10:20 PM #26
回應時引用此文章
vince5586離線中  
vince5586
Major Member
 

加入日期: Jan 2006
文章: 286
謝謝大家的回覆
網頁一直在DocumentRoot底下的application裡,之前都可以正常開啟
不知道是哪裡出錯了,沒辦法去開啟application裡的網頁

時間很晚了,我也不想再傷腦筋了,明天跟主管回報看他要怎麼辦吧!
問題有解決的話我再來跟大家回報是啥問題
謝謝大家!
舊 2021-07-11, 10:32 PM #27
回應時引用此文章
vince5586離線中  
darkangel
Major Member
 
darkangel的大頭照
 

加入日期: Aug 2001
文章: 211
引用:
作者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 又信得過的朋友遠端過去看,
我以前都是這樣幫我同學的。

__________________
滿招損 謙受益
舊 2021-07-11, 10:40 PM #28
回應時引用此文章
darkangel離線中  
dkjfso
Senior Member
 

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

舊 2021-07-12, 06:15 AM #29
回應時引用此文章
dkjfso離線中  
darkangel
Major Member
 
darkangel的大頭照
 

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


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

__________________
滿招損 謙受益
舊 2021-07-12, 10:00 AM #30
回應時引用此文章
darkangel離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是04:03 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。