网站无法加载 - LAMP - index.php

网站无法加载 - LAMP - index.php

我有一个网站,在 WAMP 中运行没有问题。最近我搬到了 Ubuntu,所以我安装了 LAMP,一切看起来都很好:localhost浏览器中显示 Apache2 Ubuntu 默认页面。

创建了一个 info.php 文件,内容如下:

<?php
phpinfo();
?>

使用浏览器访问该文件即可http://localhost/info.php,并显示 php 信息。

但尝试使用 访问我的网站时,http://localhost/index.php网站无法加载。我已将所有必需的文件放在var/www/html文件夹中(info.php 文件也位于其中并且可以正常工作)。

我还需要做什么才能加载我的网站吗?

附加信息:该文件/etc/apache2/mods-enabled/dir.conf包含以下内容:

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

编辑1:

ls -la /var/www/html/in* 将列出我拥有的 3 个文件:

-rw-r--r-- 1 root          root          10918 Jul 21 19:18 /var/www/html/index.html
-rwxrwxrwx 1 mihail-cosmin mihail-cosmin  3931 Apr 26  2017 /var/www/html/index.php
-rw-r--r-- 1 root          root             20 Jul 21 20:55 /var/www/html/info.php

index.html并且info.php工作,它们属于用户和组 root。 index.php这不起作用,属于我的用户和组

我已经在 etc/apache2/envvars 中设置了用户和组,但仍然不起作用:

export APACHE_RUN_USER=mihail-cosmin
export APACHE_RUN_GROUP=mihail-cosmin

编辑2:

我意识到我在 Windows 上使用的是旧版本的 PHP,更确切地说是:PHP 5.6。我回到 Windows 并将 WAMP 中的版本更改为较新的版本,显然我的网站也停止运行了。

在 Ubuntu 上,我安装了旧版本 5.6,并将其更改为 Apache:

sudo a2enmod php5.6
Considering dependency mpm_prefork for php5.6:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php5.6:
Enabling module php5.6.
To activate the new configuration, you need to run:
  systemctl restart apache2

但我的网站仍然无法运行。

答案1

我找到了解决方案。我将添加我采取的所有步骤,以防万一它能帮助其他人从 Windows 迁移到 Ubuntu。

1.我的网站没有理由不能正常工作。所以问题肯定出在 index.php 中的代码上。所以你应该做的第一件事就是激活 php 错误。所以我在 index.php 中添加了以下内容:

 error_reporting(E_ALL);    
 ini_set('display_errors', TRUE);    
 ini_set('display_startup_errors', TRUE);

2.我遇到的第一个错误是关于其他 php 文件的路径。可能是由于 Windows 和 Ubuntu 之间的差异造成的。

Warning: require_once(/main/dbconnect.php): failed to open stream: No such file or directory in /var/www/html/index.php on line 7

Fatal error: require_once(): Failed opening required '/main/dbconnect.php' (include_path='.:/usr/share/php') in /var/www/html/index.php on line 7

解决方案是在路径前面添加一个点/main/dbconnect.php

3.此后,我收到一个有关 SQL 数据库连接的新错误:

Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in /var/www/html/main/dbconnect.php on line 4
ERROR: Could not connect. Access denied for user 'root'@'localhost' (using password: YES)

这次的问题是密码包含特殊字符。解决方法是将密码更改为简单的密码,例如 12345。

此后我的网站开始正常运行。

总之,总体解决方案是使我的文件中的代码适应 Ubuntu 系统。

相关内容