Apache上传(下载)php而不是执行它

时间:2013-01-15 16:10:14

标签: php apache fastcgi webmin

我在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

2 个答案:

答案 0 :(得分:9)

尝试注释掉

php_admin_value engine Off

这与我正在研究的一个更大的问题有关,但最近对Virtualmin的更新将这一行添加到一些与FCGI相关的配置文件中,为某些用户打破了一些问题。

答案 1 :(得分:2)

由于接受的答案已经说明了

php_admin_value engine Off

我们遇到此问题,将一个站点从一个带有PHP 5.X的Virtualmin安装迁移到一个带有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用户运行。导致写访问错误。所以也要评论。