如何获取适用于 Linux chroot jail 的 PHP mysql_ 扩展?

如何获取适用于 Linux chroot jail 的 PHP mysql_ 扩展?

我已经使用 jailkit 在 Ubuntu 10.04 系统上设置了一个 chroot jail。我复制了 php 和 mysql 的二进制文件,它们都运行正常。因此,从 chrooted 用户的命令行,我可以运行php somefile.php命令,效果很好。

但问题是,我的 php 扩展在 chroot 下都不可用。我最需要的是 mysql 扩展。在我的 root 帐户下,它运行良好,但在 chroot 用户下则不行。

我在两个帐户上运行了该命令,php --ini结果如下:

从根帐户来看,它看起来像:

Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/apc.ini,
/etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/gd.ini,
/etc/php5/cli/conf.d/geoip.ini,
/etc/php5/cli/conf.d/imagick.ini,
/etc/php5/cli/conf.d/mcrypt.ini,
/etc/php5/cli/conf.d/memcache.ini,
/etc/php5/cli/conf.d/mysql.ini,
/etc/php5/cli/conf.d/mysqli.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_mysql.ini,
/etc/php5/cli/conf.d/ssh2.ini,
/etc/php5/cli/conf.d/suhosin.ini,
/etc/php5/cli/conf.d/tidy.ini

从监狱来看是这样的:

Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         (none)
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      (none)

该路径/etc/php5/cli在 chroot 中不存在,因此我假设这是指实际的根路径,当然它是存在的。

因此问题似乎是没有任何 php 扩展在 chroot 中加载。但我不知道为什么会这样?

答案1

通常情况下,您不会将库等复制到 jail。您需要做的是运行不同的 jailkit 命令。这些命令会创建链接,而不是复制文件。

如果你在添加 php 之前已经创建了 jail,则可以按照此处说明的过程进行操作:

https://www.faqforge.com/linux/add-php-in-ssh-jail-ispconfig-3/

我最终做的是(因为 jailkit 在执行 jk_update 时返回了错误)是这样的:

jk_init -j /var/www/clients/client123/web123/ basicshell editors extendedshell netutils ssh sftp scp groups jk_lsh php

这是 jailkit 网站的链接,您可以在其中查看更多命令

https://olivier.sessink.nl/jailkit/

答案2

啊!我现在搞定了。我刚刚/etc/php5/cli在 chroot 中创建了包含 ini 文件的目录,然后将依赖库复制过来,现在一切运行良好!

相关内容