我有一个可以在本地计算机上使用的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提出任何请求时,出现以下错误:
从浏览器进入时,出现以下错误:
然后我有一些观察:
我还阅读到这可能是权限问题。我对文件夹和文件的权限设置为:
$ sudo wget http://localhost/info.php
我已经使用LAMP部署了API,但没有任何问题。但是也许通过分别安装Apache和PHP,我不会考虑我没有意识到的事情。或者在index.php代码中出现了一些我没有看到的错误,我想知道如何调试此HTTP状态。
$ 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=$
Solution:PHP Fatal error: Uncaught Error: Call to undefined function utf8_encode() in /var/www/html/APIs/cluvi/app-cl$
最后我遇到了以下错误:
我已解决的问题,保留了我在本地部署的应用程序中拥有的require_once()。
最后,我的主要解决方案是使用文件
$ sudo apt-get install php7.0-xml && sudo systemctl restart apache2
和安装/var/log/apache2/error_log
以避免HTTP错误500。
谢谢