2015-11-05 40 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运行。

相关问题