Назад | Перейти на главную страницу

Невозможно заставить RewriteMap работать

Я пытаюсь использовать 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 вполне может работать, но не может создать файл.