CPanel中的Laravel部署返回HTTP错误500

时间:2018-12-13 08:27:28

标签: php laravel

我认为这可能是一个陈词滥调的问题,但这确实使我感到困惑。

我有要在我的CPanel中部署的Laravel App(5.6版)。我已经按照本教程中提到的所有步骤进行操作,

https://medium.com/laravel-power-devs/deploy-laravel-projects-on-shared-hosting-2008be6f6f03

然后,当我尝试运行它时,它显示如下错误,

enter image description here

我想到的第一件事是PHP版本问题。是的,我发现我的PHP版本已经过时,即v5.6。然后我改变了。

CPanel PHP Setting

但是,当我刷新站点时,错误仍然出现。有人告诉我这可能是由代码错误引起的,我检查了error_log文件,就在这里,

[12-Dec-2018 15:31:11 Asia/Country] PHP Parse error:  syntax error, unexpected '?' in /home/root/laravelapp/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 500

因此,这部分确实让我感到压力,因为大多数Laravel社区告诉我此错误是由于CPanel中的PHP版本而发生的。就像我之前说的,该版本已经更改为v7.1。

你们有没有遇到过像我一样的情况?请帮帮我。我真的不知道现在该怎么办。谢谢!

1 个答案:

答案 0 :(得分:0)

仅更改php版本是不够的。实际上,您实际上也需要更改php-fpm可执行文件。

[Client] --calls--> [Web server] --forwards to--> [PHP FPM] --asks--> [PHP]

因此,如果您的fpm实例指向旧的php版本,您仍然会收到错误消息。要检查所有设置是否正确:

sudo php-fpm -i | grep "PHP Version"
>> should show you which version is being used

如果二进制文件不在路径中,则必须找到它:

sudo find / -type f -name php-fpm

或者在/usr/bin/php-fpm/usr/sbin/php-fpm/usr/local/bin/php-fpm/usr/local/sbin/php-fpm中查找。如果发现多个二进制文件,请尝试使用-i选项进行调用。

sudo /usr/local/sbin/php-fpm -i | grep "PHP Version"

然后,在网络服务器配置中,您必须确保使用正确的fpm连接。通常它是一个套接字,但也可以是fastCGI转发

sudo vim /etc/nginx/sites-enabled/your-site

查找此行,并确保使用正确的版本。

fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;

(如果您使用的是Apache,则类似,但是您必须在其中搜索正确的步骤。)

如果您使用的fpm版本不正确,则必须通过为php-fpm执行php7.1二进制文件并将网络服务器指向正确的套接字来启动该过程。