真是令我沮丧不已。
当我尝试上传一个小型 jpeg 文件时出现以下错误:
Warning: wfMkdirParents: failed to mkdir "/usr/local/mediawiki-1.20.5/images/5/5d" mode 0777 in /usr/local/mediawiki-1.20.5/includes/GlobalFunctions.php on line 2546
CentOS 6.4 MediaWiki 1.20.5 PHP 5.5.0RC1(apache2handler)MySQL 5.5.31
php.ini
safe_mode = off;
file_uploads = On
max_file_uploads = 20
本地设置.php
$wgEnableUploads = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";
图片文件夹
chown apache:apache images/
chmod 755 -R images/ (threw error)
chmod 777 -R images/ (threw error)
我已经重启了 Apache,但仍然无法上传。我很困惑。有什么想法吗?
答案1
这是由 SELinux 引起的,您可以修改文件系统上的标签以允许 Apache 在 SELinux 强制执行时写入位置,而不是将 SELinux 设置为仅记录而不强制执行策略(宽容模式):
假设/usr/local/mediawiki-1.20.5/images
您想要允许写访问的位置是:
semanage fcontext -a -t httpd_sys_content_t "/usr/local/mediawiki-1.20.5/images(/.*)?"
将更改目录及其下的任何内容的 SELinux 上下文,并且
restorecon -Rv /usr/local/mediawiki-1.20.5/images
将根据 SELinux 上下文重新标记文件和目录。