在 Laravel 升级 PHP 版本之后,需要确认 php.ini 文件

卡住的问题

在准备将Laravel部署到Azure期间,我意外地将Azure的AppService配置为了PHP8.0.1,而本地开发环境中使用的Laravel版本是7.2.1,因此我也将本地升级到了PHP8.0.1。

由于更改了composer.json和环境变量,并执行了composer update命令出现的错误,花费了一些时间来找到最终的解决方法。这是我的解决方法备忘录。

composer update

  [Composer\Exception\NoSslException]                                                                                                                      
  The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension, you can disable this error   
  , at your own risk, by setting the 'disable-tls' option to true.                                                                                         
                                                                                 

环境

PHP 8.0.1
Laravel框架6.18.43
使用MAMP

请确认配置文件。

请将Laravel的conposer.json文件中的PHP版本更改为8.0.1进行查看。

"require": {
        "php": "^8.0",
===省略===
"config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true,
        "platform": {
            "php": "8.0.1"
        }
    },

由于很多文章建议查看phpinfo(),因此我查看了phpinfo(),确认了路径并取消了放置在该位置的php.ini文件中extension的注释,然后重启了服务。然而,错误没有改变…

 

extension_dir = "ext
~~~
extension=openssl

php.ini文件的位置设置错误。

 

尽管各种文章中有人说”php.ini-developer是~”,但我去查看php.ini的地方与phpinfo()不同。

通过`phpinfo()`查看的文件夹位置是:C:\MAMP\conf\php8.0.1\php.ini
实际修复后的路径为:C:\MAMP\bin\php\php8.0.1

将位于C:\MAMP\bin\php\php8.0.1内的php.ini-developer复制到同一文件夹中。
将其更名为”php.ini”,取消必要扩展的注释后重新启动,即可通过composer update。