无需重新编译即可启用 PHP 5 中的模块

无需重新编译即可启用 PHP 5 中的模块

我正在尝试安装一个 CMS,它需要PHP 的 mbstring 模块。根据该页面,该模块已安装但默认情况下未激活。本文链接到一个安装页面,该页面“解释”如何配置 PHP。不幸的是,PHP 的安装“手册”要求您通过源代码包安装 Apache 和 PHP 并编译它们。所以其他 95% 的网络服务器管理员并没有因此得到任何帮助。我找不到任何关于如何在不重新编译自己的 PHP 的情况下启用模块的有意义的内容。由于我使用的是一个非常具体的发行版及其自己的软件包等。我自己无法编译任何内容。

那么有没有一种方法可以轻松启用模块(在本例中为 mbstring)?

提前致谢!

答案1

您尝试过以下方法吗?

apt-get install php-mbstring

重新编译PHP其实没什么大不了的,只需从PHP主页下载源代码,解压,运行configure,运行make,运行make install:

apt-get update && apt-get install -y \
    autoconf \
    file \
    g++ \
    gcc \
    libc-dev \
    make \
    pkg-config \
    re2c \
    ca-certificates \
    curl \
    libedit2 \
    libsqlite3-0 \
    libxml2 \
    xz-utils \
--no-install-recommends 

wget https://secure.php.net/get/php-5.6.30.tar.bz2/from/this/mirror
tar -jxvf php-5.6.30.tar.bz2
cd php-5.6.30
./configure \
    --disable-cgi \
    \
    --enable-ftp \
    --enable-mbstring \
    --enable-mysqlnd \
    \
    --with-curl \
    --with-libedit \
    --with-openssl \
    --with-zlib \
    \
    #--with-config-file-path="$PHP_INI_DIR" \
    #--with-config-file-scan-dir="$PHP_INI_DIR/conf.d" 

make -j "$(nproc)"
make install

您还需要做一件事才能让 apache2 使用 /usr/local 中的 php,例如:

find /usr/local|grep libphp # get path of new PHP lib
grep libphp /etc/apache2/* -R # find file to update
# edit the file and change to use newly compiled PHP        

service apache2 restart

另一种方法是使用 Docker,但需要比仅仅更新 PHP 更复杂的更改 - 不过,非常值得研究:https://docs.docker.com/engine/installation/linux/debian/

相关内容