当我将.htaccess文件用于试图让php在html文件中运行的目录时,我的问题就出现了。我尝试了很多AddTypes和AddHandlers的组合。我把它们拿出来,现在我的php文件正由broswer下载而不是运行。我在这里有一些其他问题,我上下研究过,但它们并不是我的问题。
我现在相当迷失,我已经尝试了AddType和AddHandler的每个组合。我已经决定使用mod_rewrite,只是让我的所有文件以.php结尾,但是我无法让它们运行。
这是我用来测试的:
<!DOCTYPE html>
<body>
<?php
echo("php working");
?>
</body>
</html>
我错过了什么吗?幸运的是,我在与root无关的单独目录中进行了所有更改,因此该站点仍然运行,但该文件夹中的所有php文件都无法在broswer中查看。我能做什么?任何帮助表示赞赏。
编辑: 为了说清楚,我原本试图能够将PHP放在我的html文件中,所以我正在搞乱处理程序和addtypes。我的服务器确实有PHP。如果我从.html文件调用php脚本,它会运行。我只是不能得到一个像上面包含的示例的php文件在浏览器中打开ANYMORE,它曾经在浏览器中打开。我担心的是,我通过尝试.htaccess中的所有不同处理程序搞砸了一些东西。我已经清除了我的.htaccess文件,希望这至少可以让我解决问题,但事实并非如此。
第二次编辑: 我去了根目录并制作了一个php文件,它运行得很好所以它肯定是我在特定目录的.htaccess中更改的。无论如何我可以重置该目录吗?
答案 0 :(得分:1)
你在htaccess文件中看到这样的行吗? php_flag引擎关闭
如果是,请删除它。 还有一件事可以帮助您了解发生的事情 下面的htaccess将使Php被执行,而是作为文本文件下载
<VirtualHost *>
ServerName sourcecode.testserver.me
DocumentRoot /var/www/example
AddType text/plain php
</VirtualHost>
还有一件事 我猜这个主题曾经在这里得到解决 - &gt; htaccess downloading file instead of loading
答案 1 :(得分:1)
你确定在apache中正确安装了php吗?
如果您使用php作为模块,则需要以下内容:
LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/php"
或作为CGI二进制文件
ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
# For PHP 4
Action application/x-httpd-php "/php/php.exe"
# For PHP 5
Action application/x-httpd-php "/php/php-cgi.exe"
要考虑的其他事情,是在php二进制文件上正确设置的权限,php.ini是否存在并且正确,你是否重启了apache,因为将php安装到apache中?
最后,php不会在html文件中运行,你需要将以下内容设置为apache config中的最后一件事
AddType application/x-httpd-php .html .htm