2014-09-23 60 views
4

這是我遇到的奇怪錯誤,我的php腳本間歇性地給出錯誤未能打開流:設備上沒有剩餘空間每當我嘗試生成文本文件並在其中寫入一些用戶生成的內容。但我的磁盤有足夠的空間。PHP fopen給出間歇性錯誤未能打開流:設備上沒有剩餘空間

代碼,我用的是下面:

$fp=fopen('../user1/dataProduct.txt','w'); 
fwrite($fp, 'Demo Text of Products'); 
fclose($fp); 

如果我這樣做:DF-H df -H Results

錯誤: PHP Warning: fopen(../user1/dataProduct.txt): failed to open stream: No space left on device in /home/goashopping/public_html/sell/userprod.php on line 192 PHP Warning: fwrite() expects parameter 1 to be resource, boolean given in /home/goashopping/public_html/sell/userprod.php on line 195

請幫我解決這個問題。

+0

我猜你的網站有配額集。 – Daan 2014-09-23 14:31:58

+0

沒有配額。創建時,我在cPanel中創建帳戶時選擇無限制WHM – WhiteHorse 2014-09-23 15:12:44

回答

9

檢查空閒inode與df -i

[email protected]:~$ df -i 
Filesystem   Inodes IUsed IFree IUse% Mounted on 
/dev/sda1    532480 46391 486089 9%/

文件系統有很多的小在耗盡空間之前,文件通常會以inodes方式耗盡。如果這是你的情況,你需要重建文件系統並使用mkfs -i來增加它上面的可用inode。

+0

它顯示我在 /dev/md2 = IUse%:30% 和 /dev/md1 = IUse%:19%/ tmp – WhiteHorse 2014-09-23 15:13:52

+0

這就是它..我刪除了所有存在於目錄中的小1kb文件。謝謝 – WhiteHorse 2014-09-28 15:18:21

+0

這是我的問題!我升級了硬盤,我解決了 – jruzafa 2015-11-06 15:29:01

1

或許盤沒有足夠的空閒inode,檢查:

df -i 

而且也看過這個No space left on device

+0

它顯示了我/ dev/md2 = IUse%:30%和/ dev/md1 = IUse%:19%/ tmp,並且此問題正在某個時間發生。不是連續的錯誤。 – WhiteHorse 2014-09-23 15:57:44

0

我同意,這很可能是一個inode的問題,但我也遇到過這個問題間歇性。它發生在只有一個目錄。

file_put_contents(/archive/ETG/content/original/173530/event/173530_unplanned_outage_rd_20150107_fd_20150107_152715_6.pdf):未能打開流:設備上沒有剩餘

$php --version 
PHP 5.3.28 (cli) (built: Jun 27 2014 15:36:16) 
$uname -ior 
2.6.18-238.19.1.el5 x86_64 GNU/Linux 

$df -ih /archive 
Filesystem   Inodes IUsed IFree IUse% Mounted on 
/dev/mapper/vg03--archive-archive 
        669M  57M 613M 9% /archive 
$df -h /archive 
Filesystem   Size Used Avail Use% Mounted on 
/dev/mapper/vg03--archive-archive 
        5.2T 3.9T 1.1T 79% /archive 

$mount |grep archive 
/dev/mapper/vg03--archive-archive on /archive type ext3 (rw) 

$find /archive/ETG/content/original/173530/event -type d -prune -ls 
21610738 779840 drwxrwxrwx 3 gasconcoll gasconcoll 797769728 Jan 7 10:28 /archive /ETG/content/original/173530/event 

$ls -altr /archive/ETG/content/original/173530/event/ |wc -l 
8000842 

$du -sh /archive/ETG/content/original/173530/event 
49G 

我通過以下操作解決問題的空間:

$mkdir /archive/ETG/content/original/173530/event_new 
$chmod ugo+rwX /archive/ETG/content/original/173530/event_new 
$mv /archive/ETG/content/original/173530/event /archive/ETG/content/original/173530/event_old 
$mv /archive/ETG/content/original/173530/event_new /archive/ETG/content/original/173530/event 
$rsync -av /archive/ETG/content/original/173530/event_old/ /archive/ETG/content/original/173530/event 

我不再遇到這個錯誤。我沒有足夠的時間進一步挖掘,但認爲你可能想知道對我有用。

相關問題