Linux

如何為 linux chroot jail 獲取 PHP mysql_ 擴展?

  • May 6, 2021

我在我的 Ubuntu 10.04 系統上使用 jailkit 設置了一個 chroot 監獄。我已經複製了 php 和 mysql 的二進製文件,它們都執行良好。因此,從我的 chrooted 使用者的命令行中,我可以執行效果php somefile.php很好的命令。

然而問題是我的 php 擴展都不能從 chroot 獲得。我需要的主要是mysql擴展。這在我的 root 帳戶中可以正常工作,但在我登錄到 chrooted 使用者時卻不行。

我已經php --ini在兩個帳戶上執行了該命令,結果如下:

從 root 帳戶看起來像:

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 中不存在,所以我假設這指的是實際的根路徑,當然它確實存在。

所以問題似乎是 chroot 中沒有載入任何 php 擴展。但我不知道為什麼會這樣?

啊!我現在解決了。我剛剛/etc/php5/cli使用 chroot 中的 ini 文件創建了目錄,然後將依賴庫複製過來,現在效果很好!

通常,您不會將庫等複製到監獄中。你要做的是執行不同的越獄命令。這些命令創建連結而不是複製文件。

如果您在添加 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

這是越獄工具包站點的連結,您可以在其中查看更多命令

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

引用自:https://serverfault.com/questions/258926