Magento 1.9.1 - 图片未上传,目标文件夹不可写或不存在
Magento 1.9.1 - Images not uploading, Destination folder is not writable or does not exists
我正在尝试解决图像无法通过 Magento 的管理界面上传到站点的问题。我收到的错误是“/var/www/vhosts/site/httpdocs/media/slide/slides/Destination 文件夹不可写或不存在”。我做了以下事情:
- 将递归 777 权限设置为幻灯片、幻灯片和幻灯片、幻灯片(按此顺序,一次一张)
- 将所有权从普通用户更改为 apache,如果 apache 用户无法工作,则返回普通用户
- 将媒体文件夹权限设置为 777
- 将媒体文件夹所有权设置为 apache,如果不起作用则返回给普通用户
- 删除幻灯片文件夹并让上传者创建文件夹,但出现错误“无法创建目录'/var/www/vhosts/site/httpdocs/media/slide/slides'
我不确定还能尝试什么。
系统信息:
CentOS Linux release 7.1.1503 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.1.1503 (Core)
CentOS Linux release 7.1.1503 (Core)
**PHP Version:** 5.4.16
**HTTPD Version:** 2.4.6
**MariaDB Version:** 15.1 Distrib 5.5.41-MariaDB, for Linux (x86_64) using readline 5.1
**SELinux Status:**
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
编辑
我 运行 命令 getfacl media
得到以下输出:
# file: media
# owner: tmweb
# group: tmweb
user::rwx
user:tmweb:rwx
group::r-x
mask::rwx
other::rwx
文件夹需要设置群组吗?如果是这样,我使用什么命令来 g运行t 组写访问权限?
我试过 chgrp -R tmweb media
和 chown -R tmweb:tmweb media
但没有改变。
编辑 2
我有 运行 getfacl slide
并得到以下输出:
[root@host-tm-web media]# getfacl slide/
# file: slide/
# owner: tmweb
# group: tmweb
user::rwx
user:tmweb:rwx
group::rwx
group:tmweb:rwx
mask::rwx
other::rwx
请清理缓存并重新启动 apache 服务器,同时确保 mod_rewrite 已启用
请确保已递归设置 777 权限,文件夹组和所有者应具有写入权限。
您可以使用以下命令更改所有者和组。
sudo chown [user]:[group] folder_name
我已经设法解决了这个问题。这是因为服务器是运行 SELinux,所以我不得不申请额外的权限。对于那些面临这个问题的人,这就是我所做的:
找出您网站的用户
<?php
echo `whoami`;
?>
运行 在终端根目录下执行以下命令:
chown -R apache:apache media
find media -type f -exec chmod 0644 {} \;
find media -type d -exec chmod 0755 {} \;
chcon -t httpd_sys_content_t media -R
chcon -t httpd_sys_rw_content_t media -R
感谢提供答案的人,您帮助我找到了问题的解决方案!
我正在尝试解决图像无法通过 Magento 的管理界面上传到站点的问题。我收到的错误是“/var/www/vhosts/site/httpdocs/media/slide/slides/Destination 文件夹不可写或不存在”。我做了以下事情:
- 将递归 777 权限设置为幻灯片、幻灯片和幻灯片、幻灯片(按此顺序,一次一张)
- 将所有权从普通用户更改为 apache,如果 apache 用户无法工作,则返回普通用户
- 将媒体文件夹权限设置为 777
- 将媒体文件夹所有权设置为 apache,如果不起作用则返回给普通用户
- 删除幻灯片文件夹并让上传者创建文件夹,但出现错误“无法创建目录'/var/www/vhosts/site/httpdocs/media/slide/slides'
我不确定还能尝试什么。
系统信息:
CentOS Linux release 7.1.1503 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.1.1503 (Core)
CentOS Linux release 7.1.1503 (Core)
**PHP Version:** 5.4.16
**HTTPD Version:** 2.4.6
**MariaDB Version:** 15.1 Distrib 5.5.41-MariaDB, for Linux (x86_64) using readline 5.1
**SELinux Status:**
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
编辑
我 运行 命令 getfacl media
得到以下输出:
# file: media
# owner: tmweb
# group: tmweb
user::rwx
user:tmweb:rwx
group::r-x
mask::rwx
other::rwx
文件夹需要设置群组吗?如果是这样,我使用什么命令来 g运行t 组写访问权限?
我试过 chgrp -R tmweb media
和 chown -R tmweb:tmweb media
但没有改变。
编辑 2
我有 运行 getfacl slide
并得到以下输出:
[root@host-tm-web media]# getfacl slide/
# file: slide/
# owner: tmweb
# group: tmweb
user::rwx
user:tmweb:rwx
group::rwx
group:tmweb:rwx
mask::rwx
other::rwx
请清理缓存并重新启动 apache 服务器,同时确保 mod_rewrite 已启用
请确保已递归设置 777 权限,文件夹组和所有者应具有写入权限。
您可以使用以下命令更改所有者和组。
sudo chown [user]:[group] folder_name
我已经设法解决了这个问题。这是因为服务器是运行 SELinux,所以我不得不申请额外的权限。对于那些面临这个问题的人,这就是我所做的:
找出您网站的用户
<?php
echo `whoami`;
?>
运行 在终端根目录下执行以下命令:
chown -R apache:apache media
find media -type f -exec chmod 0644 {} \;
find media -type d -exec chmod 0755 {} \;
chcon -t httpd_sys_content_t media -R
chcon -t httpd_sys_rw_content_t media -R
感谢提供答案的人,您帮助我找到了问题的解决方案!