我試圖打開一個解析文件(一個二進制文件),但是不管fopen()總是返回NULL。PHP fopen()返回NULL,總是
我已經排除了幾乎所有的地方,我有一個測試腳本簡單點:
<?php
$idx = fopen('/usr/home/username/web/appname/dev/www/debug/18194001.idx','r');
trigger_error(var_export($idx,true));
exit();
從trigger_error輸出(var_export());是:
[31-Mar-2013 16:30:34 UTC] PHP Notice: NULL in /usr/home/username/web/appname/dev/www/debug/ajax.idx.php on line 3
無論我爲第二個fopen()選項指定什麼標誌,我都會得到相同的結果。
現在,顯而易見的問題是該文件是否存在,並且我是否有權讀取它?這兩個答案都是肯定的。我使用了相對路徑和絕對路徑,都是正確讀取文件。 file_get_contents()也讀取沒有問題的文件。
is_readable()和file_exists()都返回true
LS -lah的該文件的輸出是:
-rwxrwxrwx 1 username username 2.0K Mar 30 15:02 18194001.idx
如果 '用戶名' 相匹配的用戶名的web服務器進程和PHP( lighttpd和php-fpm)正在運行。父目錄還具有用戶/組/全部的讀取/讀取/讀取權限。
我試過其他文件,我注意到我在fopen拋出的東西幾乎都返回了一個NULL值。
幫助?
PHP信息:
PHP 5.4.6 (cli) (built: Oct 10 2012 10:43:19)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
with XCache v2.0.1, Copyright (c) 2005-2012, by mOo
Lighttpd的信息:
lighttpd/1.4.31 (ssl) - a light and fast webserver
Build-Date: Sep 7 2012 15:38:20
OS:
FreeBSD hostname.hostname.hostname 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Thu Feb 17 02:41:51 UTC 2011 [email protected]:/usr/obj/usr/src/sys/GENERIC amd64
你有安全模式嗎? –