Can';t在Laravel的App Engine上的PHP.ini上启用PHP扩展
我正在尝试启用Laravel所需的一些php扩展。Can';t在Laravel的App Engine上的PHP.ini上启用PHP扩展,php,google-app-engine,laravel,php-extension,php-ini,Php,Google App Engine,Laravel,Php Extension,Php Ini,我正在尝试启用Laravel所需的一些php扩展。php.ini文件()的文档说明在应用程序的根目录中放置一个php.ini文件 这就是我的php.ini的样子: extension=openssl.so extension=pdo.so extension=tokenizer.so extension=mbstring.so google_app_engine.enable_functions = "php_sapi_name, php_uname" 部署时,我的日志显示: PHP Warn
php.ini
文件()的文档说明在应用程序的根目录中放置一个php.ini文件
这就是我的php.ini
的样子:
extension=openssl.so
extension=pdo.so
extension=tokenizer.so
extension=mbstring.so
google_app_engine.enable_functions = "php_sapi_name, php_uname"
部署时,我的日志显示:
PHP Warning: PHP Startup: Unable to load dynamic library '/base/php_runtime/modules/openssl.so' - /base/php_runtime/modules/openssl.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/base/php_runtime/modules/pdo.so' - /base/php_runtime/modules/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/base/php_runtime/modules/tokenizer.so' - /base/php_runtime/modules/tokenizer.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/base/php_runtime/modules/mbstring.so' - /base/php_runtime/modules/mbstring.so: cannot open shared object file: No such file or directory in Unknown on line 0
我已尝试更改在php.ini
中格式化扩展的方式:
extension="openssl.so"
extension="openssl.dll"
extension="php_openssl.so"
extension="php_openssl.dll"
我试过引用,但没有引用。它们之间有空格,没有空格。我不知道还能尝试什么。我解决了这个问题 当您在本地为应用程序提供服务并进行部署时,AppEngine将使用应用程序根目录中的
php.ini
文件
问题是,当我在本地运行它时,我需要在php.ini
中有extension=*
行来加载必要的扩展。当我在php.ini
中使用这些行部署它时,我得到了我在问题中报告的错误
我的解决方案是有两个不同版本的php.ini
:php.ini.local
和php.ini.dev
php.ini.local
:
extension=mbstring.so
extension=pdo.so
extension=openssl.so
extension=tokenizer.so
google_app_engine.enable_functions = "php_sapi_name, php_uname"
google_app_engine.enable_functions = "php_sapi_name, php_uname"
deploy:
cp php.ini.dev php.ini
# Code used to deploy
serve:
cp php.ini.local php.ini
# Code used to serve locally
php.ini.dev
:
extension=mbstring.so
extension=pdo.so
extension=openssl.so
extension=tokenizer.so
google_app_engine.enable_functions = "php_sapi_name, php_uname"
google_app_engine.enable_functions = "php_sapi_name, php_uname"
deploy:
cp php.ini.dev php.ini
# Code used to deploy
serve:
cp php.ini.local php.ini
# Code used to serve locally
并根据需要使用Makefile将php.ini替换为dev版本或本地版本
Makefile
:
extension=mbstring.so
extension=pdo.so
extension=openssl.so
extension=tokenizer.so
google_app_engine.enable_functions = "php_sapi_name, php_uname"
google_app_engine.enable_functions = "php_sapi_name, php_uname"
deploy:
cp php.ini.dev php.ini
# Code used to deploy
serve:
cp php.ini.local php.ini
# Code used to serve locally
那些图书馆有吗?看起来他们不是(我不知道为什么)。我已经解决了问题。文档说明这些模块已经加载。只有
imagick
、curl
、mongo
和intl
需要显式添加到php.ini
。删除扩展=*
行修复了它。如果可以,将其作为答案发布。用我的解决方案发布了答案。