我认为这可能是一个陈词滥调的问题,但这确实使我感到困惑。
我有要在我的CPanel中部署的Laravel App(5.6版)。我已经按照本教程中提到的所有步骤进行操作,
https://medium.com/laravel-power-devs/deploy-laravel-projects-on-shared-hosting-2008be6f6f03
然后,当我尝试运行它时,它显示如下错误,
我想到的第一件事是PHP版本问题。是的,我发现我的PHP版本已经过时,即v5.6。然后我改变了。
但是,当我刷新站点时,错误仍然出现。有人告诉我这可能是由代码错误引起的,我检查了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。
你们有没有遇到过像我一样的情况?请帮帮我。我真的不知道现在该怎么办。谢谢!
答案 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
二进制文件并将网络服务器指向正确的套接字来启动该过程。