2015-11-05 84 views
0

我正在構建一個博客,並且需要將圖像存儲在我的服務器上。這些圖像是用完整的URL給出的,當我發佈文章時,它會使用copy()方法保存圖像。PHP copy()方法在服務器上不起作用(NGINX)

在本地所有的作品都很好,但在我的服務器上沒有任何變化。但是,allow_url_fopen在php.ini文件中設置爲On

奇怪的是,服務器更改了希望保存的文件的名稱,但它不存儲它。例如,我想保存這張圖片:http://s.tfou.fr/mmdia/i/03/8/bob-l-eponge-10479038eajyx.png。我把這個URL放在我的表單中,我提交它,然後服務器保存這個路徑:content/images/563b62825ab53.png按預期方式...但路徑返回404,圖像無處。

這裏是我的PHP代碼(蓋子在我把圖像的URL字段的名稱):

$extension = explode('.', $_POST['cover']); 
$uniq = uniqid(); 
$path = 'content/images/'.$uniq.'.'.$extension[count($extension)-1]; 
copy($_POST['cover'], $path); 
$cover = $path; 

這裏是我與現有的圖像從我的回購拉到服務器上(從我的當地所有運作良好):

total 1328 
-rw-r--r-- 1 root www-data 105331 Nov 5 14:59 563b578484ea1.jpg 
-rw-r--r-- 1 root www-data 311132 Nov 5 14:59 563b57cf1db89.png 
-rw-r--r-- 1 root www-data 132129 Nov 5 14:59 563b5a33d6c3b.jpg 
-rw-r--r-- 1 root www-data 180274 Nov 5 14:59 563b5bbfe649b.jpeg 
-rw-r--r-- 1 root www-data 283665 Nov 5 14:59 563b5c068e0bf.jpg 
-rw-r--r-- 1 root www-data 311132 Nov 5 14:57 563b5fb480e73.png 

但是,如果我刪除所有,我儘量讓服務器複製了自己的照片,似乎沒有什麼...這裏是包含圖片的文件夾的權限:

drwxr-sr-x 3 root www-data 4096 Nov 5 14:57 content 

其中包含:

drwxr-sr-x 2 root www-data 4096 Nov 5 14:59 images 

其中包含什麼?

我不知道這是否是一個服務器問題還是缺乏在我的php.ini或別的東西。

+2

你需要給nginx運行的用戶/組提供寫入權限(它不應該是root)。 'chmod g + w images'應該做你想做的事情,假設nginx在你的系統上以www-data的形式運行 – Doon

+0

我真的沒有想到這個!非常感謝它,現在運作良好。智能和高效。 –

回答

1

你需要給nginx運行的用戶/組提供寫入權限(它不應該是root)。 chmod g + w圖像應該做你想做的事情,假設nginx作爲你的系統上的組www-data運行。

相關問題