今天装了 debian,记录一些在 debian 平台上编译安装 PHP7 的问题。
通过参考之前的 CentOS 安装方式,修改部分参数以及替换其对应的开发库依赖。
注意事项:
- 在 centos 上是***-devel 的,在 debian 上是***-dev 这样子的。
- 关于 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 ~
Thе wise рerson fеels thе pain of оne arrоw. Thе unwisе fееls thе pain of two.