在 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。