如何在synology上执行带有扩展的PHP CLI脚本

如何在synology上执行带有扩展的PHP CLI脚本,php,mysql,command-line-interface,synology,Php,Mysql,Command Line Interface,Synology,我正在尝试通过synology NAS上的命令行执行php脚本。通过网络浏览器,工作正常。然而,尽管我在/etc/php/php.ini中加载了扩展,但通过CLI我还是收到了一个错误 致命错误:未捕获PDOException:在/volume1/web/blabla.php:16中找不到驱动程序 有什么想法吗?您尝试过:php56 path/to/script.php或php70 path/to/script.php吗? 如果我没有错的话,/etc/php/php.ini是用于DSM引擎的。。。

我正在尝试通过synology NAS上的命令行执行php脚本。通过网络浏览器,工作正常。然而,尽管我在
/etc/php/php.ini
中加载了扩展,但通过CLI我还是收到了一个错误

致命错误:未捕获PDOException:在/volume1/web/blabla.php:16中找不到驱动程序


有什么想法吗?

您尝试过:php56 path/to/script.php或php70 path/to/script.php吗? 如果我没有错的话,/etc/php/php.ini是用于DSM引擎的。。。 对于symfony,我使用php56 bin/console命令。php或php70对我不起作用(DS415+上的DSM 6.1.3)
希望有帮助

只需确保使用正确的PHP版本和PHP.ini即可。您可以通过键入“php--ini”找到php.ini的位置。也可以在可执行文件php56/php70上执行此操作。它们都有单独的php.ini文件。另外,请确保在适用的php.ini文件中加载正确的扩展目录。

Synology使用两种不同的php安装。一个用于解决内部问题(如管理员面板),另一个来自您为web服务器安装的包

您可以观察从命令行运行的差异:

php --ini
php56 --ini
php7 --ini
(取决于安装的php软件包)

使用php56或php7运行脚本


更新

请使用以下最新版本的PHP(假设已安装这两个版本)


我也在同一条船上——试图让PHP7.0在我的Synology DiskStation DS218+的命令行上运行

我键入了
php70--ini
,发现PHP使用的是位于
/usr/local/etc/php70/PHP.ini的ini文件

我去了目录

cd /usr/local/etc/php70/
备份了
.ini
文件以防万一

sudo cp php.ini php.ini.bak
已打开
vi

sudo vi php.ini
点击
i
进入
Insert
模式。我改变了这一点:

extension_dir = "/usr/local/lib/php70/modules"
为此:

extension_dir = "/volume1/@appstore/PHP7.0/usr/local/lib/php70/modules"
我还添加了这一行:

extension = pdo_mysql.so
然后我点击
Esc
,然后点击
,然后点击
wq
和。这将离开插入模式,将
.ini
写入磁盘,然后退出

就这样!在那之后,我可以通过调用
php70
,然后调用脚本名来运行命令行脚本。

对于我(DSM 6.1.6-15266更新1),以下帮助:

将以下行添加到
/usr/local/etc/php70/php.ini

extension = pdo_mysql.so
extension = openssl.so

我花了很长时间才得到正确的值,最后我通过与php56实例的配置文件进行比较找到了它们。

好的,bla bla位可能有用,所以您介意。还有一些实际的代码,他们对这样一个含糊不清、问题严重的问题投了赞成票。请阅读鼠标悬停在“向上投票”按钮上时得到的工具提示。。。。。它不是,它不是,它不是。请阅读并了解如何创建一个与代码无关的文件,那么我为什么要发布实际的代码呢?您是否意识到通常有2个
php.ini
文件。一个用于Apache,另一个专用于PHP CLI。运行
php--ini
并查看php CLI ini文件的实际位置。语法php自动更新似乎覆盖了php.ini。所以你最好禁用它。也许有人知道如何解决这个问题。使用PHP7.4,WebStation从
/usr/syno/etc/packages/WebStation/php\u profile/…somelongnumber…/conf.d/user\u settings.ini
加载扩展,从
/usr/local/etc/php74/CLI/conf.d/extension.ini
加载CLI。为上一个添加扩展为我做到了这一点。
extension = pdo_mysql.so
extension = openssl.so