laravel 5.6 服务器错误
laravel 5.6 server error
我的网站在 localhost
上运行完美,但是当移动到 Ubuntu 16.04 LTS
的实时服务器时,我收到了这个错误
[Mon Mar 05 11:11:28.968821 2018] [:error] [pid 19322] [client 156.212.75.255:61635] PHP Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in XXXXXXXXXX/vendor/symfony/finder/Comparator/NumberComparator.php on line 42
[Mon Mar 05 11:11:28.968895 2018] [:error] [pid 19322] [client 156.212.75.255:61635] PHP Fatal error: Exception thrown without a stack frame in Unknown on line 0
[Mon Mar 05 11:11:28.969374 2018] [:error] [pid 19322] [client 156.212.75.255:61635] PHP Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in XXXXXXXXXX/vendor/symfony/finder/Comparator/NumberComparator.php on line 42
[Mon Mar 05 11:11:28.969390 2018] [:error] [pid 19322] [client 156.212.75.255:61635] PHP Fatal error: Exception thrown without a stack frame in Unknown on line 0
我该如何解决这个问题以及删除 public 目录的正确方法是什么?
如果您查看来源 code。
/**
* @param string|int $test A comparison string or an integer
*
* @throws \InvalidArgumentException If the test is not understood
*/
public function __construct(?string $test)
{
?string
,叫做Nullable
类型。此功能出现在 php 7.1
之后(请参阅文档 here)。所以你需要在你的服务器上升级 php 版本。确保获得最低 php 版本 7.1
。或者使它与您的本地环境相同。
按照此 link 将 php 版本升级到 7.2
https://thishosting.rocks/install-php-on-ubuntu/
然后 运行 这个命令
sudo a2enmod php7.2
sudo a2dismod php7.0
sudo service apache2 restart
检查你的 php 版本,很可能就是这样:
对于ubuntu家庭:
> a2dismod php5.6 #current version
> a2enmod php7.1 #required version ( 7.0, 7.1, 7.2 )
> service apache2 restart
禁用php7.0
sudo a2dismod php7.0
启用php7.1
sudo a2enmod php7.1 #to enable 7.1
重启apache
sudo service apache2 restart
我的网站在 localhost
上运行完美,但是当移动到 Ubuntu 16.04 LTS
的实时服务器时,我收到了这个错误
[Mon Mar 05 11:11:28.968821 2018] [:error] [pid 19322] [client 156.212.75.255:61635] PHP Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in XXXXXXXXXX/vendor/symfony/finder/Comparator/NumberComparator.php on line 42 [Mon Mar 05 11:11:28.968895 2018] [:error] [pid 19322] [client 156.212.75.255:61635] PHP Fatal error: Exception thrown without a stack frame in Unknown on line 0 [Mon Mar 05 11:11:28.969374 2018] [:error] [pid 19322] [client 156.212.75.255:61635] PHP Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in XXXXXXXXXX/vendor/symfony/finder/Comparator/NumberComparator.php on line 42 [Mon Mar 05 11:11:28.969390 2018] [:error] [pid 19322] [client 156.212.75.255:61635] PHP Fatal error: Exception thrown without a stack frame in Unknown on line 0
我该如何解决这个问题以及删除 public 目录的正确方法是什么?
如果您查看来源 code。
/**
* @param string|int $test A comparison string or an integer
*
* @throws \InvalidArgumentException If the test is not understood
*/
public function __construct(?string $test)
{
?string
,叫做Nullable
类型。此功能出现在 php 7.1
之后(请参阅文档 here)。所以你需要在你的服务器上升级 php 版本。确保获得最低 php 版本 7.1
。或者使它与您的本地环境相同。
按照此 link 将 php 版本升级到 7.2
https://thishosting.rocks/install-php-on-ubuntu/
然后 运行 这个命令
sudo a2enmod php7.2 sudo a2dismod php7.0
sudo service apache2 restart
检查你的 php 版本,很可能就是这样:
对于ubuntu家庭:
> a2dismod php5.6 #current version
> a2enmod php7.1 #required version ( 7.0, 7.1, 7.2 )
> service apache2 restart
禁用php7.0
sudo a2dismod php7.0
启用php7.1
sudo a2enmod php7.1 #to enable 7.1
重启apache
sudo service apache2 restart