我最近从网站下载了 OpenSUSE OS 11.4 版,将其用作服务器。为了做到这一点,我下载了默认下载了 Apache/2.2.17 和 PHP5 的服务器版本.....好的,到目前为止一切正常
现在我成功启动了Apache,并在documentRoot目录中放置了一个test.php文件。test.php仅包含<?php phpinfo() ?>
然后我用我的浏览器输入了一些东西http://localhost/test.php
,但问题是浏览器没有显示phpinfo()
应该显示的内容,而是问我是否要打开或保存 test.php...这让我抓狂...我在 Google 上搜索了很多,但没有解决方案
这是 /etc/apache2/conf.d/php5.conf
<IfModule mod_php5.c>
AddHandler application/x-httpd-php .php4
AddHandler application/x-httpd-php .php5
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .php4s
AddHandler application/x-httpd-php-source .php5s
AddHandler application/x-httpd-php-source .phps
DirectoryIndex index.php4
DirectoryIndex index.php5
DirectoryIndex index.php
</IfModule>
答案1
值得尝试的一件事是验证您的项目不在用户目录(public_html 文件夹)中,或者 php5.conf 中的配置(某些配置为 /etc/apache2/mods-available/php5.conf)是否允许这样的解释。
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
# To re-enable php in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_value engine Off
# </Directory>
#</IfModule>
</IfModule>
答案2
你可以检查里面有什么
nano /etc/apache2/mods-available/php5.conf
您还可以检查
sudo dpkg -S php5 | grep libapache2-mod-php5
它会显示你的 php5.conf 是否启用了 mods
我到了那儿:
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
请注意,此正则表达式匹配 .php5,但由于某种原因无法匹配 .php。
解决方案
apt-get remove libapache2-mod-php5 ; apt-get purge libapache2-mod-php5; apt-get install libapache2-mod-php5
然后打开
nano /etc/apache2/mods-enabled/php5.conf
并替换
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
和
<FilesMatch ".+\.ph((p[345]?)|t|tml)$">
或者直接执行
sudo perl -pe 's|\Q.ph(p[345]?\E|.ph((p[345]?)| if $. <= 3' /etc/apache2/mods-available/php5.conf
并重新启动 apache
sudo service apache2 restart
答案3
查看 PHP 文档并确保配置正确
http://www.php.net/manual/en/install.unix.apache2.php
这应该在你的 httpd.conf 中
LoadModule php5_module modules/libphp5.so
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
答案4
听起来 mod_php5 不知为何被禁用了
尝试(以 root 身份)
a2enmod php5
service apache2 restart
然后尝试再次访问该页面