我正在尝试找出阿帕奇间歇性的原因内部服务器错误在 MediaWiki 编辑和上传期间。一些消息来源告诉我要检查.htaccess
错误。
我可以.htaccess
通过以下方式进行审核:
sudo find /var -name '.htaccess' -exec ls -al {} \;
但是,我不知道 Apache 命令是什么来测试该.htaccess
文件。也就是说,我不知道要在-exec
的部分插入什么find
。
我看过apachectl
并尝试过apachectl test
,但它看起来像是一个死胡同:
$ apachectl test
Usage: /usr/sbin/httpd [-D name] [-d directory] [-f file]
[-C "directive"] [-c "directive"]
[-k start|restart|graceful|graceful-stop|stop]
[-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S] [-X]
Options:
-D name : define a name for use in <IfDefine name> directives
-d directory : specify an alternate initial ServerRoot
-f file : specify an alternate ServerConfigFile
-C "directive" : process directive before reading config files
-c "directive" : process directive after reading config files
-e level : show startup errors of level (see LogLevel)
-E file : log startup errors to file
-v : show version number
-V : show compile settings
-h : list available command line options (this page)
-l : list compiled in modules
-L : list available configuration directives
-t -D DUMP_VHOSTS : show parsed vhost settings
-t -D DUMP_RUN_CFG : show parsed run settings
-S : a synonym for -t -D DUMP_VHOSTS -D DUMP_RUN_CFG
-t -D DUMP_MODULES : show all loaded modules
-M : a synonym for -t -D DUMP_MODULES
-t : run syntax check for config files
-T : start without DocumentRoot(s) check
-X : debug mode (only one worker, do not detach)
我可以通过 SSH 访问该盒子,这就是我执行维护的方式。没有可用的浏览器,但如果需要的话我可能可以使用 lynx。
如何.htaccess
从命令行测试下面显示的各种内容?
$ sudo find /var -name '.htaccess' -exec ls -l {} \;
-rw-r----- 1 root apache 180 Aug 9 2015 /var/www/html/wiki/images/.htaccess
-rw-r----- 1 root apache 14 Aug 9 2015 /var/www/html/wiki/images/deleted/.htaccess
-rw-r----- 1 root apache 14 May 25 2015 /var/www/html/wiki/languages/.htaccess
-rw-r----- 1 root apache 14 May 25 2015 /var/www/html/wiki/serialized/.htaccess
-rw-r----- 1 root apache 14 May 25 2015 /var/www/html/wiki/cache/.htaccess
-rw-r----- 1 root apache 14 May 25 2015 /var/www/html/wiki/includes/.htaccess
-rw-r----- 1 root apache 14 May 25 2015 /var/www/html/wiki/maintenance/archives/.htaccess
-rw-r----- 1 root apache 14 May 25 2015 /var/www/html/wiki/maintenance/.htaccess
-rw-r----- 1 root apache 180 Aug 9 2015 /var/www/html/.htaccess
$ apachectl -v
Server version: Apache/2.4.6 (CentOS)
Server built: May 12 2016 10:27:23
答案1
如何从命令行测试 .htaccess?
与不在命令行上使用 HTTP 请求的方式完全相同。
有一些常用工具对此很有用,例如(但不限于)curl
和wget
。这两个工具都包含获取标头、HTTP 返回代码和完整输出的选项。
如果您需要将其集成到自动搜索中,则必须进行简单的文本替换或映射,例如:
basename `dirname /var/www/www.mysite.com/public`
...输出:
www.mysite.com
根据您的评论显示......的实际路径
echo www.yoursite.com/`dirname /var/www/html/wiki/serialized/.htaccess|cut -d/ -f5-`
...会给你:
www.yoursite.com/wiki/serialized
所以最终的命令可能是:
wget $(echo www.yoursite.com/`dirname /var/www/html/wiki/serialized/.htaccess|cut -d/ -f5-`)