Debian9.9 编译安装 PHP7

今天装了 debian,记录一些在 debian 平台上编译安装 PHP7 的问题。

通过参考之前的 CentOS 安装方式,修改部分参数以及替换其对应的开发库依赖。

注意事项:

  1. 在 centos 上是***-devel 的,在 debian 上是***-dev 这样子的。
  2. 关于 lib 库指向,centos 是 lib64,debian 是 lib

预先安装依赖

这些都是根据 centos 相关所需的库给转换过去的,如果以下没有完全包含你所缺少的开发库,则通过 configure 时报的具体错误,在 google 进行搜寻,找到具体的开发库并安装就好了。

需要注意的是,我们编译时常常所需的库均是开发库,**-dev 或者 **-devel 这样子的。不用安装程序。

拿缺少 libzip 举例:

apt install -y libzip

apt install -y libzip-dev

有的教程会告诉你两个全装了,其实大部分情况在编译时我们只需要后者而已。

apt-get install -y zlib1g-dev
apt-get install -y libjpeg-dev
apt-get install -y libpng-dev
apt-get install -y libwebp-dev
apt-get install -y autoconf g++ make openssl libssl-dev libcurl4-openssl-dev
apt-get install -y libcurl4-openssl-dev pkg-config
apt-get install -y libsasl2-dev
apt-get install -y libzip-dev

apt-get install -y libldb-dev libldap2-dev
ln -s /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so \
&& ln -s /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so

php7.4 特有的依赖,如果是 PHP7.4 你需要下面这些。

apt install -y libsqlite3-dev
apt install -y libonig-dev

完整配置

关于参数变更详参:

https://www.php.net/manual/en/migration74.other-changes.php#migration74.other-changes.pkg-config

PHP7.4

wget http://php.net/get/php-7.4.4.tar.gz/from/this/mirror -O php-7.4.4.tar.gz
tar -xzf php-7.4.4.tar.gz -C ./
cd php-7.4.4
./configure --prefix=/usr/local/php/php7.4.4/\
 --with-config-file-path=/usr/local/php/php7.4.4/\
 --with-libdir=lib\
 --enable-fpm\
 --enable-gd\
 --enable-gd-jis-conv\
 --with-fpm-user=www\
 --with-fpm-group=www\
 --enable-mysqlnd\
 --with-pdo-mysql=mysqlnd\
 --enable-opcache\
 --enable-pcntl\
 --enable-mbstring\
 --enable-soap\
 --enable-calendar\
 --enable-bcmath\
 --enable-exif\
 --enable-ftp\
 --enable-intl\
 --enable-sockets\
 --with-openssl\
 --with-zlib\
 --with-curl\
 --with-gettext\
 --with-mhash\
 --with-webp\
 --with-jpeg\
 --with-ldap\
 --with-zip

进行编译

make && make install 

复制配置文件

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
cp php.ini-production  /usr/local/php/php7.4.4/php.ini
cp /usr/local/php/php7.4.4/etc/php-fpm.conf.default /usr/local/php/php7.4.4/etc/php-fpm.conf
cp /usr/local/php/php7.4.4/etc/php-fpm.d/www.conf.default /usr/local/php/php7.4.4/etc/php-fpm.d/www.conf

写入执行权限

chmod +x /etc/init.d/php-fpm

重载系统服务,否则无法使用 systemctl 进行管理

systemctl daemon-reload

启动 php-fpm

systemctl start php-fpm

停止 php-fpm

systemctl stop php-fpm

增加到开启自启

systemctl enable php-fpm

Enjoy ~

Comments

  • avatar
    Frenchmxjf

    Thе wise рerson fеels thе pain of оne arrоw. Thе unwisе fееls thе pain of two.

    2022-03-23 05:53