【发布时间】:2013-02-14 04:40:20
【问题描述】:
为了给您一些背景知识,我创建了一个网站,允许用户上传图片,然后重新调整大小并显示。该网站运行良好,但我最近将其移至新服务器并遇到了一些问题。我几乎肯定问题是文件权限的结果。我已将上传文件夹设置为 777,因此我以前上传的所有文件都可以正常工作,但是当上传新文件时会出现问题。上传文件时,使用 SFTP 访问,图像的权限设置为 666,列出的所有者是 apache。我写了几行来试验 chmod 功能,但没有任何运气。
<?php
require_once("/var/www/html/wp-load.php");
echo shell_exec('whoami');
$test = wp_getattachment_url(123);
chmod($test, 0755);
//chmod("/var/www/html/wp-content/uploads/image.jpg", 0755);
?>
输出到屏幕的是apache,所以用户也是文件的所有者,但是修改权限一直没有成功。
【问题讨论】:
-
为什么你需要文件本身的 755 权限。作为所有者(apache 用户),即使您通过 sftp 上传(如您所说上传的文件所有者是 apache),您也已经拥有文件的读/写权限(666)。调整大小/显示不需要更多权限。
-
这实际上只是一个测试,看看我是否可以更改文件权限。我最初在创建文件后直接使用 chmod 命令。也许权限不是问题的原因。关于为什么在我以前的服务器上找到调整大小功能但在新服务器上不起作用的任何其他想法?上传的文件保存为完整图像,但调整大小的图像不会像以前那样创建。
-
如果需要调整库的大小,如 gd 或 imagemagic 未启用/安装在服务器上。
-
非常感谢。我实际上错过了 gd 库。
标签: php linux file-permissions