我做了一个Laravel命令,我尝试每分钟运行一次cronjob。
在命令中有一些做肥皂调用的逻辑。当我通过我创建的路线运行命令时,一切正常。
像这样:
Route::get('test-command', function() {
Artisan::call('updateRegisterLogs');
});
现在,当我尝试在服务器上的命令中执行相同的操作时,如下所示:
php artisan updateRegisterLogs
我收到以下错误:
找不到“SoapClient”类
现在我在互联网上搜索,在我的php.ini中,我在;
之前和extension=php_soap.dll
之前删除了extension=php_openssl.dll
,我重新启动了我的apache,不幸的是我得到了同样的错误。
我现在确定这里出现了什么问题,因为我的代码可以正常运行,但是当用artian执行时却没有。
通常php有各种php.ini
配置文件,通常位于路径上,如/etc/php/7.2/cli/php.ini
或/etc/php/7.2/fpm/php.ini
所以从你猜测的问题是你已经取消注释其中一个配置文件的扩展而不是cli路径之一。
例如,如果你有使用nginx和phpfpm提供的应用程序,php.ini
文件将确定在为这些请求执行php时启用了哪些模块将是位于/etc/php/7.2/fpm/php.ini
的文件。当您执行artisan命令时,“selected”配置文件是/etc/php/7.2/cli/php.init
中的配置文件