Laravel部署在Locaweb共享服务器迁移后执行php artisan报错如何解决
问题说明
触发的报错信息如下:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/storage/a/b7/b3/reciclaoleovegetal/public_html/public/index.php on line 52 Parse error: syntax error, unexpected T_STRING in /home/storage/a/b7/b3/reciclaoleovegetal/public_html/public/index.php on line 52
根因分析
报错核心原因是服务器命令行环境与Web环境调用的PHP版本不一致:
- Web环境使用的PHP版本为7.3.28,符合Laravel运行要求,因此info.php页面检测结果正常
- 命令行默认调用的PHP版本为5.2,该版本不支持PHP命名空间语法(即代码中的
\符号),执行artisan命令时会抛出语法错误,同时PHP5.2也远低于Laravel要求的最低运行版本。
解决方案
- 首先查询服务器上已安装的PHP7.3可执行文件路径,Locaweb共享主机通常将多版本PHP存放在
/opt/或/usr/local/bin目录下,可执行以下命令查找:
常见的PHP7.3路径为find /opt/ -name php73 2>/dev/null find /usr/local/bin -name php*7.3* 2>/dev/null/usr/local/bin/php73或/opt/php7.3/bin/php - 找到正确路径后,执行artisan命令时指定对应版本的PHP即可,示例:
/usr/local/bin/php73 artisan list - 如需简化操作,可给当前用户设置永久别名:编辑用户目录下的
.bashrc文件,添加一行alias php='/usr/local/bin/php73',保存后执行source ~/.bashrc即可生效。后续直接执行php -v会显示7.3版本,php artisan相关命令也可正常运行。 - 若执行命令时出现权限类报错,可联系Locaweb主机商确认PHP7.3的CLI权限是否正常开启。
内容的提问来源于stack exchange,提问作者Gabriela Montes
相关产品推荐
相关产品推荐

