Я пытаюсь использовать 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
файл должен быть выполнен, это правильно?
Спасибо за любую помощь.
Попробуйте вместо этого записать файл fixit.php в /tmp/test.txt; если ваш UID 1004 не имеет права записи в / etc (может, но, вероятно, не должно), fixit.php вполне может работать, но не может создать файл.