可以在这边讨论么?
Topic on User talk:星耀晨曦
你是什么系统的。
centos7
ls -l 上传目录,看看权限
上传目录是什么意思啊?
-rw-r--r-- 1 501 games 4697 Dec 9 07:19 api.php
-rw-r--r-- 1 501 games 131511 Dec 9 07:19 autoload.php
drwxr-xr-x 2 501 games 4096 Dec 9 07:19 cache
-rw-r--r-- 1 501 games 116 Dec 9 07:19 CODE_OF_CONDUCT.md
-rw-r--r-- 1 501 games 3595 Dec 9 07:19 composer.json
-rw-r--r-- 1 501 games 102 Dec 9 07:19 composer.local.json-sample
-rw-r--r-- 1 501 games 19419 Dec 9 07:19 COPYING
-rw-r--r-- 1 501 games 10924 Dec 9 07:19 CREDITS
drwxr-xr-x 8 501 games 4096 Dec 9 07:19 docs
drwxr-xr-x 31 501 games 4096 Jan 12 13:53 extensions
-rw-r--r-- 1 501 games 95 Dec 9 07:19 FAQ
-rw-r--r-- 1 501 games 3735 Dec 9 07:19 Gruntfile.js
-rw-r--r-- 1 501 games 867797 Dec 9 07:19 HISTORY
drwxr-xr-x 2 501 games 4096 Jan 18 14:18 images
-rw-r--r-- 1 501 games 7705 Dec 9 07:19 img_auth.php
drwxr-xr-x 66 501 games 4096 Dec 9 07:19 includes
-rw-r--r-- 1 501 games 1623 Dec 9 07:19 index.php
-rw-r--r-- 1 root root 20 Jan 5 14:11 info.php
-rw-r--r-- 1 501 games 3663 Dec 9 07:19 INSTALL
-rw-r--r-- 1 501 games 2025 Dec 9 07:19 jsduck.json
drwxr-xr-x 6 501 games 4096 Dec 9 07:19 languages
-rw-r--r-- 1 501 games 1965 Dec 9 07:19 load.php
-rw-r--r-- 1 root root 6587 Jan 19 00:48 LocalSettings.php
drwxr-xr-x 17 501 games 12288 Dec 9 07:19 maintenance
drwxr-xr-x 4 501 games 4096 Dec 9 07:19 mw-config
-rw-r--r-- 1 501 games 4059 Dec 9 07:19 opensearch_desc.php
-rw-r--r-- 1 501 games 3274 Dec 9 07:19 phpcs.xml
-rw-r--r-- 1 501 games 12013 Dec 9 07:19 profileinfo.php
-rw-r--r-- 1 501 games 1529 Dec 9 07:19 README
-rw-r--r-- 1 501 games 16790 Dec 9 07:19 RELEASE-NOTES-1.30
drwxr-xr-x 5 501 games 4096 Dec 9 07:19 resources
drwxr-xr-x 2 501 games 4096 Dec 9 07:19 serialized
drwxr-xr-x 6 501 games 4096 Dec 9 07:19 skins
-rw-r--r-- 1 501 games 1703 Dec 9 07:19 StartProfiler.sample
drwxr-xr-x 9 501 games 4096 Dec 9 07:19 tests
-rw-r--r-- 1 501 games 1087 Dec 9 07:19 thumb_handler.php
-rw-r--r-- 1 501 games 21335 Dec 9 07:19 thumb.php
-rw-r--r-- 1 501 games 12244 Dec 9 07:19 UPGRADE
drwxr-xr-x 22 501 games 4096 Dec 9 07:20 vendor
-rw-r--r-- 1 root root 124569 Jan 6 01:46 期货.jpg
-rw-r--r-- 1 root root 48546 Jan 15 09:40 期货百科.png
暂且不论上传目录,你整个文件夹的权限都很糟糕。web目录应该只对web服务器可读,上传目录和缓存目录(如果启用了文件缓存)应该对web服务器可写。
找出web服务器的运行用户,然后返回上级目录执行
chown -R <user>:<user> <mediawikiPath>
是不是LocalSettings.php所在的文件夹就应该是web服务器的运行目录啊?
LocalSettings.php同级目录和所有的次级目录都是web目录
这条命令执行以后出错:
-bash: syntax error near unexpected token `<'
。。。把<user>替换成运行web服务器的用户,把<mediawikiPath>替换成web目录
-rw-r--r-- 1 root root 4697 Dec 9 07:19 api.php
-rw-r--r-- 1 root root 131511 Dec 9 07:19 autoload.php
drwxr-xr-x 2 root root 4096 Dec 9 07:19 cache
-rw-r--r-- 1 root root 116 Dec 9 07:19 CODE_OF_CONDUCT.md
-rw-r--r-- 1 root root 3595 Dec 9 07:19 composer.json
-rw-r--r-- 1 root root 102 Dec 9 07:19 composer.local.json-sample
-rw-r--r-- 1 root root 19419 Dec 9 07:19 COPYING
-rw-r--r-- 1 root root 10924 Dec 9 07:19 CREDITS
drwxr-xr-x 8 root root 4096 Dec 9 07:19 docs
drwxr-xr-x 31 root root 4096 Jan 12 13:53 extensions
-rw-r--r-- 1 root root 95 Dec 9 07:19 FAQ
-rw-r--r-- 1 root root 3735 Dec 9 07:19 Gruntfile.js
-rw-r--r-- 1 root root 867797 Dec 9 07:19 HISTORY
drwxr-xr-x 2 root root 4096 Jan 18 14:18 images
-rw-r--r-- 1 root root 7705 Dec 9 07:19 img_auth.php
drwxr-xr-x 66 root root 4096 Dec 9 07:19 includes
-rw-r--r-- 1 root root 1623 Dec 9 07:19 index.php
-rw-r--r-- 1 root root 20 Jan 5 14:11 info.php
-rw-r--r-- 1 root root 3663 Dec 9 07:19 INSTALL
-rw-r--r-- 1 root root 2025 Dec 9 07:19 jsduck.json
drwxr-xr-x 6 root root 4096 Dec 9 07:19 languages
-rw-r--r-- 1 root root 1965 Dec 9 07:19 load.php
-rw-r--r-- 1 root root 6617 Jan 22 00:19 LocalSettings.php
drwxr-xr-x 17 root root 12288 Dec 9 07:19 maintenance
drwxr-xr-x 4 root root 4096 Dec 9 07:19 mw-config
-rw-r--r-- 1 root root 4059 Dec 9 07:19 opensearch_desc.php
-rw-r--r-- 1 root root 3274 Dec 9 07:19 phpcs.xml
-rw-r--r-- 1 root root 12013 Dec 9 07:19 profileinfo.php
-rw-r--r-- 1 root root 1529 Dec 9 07:19 README
-rw-r--r-- 1 root root 16790 Dec 9 07:19 RELEASE-NOTES-1.30
drwxr-xr-x 5 root root 4096 Dec 9 07:19 resources
drwxr-xr-x 2 root root 4096 Dec 9 07:19 serialized
drwxr-xr-x 6 root root 4096 Dec 9 07:19 skins
-rw-r--r-- 1 root root 1703 Dec 9 07:19 StartProfiler.sample
drwxr-xr-x 9 root root 4096 Dec 9 07:19 tests
-rw-r--r-- 1 root root 1087 Dec 9 07:19 thumb_handler.php
-rw-r--r-- 1 root root 21335 Dec 9 07:19 thumb.php
-rw-r--r-- 1 root root 12244 Dec 9 07:19 UPGRADE
drwxr-xr-x 22 root root 4096 Dec 9 07:20 vendor
-rw-r--r-- 1 root root 124569 Jan 6 01:46 期货.jpg
-rw-r--r-- 1 root root 48546 Jan 15 09:40 期货百科.png
这个命令执行以后,我再执行ll的命令,得到以上的结果。。
你用root用户来运行web服务器的?我觉得不是。你用apache?
好像是吧。但是我的确是用ssh登陆root的啊。。
apache,是啊。。
不好意思,我其实搞不清楚这几个概念,我就是跟着指引走然后安装的mediawiki,我其实都不懂centos系统。。
我没有修改过权限啊。安装完mediawiki的时候,默认的权限就是这样啊。
事实上,必须修改文件权限来保证网站的安全性和可用性。
为什么调整一个上传文件的权限这么难啊。。。?
我其实就想马上就能够上传文件,然后供用户下载。但是看到mediawiki上面的一大堆手册的内容……我也无法判断出哪些是直接有效的方式。。。
web服务器指的是类似apache、nginx、iis这样的软件,不是服务器本身。打开apache的配置文件,查找User字段,后面跟着的就是运行用户。
哦哦?这个我知道。。
我想知道User是不是我在网站上注册的用户名啊?
我用的的确是apache。。配置文件。。。我不知道在哪里看。。。
不是,二者不是一个概念。一个是服务器端上面的用户,一个是网站的用户。
那我在服务器上。。。除了root以外,我不知道还有什么其他用户。。。
配置文件一般在/etc/httpd/httpd.conf
我要怎样设定上传目录?我要怎样保证上传目录可以被用户所读写呢?
事实上,最简单的方法就是chmod -R 777 <webPath>。让所有用户可读写你的web目录,但相应也有安全问题。
还是会出现
『无法创建目录“mwstore://local-backend/local-public/b/ba”』这样的错误
你修改了$wgUploadDirectory的值吗
// Create a local backend with a null lock manager
$wgFileBackends[] = array(
'name' => 'local-backend',
'class' => 'FSFileBackend',
'lockManager' => 'nullLockManager',
'containerPaths' => array(
'local-public' => "{$wgUploadDirectory}",
'local-thumb' => "{$wgUploadDirectory}/thumb",
'local-transcoded' => "{$wgUploadDirectory}/transcoded",
'local-deleted' => $wgDeletedDirectory,
'local-temp' => "{$wgUploadDirectory}/temp",
),
'fileMode' => 0644,
);
// Define a standard file repository that uses the local backend defined before
$wgLocalFileRepo = array (
'class' => 'LocalRepo',
'name' => 'local',
'directory' => $wgUploadDirectory,
'scriptDirUrl' => $wgScriptPath,
'scriptExtension' => $wgScriptExtension,
'url' => $wgUploadBaseUrl ? $wgUploadBaseUrl . $wgUploadPath : $wgUploadPath,
'hashLevels' => $wgHashedUploadDirectory ? 2 : 0,
'thumbScriptUrl' => $wgThumbnailScriptPath,
'transformVia404' => !$wgGenerateThumbnailOnParse,
'deletedDir' => $wgDeletedDirectory,
'deletedHashLevels' => $wgHashedUploadDirectory ? 3 : 0,
'backend' => 'local-backend',
这个算不算?
再发一遍上传目录(默认images)的权限。
[root@VM_0_7_centos images]# ll
total 4
-rwxrwxrwx 1 root root 0 Jan 18 14:18 readme
-rwxrwxrwx 1 root root 84 Dec 9 07:19 README
[root@VM_0_7_centos images]#
不知道是什么情况,你试着把上面你发的自定义配置注释掉。
注释了以后,然后呢?
还是不能上传吗
太奇怪了,居然可以了。可是我并没有设定上传路径啊。。它怎么知道我上传到哪个文件夹下?
默认上传到网站根目录下面的images文件夹下面。事实上,只要启用$wgEnableUploads = true;
上传功能并确保上传目录可被web服务器写就可以上传了。
文件不是直接堆在images文件夹下啊,而是在下面的子文件夹里面。好难找啊。。。
这是因为方便管理文件。一堆文件在同一级目录也有点问题。
很奇怪,我都不知道为什么我之前却失败了。
这个怎么说?
刚刚设定的时候好像有个用户名叫sammy的,但是我从来没有登陆过啊。。