【问题标题】:Apache uploads (gives for download) php instead of executing itApache 上传(提供下载)php 而不是执行它
【发布时间】:2013-01-15 16:10:14
【问题描述】:

我在 Webmin 上使用 Virtualmin 在 VPS 上配置我的网站。

一切正常,但现在我尝试创建一个新域,但是当我将文件放入其public_html 时,它会下载 php 文件而不是执行它。如何解决这个问题

这是我的 apache 配置(找不到任何奇怪的东西):

/etc/apache2/sites-available/testbyc.--.nu.conf

SuexecUserGroup "#1009" "#1011"
ServerName testbyc.--.nu
ServerAlias www.testbyc.--.nu
ServerAlias webmail.--.--.nu
ServerAlias admin.testbyc.--.nu
DocumentRoot /home/byc/domains/testbyc.--.nu/public_html
ErrorLog /var/log/virtualmin/testbyc.--.nu_error_log
CustomLog /var/log/virtualmin/testbyc.--.nu_access_log combined
ScriptAlias /cgi-bin/ /home/byc/domains/testbyc.--.nu/cgi-bin/
ScriptAlias /awstats/ /home/byc/domains/testbyc.--.nu/cgi-bin/
DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory /home/byc/domains/testbyc.--.nu/public_html>
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
AddHandler fcgid-script .php
AddHandler fcgid-script .php5
FCGIWrapper /home/byc/domains/testbyc.--.nu/fcgi-bin/php5.fcgi .php
FCGIWrapper /home/byc/domains/testbyc.--.nu/fcgi-bin/php5.fcgi .php5
</Directory>
<Directory /home/byc/domains/testbyc.--.nu/cgi-bin>
allow from all
AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
</Directory>
RewriteEngine on
RewriteCond %{HTTP_HOST} =webmail.testbyc.--.nu
RewriteRule ^(.*) https://testbyc.--.nu:20000/ [R]
RewriteCond %{HTTP_HOST} =admin.testbyc.--.nu
RewriteRule ^(.*) https://testbyc.--.nu:10000/ [R]
php_admin_value engine Off
IPCCommTimeout 31
FcgidMaxRequestLen 1073741824
<Files awstats.pl>
AuthName "testbyc.--.nu statistics"
AuthType Basic
AuthUserFile /home/byc/domains/testbyc.--.nu/.awstats-htpasswd
require valid-user
</Files>
RedirectMatch /cgi-bin/mailman/([^/\.]*)(.cgi)?(.*) https://testbyc.--.nu:10000/virtualmin-mailman/unauthenticated/$1.cgi$3
RedirectMatch /mailman/([^/\.]*)(.cgi)?(.*) https://testbyc.--.nu:10000/virtualmin-mailman/unauthenticated/$1.cgi$3
Alias /pipermail /var/lib/mailman/archives/public

【问题讨论】:

    标签: php apache fastcgi webmin


    【解决方案1】:

    尝试注释掉该行

    php_admin_value engine Off

    这与我仍在研究的一个更大的问题有关,但最近对 Virtualmin 的更新将该行添加到了一些与 FCGI 相关的配置文件中,从而破坏了一些用户的一些东西。

    【讨论】:

    • 它有效,谢谢,但它真的很奇怪。你知道它为什么被填满了吗?
    • 不确定。我认为这在技术上是一种与保护一个域中的安全漏洞不影响其他域相关的安全修复,但如果您自己管理所有域,它可能(大部分)无关紧要。我还没有弄清楚为什么它会破坏某些东西或如何使它们与“安全”设置一起工作。
    • 以下是我一直在阅读的一些讨论:virtualmin.com/node/24330virtualmin.com/node/23341
    • 将此问题发布为 Virtualmin 错误。 php升级后我一直碰到它。 virtualmin.com/node/40560
    【解决方案2】:

    正如接受的答案所说,注释掉

    php_admin_value engine Off
    

    我们在将站点从使用 PHP 5.X 的 Virtualmin Install 移动到使用 PHP 7.1 的新服务器时遇到了这个问题。

    发生的事情是 PHP7.1 的默认配置如下

    <IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
    </IfModule>
    

    这通过将该标志添加到所有本地 .conf 文件中来阻止 virtualmin 在用户目录中运行 PHP 脚本。

    php7.conf 文件/etc/apache2/mods-available/php7.conf 也有以下内容

    SetHandler application/x-httpd-php
    

    这导致所有子站点都使用进程 www-data 而不是 virtualmin 用户运行。导致写访问错误。所以也把它注释掉。

    【讨论】:

      猜你喜欢
      • 2017-07-28
      • 2014-06-07
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 2021-05-07
      • 2011-12-26
      • 1970-01-01
      相关资源
      最近更新 更多