如何使用apache和php调试HTTP错误500?

时间:2018-12-18 08:05:48

标签: php apache rest debian http-error

我有一个可以在本地计算机上使用的Rest API。但是,当将其上传到服务器时,会出现一些错误。

我安装了Apache,PHP和php-cli软件包。

Database.CloseConnection()

我启用了Apache模块并在Apache中启用了mod_rewrite

$ sudo apt install apache2
$ sudo apt install php libapache2-mod-php 
$ sudo apt install php-cli

我还验证了mod_rewrite已启用:

$ sudo a2enmod php7.0
$ sudo a2enmod rewrite

然后我测试了PHP是否可以使用SSH在Web服务器上运行

$ ls /etc/apache2/mods-enabled | grep rewrite

我的目录v0包含index.php和.htaccess

向Postman提出任何请求时,出现以下错误:

  • 在此服务器上找不到所请求的URL / APIs / cluvi / v0 / employees
  • 位于端口80的Apache / 2.4.25(Debian)服务器

从浏览器进入时,出现以下错误:

  • HTTP错误500

然后我有一些观察:

  1. 删除.htaccess文件时,错误仍然存​​在。
  2. 当删除文件index.php时,错误消失了,当我从浏览器进入目录v0时,因为显示了目录的内容。

我还阅读到这可能是权限问题。我对文件夹和文件的权限设置为:

$ sudo wget http://localhost/info.php

我已经使用LAMP部署了API,但没有任何问题。但是也许通过分别安装Apache和PHP,我不会考虑我没有意识到的事情。或者在index.php代码中出现了一些我没有看到的错误,我想知道如何调试此HTTP状态。


解决方案

/ var / log / apache2 / error_log

$ sudo usermod -a -G www-data your_username
$ sudo chgrp -R www-data /var/www/html 
$ sudo chmod -R g+w /var/www/html

解决方案: 在请求的URL中有一个更多的段,该段在服务器项目的目录结构中不存在。 因此,解决方案是将URL与目录结构进行比较并进行匹配。

PHP Warning:  require_once(webpresentation/views/JsonView.php): failed to open stream: No such file or direct$
PHP Fatal error:  require_once(): Failed opening required 'webpresentation/views/JsonView.php' (include_path=$

SolutionPHP Fatal error: Uncaught Error: Call to undefined function utf8_encode() in /var/www/html/APIs/cluvi/app-cl$

最后我遇到了以下错误:

  • PHP警告:require_once ...
  • PHP致命错误:require_once()

我已解决的问题,保留了我在本地部署的应用程序中拥有的require_once()。

  

最后,我的主要解决方案是使用文件$ sudo apt-get install php7.0-xml && sudo systemctl restart apache2和安装/var/log/apache2/error_log以避免HTTP错误500。

谢谢

0 个答案:

没有答案