为什么php没有运行?

时间:2013-08-06 16:52:42

标签: php apache ubuntu amazon-web-services

我已经多次回答过这个问题了,但是大多数问题都没有得到答复,也没有告诉提问者这样做:

<?php phpinfo() ?>

在测试文件中。显然,如果这产生了预期,我不会在这里。相反,我收到404错误。

我在亚马逊上使用的是ubuntu 12.04服务器。安装Apache,安装php5,重启apache。我遵循以下顺序:

sudo apt-get install apache2

sudo apt-get install php5

sudo apt-get install libapache2-mod-php5

sudo /etc/init.d/apache2 restart

前三个命令中的每一个现在都给我“apache2已经是最新版本了。 0升级,0新安装,0删除,3未升级“显然,将apache2替换为php5,将libapache2-mod-php5替换为其他两个。

这是告诉我安装的确定方法,对吗?好吧,当我使用命令“top”时,php不是正在运行的服务之一,它告诉我它没有运行,对吗?

导航到IP地址,这给了我亚马逊的“It Works!”页面,但导航到服务器上的任何其他页面会产生404错误。

非常感谢任何帮助。

6 个答案:

答案 0 :(得分:12)

查看apache配置文件。对于Debian / Ubuntu,他们在/etc/apache2/sites-available/中用于RedHat / CentOS /等,他们在/etc/httpd/conf.d/。如果您刚安装它,那里的文件可能名为default

确保其中的配置文件指向正确的文件夹,然后确保您的脚本位于那里。

您在这些文件中寻找的行是DocumentRoot /path/to/directory

对于空白安装,您的php文件很可能需要位于/var/www/

您还需要做的是找到您的php.ini文件,可能位于/etc/php5/apache2/php.ini/etc/php.ini,找到display_errors的条目并将其切换为{{1 }}

答案 1 :(得分:6)

一个很大的问题是默认情况下PHP在用户主目录中被禁用,所以如果你从〜/ public_html进行测试它就不起作用了。 校验 /etc/apache2/mods-enabled/php5.conf

# Running PHP scripts in user directories is disabled by default
# 
# 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_flag engine Off
#    </Directory>
#</IfModule>

除了在Ubuntu中安装非常简单,因为您以前必须放入httpd.conf的所有内容都是自动完成的。

答案 2 :(得分:1)

回答原始问题“ 为什么php无法运行?” 您的浏览器要求的文件必须具有.php扩展名。 如果文件扩展名为.html,则不会执行php。

答案 3 :(得分:0)

键入浏览器localhost:80 // test5.php [其中80是您的端口,test.php是您的文件名]而不是c://xampp/htdocs/test.php。

答案 4 :(得分:-1)

在Ubuntu 14.04下安装Apache和PHP时,我需要通过发出a2enmod php5-cgi来专门启用php配置

答案 5 :(得分:-6)

你需要在所有php之类的内容中添加分号,如echo,function等。

<?php phpinfo() ?>更改为<?php phpinfo(); ?>

如果这不起作用,请使用php的函数ini_set来显示错误:ini_set('display_errors', 1);