如何在 Ubuntu Apache2 AWS EC2 Laravel 项目上调试 HTTP ERROR 500

How to debug HTTP ERROR 500 on Ubuntu Apache2 AWS EC2 Laravel Project

提问人:Mustafa Arslan 提问时间:9/12/2023 最后编辑:Mustafa Arslan 更新时间:9/12/2023 访问量:39

问:

我在 AWS EC2 实例上的 laravel 项目有问题。强调的文本

我在 AWS EC2 实例上执行了“重启实例”。在重新启动之前它工作正常。

重新启动后,出现默认的 apache2 页面。

我编辑了文件;/etc/apache2/sites-available/000-default.conf

DocumentRoot /var/www/html

自;

DocumentRoot /home/ubuntu/my-laravel-oproject-folder/public

我的项目在哪里。

之后,错误被转到 .我试过了,我从中编辑了文件;403 Forbiddensudo chmod -R 775 /home/ubuntu/my-laravel-oproject-folder/public/etc/apache2/apache2.conf

<Directory /var/www>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

自;

<Directory /home/ubuntu>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

经过这些更改,现在我得到了.HTTP ERROR 500

每次更改后,我都重新启动了apache。sudo service apache2 restart

我是编程新手,我没有AWS或服务器设置的经验,所以欢迎任何想法。

如果您希望我提供更多详细信息或共享特定文件,请发表评论。

提前致谢。

Laravel 亚马逊网络服务 Apache Ubuntu Amazon-EC2

评论

0赞 Lajos Arpad 9/12/2023
/var/www/html似乎是托管网站的好地方。你为什么要改变它?
0赞 Mustafa Arslan 9/12/2023
@LajosArpad不是我:(。我不知道为什么:(

答:

1赞 Lajos Arpad 9/12/2023 #1

首先,您需要确保项目所在的文件夹与 和 匹配。DirectoryDocumentRoot

其次,您的网站将由某个用户加载,在 Ubuntu 中,该用户是 .此用户需要具有对项目文件的访问权限,否则您将很难使用它们。www-data

这就是为什么您的解决方案似乎如下:

1. 将项目文件夹移动到适当的位置

请确保将项目移动到适当的位置,例如 /var/www/html/MyProject。(重命名 MyProject 或根据需要选择其他路径)

2. 授予访问权限

您的用户需要能够访问项目文件。或者,您可以让其他用户成为文件的所有者,但随后需要确保该用户拥有它:www-data

sudo chown -R www-data /var/www/html/MyProject

sudo chown -R youruser:www-data /var/www/html/MyProject

但随后确保您的用户存在并具有该角色。您可以通过以下方式找出哪些用户是该组的成员:www-datawww-data

grep ^www-data /etc/group

以下是将用户添加到组的方法:www-data

sudo adduser youruser www-data

3 更改配置

查找里面的配置文件,并确保你有一个正确的配置,也就是说,你定义,以便它指向正确的位置,以及标签应该指向正确的位置,比如/etc/apache2/sites-availableDocumentRootDirectory

<Directory /var/www/html/MyProject>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

4. 确保您拥有正确的配置

一般来说,每个站点都有自己的配置文件是好的,所以你可以

cp 000-default.conf yoursite.conf

5. 启用您的网站

如果您的站点已启用,则可以运行

sudo a2dissite yoursite

为了禁用它。然后,运行

sudo a2ensite yoursite

启用它。

6 重启 Apache

sudo systemctl restart apache2.service

评论

0赞 Mustafa Arslan 9/12/2023
首先感谢您的回答!我遵循了所有步骤,在运行命令时没有错误,但不幸的是它不起作用,最后我遇到了同样的错误。我尝试将文件名更改为并获取该索引页单击index.phpindex.php.bak
0赞 Lajos Arpad 9/12/2023
HTTP 500 表示出了点问题。您需要检查服务器日志以了解有关错误的更多详细信息。它可以是任何东西。这也可能是PHP错误。请检查日志并告诉我您可以找到的详细错误是什么。
0赞 Md. Miraj Khan 9/13/2023
你@MustafaArslan生成 Laravel 应用程序密钥?