如何在 php "Call to undefined function ftp_connect()" 中启用 ftp 模块



我对Yocto很陌生,我正在尝试在我的php中调用ftp_connect()函数,但得到一个未定义的函数错误。

我正在使用Yocto Poky kirkstone(4.0.2)用于corei7-64-poky-linux,在我的local.conf文件中,我添加了以下内容:

IMAGE_INSTALL:append = " lighttpd lighttpd-module-fastcgi"
IMAGE_INSTALL:append = " vsftpd"
IMAGE_INSTALL:append = " php php-fpm"
PACKAGECONFIG[php] = " --enable-ftp --enable-debug "

我创建了一个lighttpd_%.bbappend到自定义的lighttpd.conf,带有正确的"server.document-root","mod_fastcgi"和"fastcgi.server"。

我的网页正在加载并且 php 8.1.8 正在工作,但 ftp 模块未加载!

phpinfo() 不显示 "--enable-ftp" 选项,

并且没有加载 php.ini 文件:

Configuration File (php.ini) Path   /etc/php/apache2-php8
Loaded Configuration File   (none)

为什么当我使用 lighttpd 时它会显示 apache2?为什么没有加载 ini 文件? 更重要的是,如何为 PHP 启用 ftp?

我尝试将 apache2 添加到我的 local.conf 中,并使用以下php_%.bbappend添加"extension=ftp",但这也没有用!

PHP_MAJOR_VERSION = "${@d.getVar('PV').split('.')[0]}"

do_install:append:class-target() {
echo "extension=ftp" >>  ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}/php.ini  
}

我尝试添加一些调试行,如下所示,但这没有帮助:

error_reporting(E_ALL);
ini_set("display_errors", 1);
ini_set("log_errors", 1);  //
ini_set("error_log", "/tmp/php-error.log");
error_log( "Hello, errors!" );

提前感谢您的帮助,我已经尝试了好几天了。

我不确定这是否是正确的方法,但我终于设法让它工作了。

我只需要在我的local.conf中添加php-fpm

IMAGE_INSTALL:append = " php-fpm">

并创建一个具有以下内容的 php_%.bbappend:

EXTRA_OECONF += " --enable-ftp">

最新更新