我正在尝试使用PHP的ImageMagick。我在虚拟CentOS服务器上安装了ImageMagick和PHP扩展。从bash执行convert
命令按预期工作。
如果我用内容
<?php exec('convert /home/vagrant/test/image.jpg -resize 200x200 /home/vagrant/test/image_converted.jpg'); ?>
并使用命令行php convert.php
在PHP中调用它也可以。
但是,如果我启动我的Apache服务器并尝试通过浏览器访问该页面,则会返回错误:
convert: unable to open image `/home/vagrant/test/image.jpg': Permission denied @ blob.c/OpenBlob/2480.
convert: missing an image filename `/home/vagrant/test/image_converted.jpg' @ convert.c/ConvertImageCommand/2800.
所以,我认为这可能与权限有关。调用ps aux | egrep '(apache|httpd)'
显示了名为apache的用户的进程,因此我假设它是服务器。所以我尝试将所有权更改为此用户
sudo chown -R apache /home/vagrant/test/
再次,调用网站我收到错误消息。然后我尝试为所有用户提供完全访问权限
sudo chmod -R 777 /home/vagrant/test/
- &GT; drwxrwxrwx. 2 apache vagrant 4096 Dec 21 16:56 test
同样,发生了同样的错误。我做错了什么,拜托?
答案 0 :(得分:0)
您只能更改子目录的权限。如果apache没有足够的home或home / vargrant权限,您将无法访问该文件。
您可以使用sudo检查用户是否具有足够的权限:
sudo -u apache cp /home/vagrant/test/image.jpg /home/vagrant/test/image_converted.jpg