Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t在Laravel的App Engine上的PHP.ini上启用PHP扩展_Php_Google App Engine_Laravel_Php Extension_Php Ini - Fatal编程技术网

Can';t在Laravel的App Engine上的PHP.ini上启用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

我正在尝试启用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 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
。删除
扩展=*
行修复了它。如果可以,将其作为答案发布。用我的解决方案发布了答案。