2010-09-10 159 views
1

我有一個服務器安裝程序,其中只有phpinfo()的測試腳本正常工作。顯示空白屏幕的PHP腳本

當我嘗試運行我的應用程序時,它顯示爲空白屏幕。

我從瀏覽器調用index.php。前幾行如下:

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
require_once('codelibrary... 

然而,屏幕仍然是空白的。


編輯1

這裏的文件的結構:

/.htaccess 
/index.php 
/codelibrary/inc/user-top.php 
/codelibrary/inc/variables.php 
/codelibrary/inc/config.php 

的index.php

<?php 
require_once('codelibrary/inc/user-top.php'); 
... 

/codelibrary/inc/user-top.php

<?php 
require_once("./codelibrary/inc/variables.php"); 
... 

/codelibrary/inc/variables.php

<?php 
include_once('config.php'); 
... 

我以爲這裏引用可能是一個問題,所以我把它改爲:

require_once("./codelibrary/inc/config.php"); 

爲好,但沒有運氣。


編輯2

啊哈!謝謝上校和topq命令的指出我應該看看日誌文件,它說:

[10月2010年17點06分02秒] PHP的警告:PHP啓動:無法加載動態庫「/ usr/local/lib/php/extensions/no-debug-non-zts-20090626/suhosin.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20090626/suhosin.so:在未知的瀏覽器沒有這樣的文件或目錄上線0

+0

那幾行什麼也不做,會在屏幕上打印出什麼東西,難怪它是空白的......除非你顯示進一步發生的事情在你的腳本中,很難檢查出現什麼問題...... – Select0r 2010-09-10 09:04:54

+0

嗨 - 腳本有很多/它是一個完整的網站,所以我不能複製粘貼所有的信息... – tzmatt7447 2010-09-10 09:22:32

回答

3

使用「查看源文件」,看看什麼是由你的腳本的瀏覽器可能不被明顯地呈現寫:無法打開共享對象文件。

編輯

如果您收到一個HTTP 500響應,那麼你總是可以做一個PHP皮棉支票上的命令行腳本:

php -l <filename.php> 

一個非常有用的和經常 - 檢查你的代碼的語法。

+0

嗨馬克 - 不,不是顯示(火災發生後,只有500) – tzmatt7447 2010-09-10 09:23:18

+0

爲了響應php -l:T hanks指出,我不知道!它說:沒有在index.php中檢測到語法錯誤 – tzmatt7447 2010-09-10 10:40:19

+0

可能值得對所有包含的腳本執行php -l lint檢查,但如果問題出現在其中一個我期望得到的顯示錯誤因爲主腳本已經成功加載並且應該執行包括 – 2010-09-10 11:30:30

4

嘗試設置從.htaccess文件

php_flag display_startup_errors on 
php_flag display_errors on 
php_flag html_errors on 
+0

有趣的建議。刪除舊的.htaccess,並將其設置爲你所提到的,得到一個「500內部服務器錯誤」 – tzmatt7447 2010-09-10 09:22:02

+0

堅持 - 有可能是上述錯誤。如果我只有這3行,我會在phpinfo腳本中遇到500錯誤!如果我沒有.htaccess,phpinfo腳本工作正常。 – tzmatt7447 2010-09-10 09:26:29

+0

500錯誤**可**是基於權限/所有權 - 我有時發現上傳腳本作爲根用戶到客戶端帳戶可能導致腳本500 – Ross 2010-09-10 09:58:28

1

問題的display_errors可能是以下幾點:你的腳本運行(即在分析也許有些語法錯誤)之前的錯誤occurrs。由於您的腳本無法運行,因此不能動態更改錯誤級別。你需要在你的php.ini中設置error_reporting,或者嘗試點火的建議,這應該會產生相同的結果。

2

檢查PHP錯誤日誌。通常語法錯誤或缺少依賴關係。

+0

對不起 - 請問 - 那個位置在哪裏? – tzmatt7447 2010-09-10 11:32:38

+0

@tzm所在的所有其他Web服務器日誌。你必須諮詢一個服務器管理員/支持 – 2010-09-10 11:44:25

+0

(尷尬)抱歉,我想明白了...... – tzmatt7447 2010-09-10 11:55:27

0

正如在其他答案中指出的那樣,如果腳本中存在錯誤,它將無法動態設置錯誤級別。

您可以將適當的指令添加到當前目錄中的.htaccess文件,webserver config或php.ini文件(http://php.net/manual/en/errorfunc.configuration.php)中。你需要在php_flag指令的前面添加前綴01 php_flag display_errors on

如果您不能將命令添加到.htaccess文件,則很可能您的服務器配置不允許覆蓋這些屬性。請諮詢服務器維護人員以更改這些值,從而允許您基於每個文件夾覆蓋這些指令,並可以訪問虛擬主機的錯誤日誌。

0

考慮到這是一個腳本,將由您的組(瀏覽器/網絡服務器)以外的用戶執行的腳本,我認爲該文件應設置權限755,因爲這允許您進行更改和其他人但確保瀏覽器可以執行該腳本(755 - > -rwxr-xr-x)