【问题标题】:Error: Destination folder is not writable错误:目标文件夹不可写
【发布时间】:2018-01-26 01:23:04
【问题描述】:

尝试在 Symphony 中上传图片时出错

目标文件夹不可写。请检查权限 /workspace/images/x

我将“x”目录的所有权更改为 apache:apache,甚至给它 777 仍然得到错误。

网站是在 VM 中创建和测试的,我们能够在迁移到实时版本之前在同一部分上传其他图像。我已尝试上传与之前相同的 120kb 图片。

编辑: 如果我尝试使用 Blueprints>Pages 创建页面,也会发生类似情况 我明白了

页面模板无法写入磁盘。请检查权限 在 /workspace/pages 上

另外,登录时我会收到一条消息

Symphony 配置文件 /manifest/config.php 不可写

所有这些文件都归 apache 所有,有 664 个和 775 个目录

Symphony 是通过从本地 symphony 安装的 phpmyadmin 保存 sql 并将其导入实时服务器的数据库来安装的;然后运行 ​​/install

【问题讨论】:

  • 你确定运行用户是apache?创建一个像 /manifest/permissions.php 这样的单个 php 脚本并放入 echo "usr: ".exec("whoami").<br>;echo "writable: ".(is_writable(__DIR__) ? 'true' : 'false').<br>; 通过浏览器运行它并检查脚本运行的用户身份以及它是否可以在该目录上写入。当然exec php 命令必须启用(不是在 php.ini 的禁用功能列表中)。
  • @ChristosLytras usr: apache; writable: false。 htaccess 是默认的 Symphony 之一;在工作的虚拟机中也是如此。还有什么我可以尝试的吗?
  • Daniel 很可能在您的应用程序内的父目录上没有执行权限。检查路径中的所有目录并确保所有目录都具有0755 权限。例如,如果您的 Web 应用程序位于 /home/user/www/domain.com/application/ 中,那么所有目录(homeuserwwwdomain.comapplication)必须具有执行权限,您可以通过设置到所有父目录0755 权限。

标签: php permissions symphony-cms


【解决方案1】:

检查您的生产系统中是否使用 SELinux 强制执行

状态-v

如果您启用了它,您必须将您的可写文件夹添加到 httpd_sys_rw_content_t 上下文。

检查http://www.serverlab.ca/tutorials/linux/web-servers-linux/configuring-selinux-policies-for-apache-web-servers/中的允许读写访问部分

【讨论】:

    【解决方案2】:
    1. 检查运行 PHP 的用户 (apache?) 是否也有权更改到“x”目录上方的每个目录:imagesworkspace 等。
    2. 检查“x”目录中是否没有阻止相关用户写入的 ACL。
    3. 查看 SELinux 是否已启用。 (在这一点上我没有什么可提供的,但显然它可以防止写入从其他地方移入的目录。

    【讨论】:

    • 我检查了它是正确的用户,以及子文件夹的所有权和权限,并且没有 ACL。我还收到交响乐管理区域消息“交响乐配置文件 /manifest/config.php 不可写”,但它也归 apache 所有,有 664
    猜你喜欢
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 2011-03-17
    • 2013-10-26
    • 2013-03-10
    • 2011-06-02
    • 2016-09-13
    • 1970-01-01
    相关资源
    最近更新 更多