我尝试RewriteMap
在我的虚拟主机中使用,但没有任何效果。
这是我的虚拟主机文件的内容,其中有一个以 开头的条目(行)RewriteMap
。从我读到的内容来看,该文件/etc/fixit.php
应该被执行。但我测试了放一行简单的内容file_put_contents('/etc/test.txt','abcd', FILE_APPEND);
,并没有创建 test.txt 文件。
<VirtualHost *:80>
SuexecUserGroup "#1004" "#1004"
ServerName test2.domain.com
ServerAlias www.test2.domain.com
DocumentRoot /home/test2/public_html
ErrorLog /var/log/virtualmin/test2.domain.com_error_log
ErrorDocument 403 "This is the default page for new website."
CustomLog /var/log/virtualmin/test2.domain.com_access_log combined
ScriptAlias /cgi-bin/ /home/test2/cgi-bin/
ScriptAlias /awstats/ /home/test2/cgi-bin/
DirectoryIndex index.html index.htm index.php index.php4 index.php5
RewriteMap fixurl prg:/etc/fixit.php
<Directory /home/test2/public_html>
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
Require all granted
AddType application/x-httpd-php .php
AddHandler fcgid-script .php
AddHandler fcgid-script .php7.0
FCGIWrapper /home/test2/fcgi-bin/php7.0.fcgi .php
FCGIWrapper /home/test2/fcgi-bin/php7.0.fcgi .php7.0
</Directory>
<Directory /home/test2/cgi-bin>
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
Require all granted
</Directory>
RemoveHandler .php
RemoveHandler .php7.0
php_admin_value engine Off
FcgidMaxRequestLen 1073741824
<Files awstats.pl>
AuthName "test2.domain.com statistics"
AuthType Basic
AuthUserFile /home/test2/.awstats-htpasswd
require valid-user
</Files>
php_value memory_limit 32M
IPCCommTimeout 41
</VirtualHost>
/etc/fixit.php
这是我的测试文件的内容
<?php
file_put_contents('/etc/test.txt','abcd', FILE_APPEND);
?>
我知道这不是一个完整的 RewriteMap 示例,因为我还没有向文件添加重写规则。但至少文件fixit.php
应该被执行,对吗?
谢谢你的帮助。
答案1
尝试让您的 fixit.php 写入 /tmp/test.txt;除非您的 UID 1004 具有对 /etc 的写权限(可能有,但可能没有),否则 fixit.php 可能正在运行,但无法创建该文件。