我正在尝试安装一个 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/