Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
呼叫'时权限被拒绝;转换为';来自PHP的命令_Php_Apache_Permissions_Imagick - Fatal编程技术网

呼叫'时权限被拒绝;转换为';来自PHP的命令

呼叫'时权限被拒绝;转换为';来自PHP的命令,php,apache,permissions,imagick,Php,Apache,Permissions,Imagick,我正在尝试使用PHP中的ImageMagick。我在虚拟CentOS服务器上安装了ImageMagick和PHP扩展。从bash执行convert命令可以正常工作。 如果我制作一个包含内容的PHP文件 <?php exec('convert /home/vagrant/test/image.jpg -resize 200x200 /home/vagrant/test/image_converted.jpg'); ?> 所以,我想这可能是关于权限的。调用ps aux | egrep'

我正在尝试使用PHP中的ImageMagick。我在虚拟CentOS服务器上安装了ImageMagick和PHP扩展。从bash执行
convert
命令可以正常工作。 如果我制作一个包含内容的PHP文件

<?php exec('convert /home/vagrant/test/image.jpg -resize 200x200 /home/vagrant/test/image_converted.jpg'); ?>
所以,我想这可能是关于权限的。调用
ps aux | egrep'(apache | httpd)
显示了一个名为apache的用户的进程,因此我假设这就是服务器。所以我试着改变这个用户的所有权

sudo chown -R apache /home/vagrant/test/
再次致电该网站,我会收到错误消息。然后我尝试给所有用户完全访问权限

sudo chmod -R 777 /home/vagrant/test/
-->
drwxrwx。2 apache vagrant 4096 Dec 21 16:56测试


同样的错误也发生了。请问我做错了什么?

您只更改子目录的权限。如果apache没有足够的权限访问home或home/vargrant,您将无法访问该文件

您可以使用sudo检查用户是否具有足够的权限:

sudo -u apache cp /home/vagrant/test/image.jpg /home/vagrant/test/image_converted.jpg

伟大的你完全正确。直到现在我才经常使用权限。。。还有一个问题你可能也能回答:我的网站文件夹是
/var/www/html
,并且符号链接到其他文件夹(/vagrant)。设置权限最合理的方法是什么?让apache成为
/var
的所有者?或者将权限设置为某些(哪个?)编号?
sudo -u apache cp /home/vagrant/test/image.jpg /home/vagrant/test/image_converted.jpg