分类
服务器部署

Debian 10 PHP 7.4编译安装imagick扩展

下载 imagick 源码,解压并进入目录

wget https://pecl.php.net/get/imagick-3.4.4.tgz
tar xf imagick-3.4.4.tgz
cd imagick-3.4.4

安装依赖

apt install -y libmagickcore-dev libmagickwand-dev autoconf

进入 imagick 代码目录后执行 phpize

/usr/local/php/php74/bin/phpize

配置

./configure --with-php-config=/usr/local/php/php74/bin/php-config --with-imagick=/usr/local/imagemagick

编译安装

make && make install

编译安装完成后会显示扩展模块编译到了哪个目录,记录下这个目录的路径,以便在 php.ini 中进行配置,我这里是 /usr/local/php/php74/lib/php/extensions/no-debug-non-zts-20190902/

配置 php.ini

extension_dir = "/usr/local/php/php74/lib/php/extensions/no-debug-non-zts-20190902/"
extension=imagick.so

保存并退出,重启 php-fpm 即可。

分类
博客

博客搬家了

今天把博客搬到了阿里云香港,离开了待了一年多的搬瓦工 DC3 机房。搬是搬出去了,心里还挺怀念的。

搬瓦工这台服务器,是 2018 年双十一活动时购买的,性价比极高。刚买完那阵,有一段时间可以迁到 DC8 ,当时的 DC8 是 Zenlayer 机房的 CN2 线路,质量非常好,但是当我知道这个消息时,搬瓦工已经关闭了迁移到 DC8 的入口,无奈在 DC3 待到现在。

不得不感概时间过的很快,现在的 DC8 已经不是当年的 DC8 了,不再是 Zenlayer 机房的 CN2 线路。

DC3 虽然没换线路,但也不是原来的那个质量了。自从购买完一直到去年海缆断之前,都还挺不错,白天延迟稳定在170ms左右,晚上偶尔丢包。

但是从去年海缆断过之后,就再也没好过——白天延迟200ms+,经常丢包,尤其一到晚上网络高峰期,延迟直接飙到300ms左右,疯狂丢包,基本就没法用了。看下图:

2021-01-05 22:05,ping 搬瓦工 DC3 的截图。

即便这样,我也忍耐了半年之久,但是忍无可忍,便无须再忍。无奈之下,被迫逃离了搬瓦工,转到了阿里云。

阿里云这台机器买了有大半个月了,一直没有时间去倒腾。昨天忙完一天的工作,利用晚上的时间把环境搭建好了。系统用的 Debian 10 Buster ,Debian stable 是一个非常稳定的存在,坚如磐石,随便滚动,基本不会出错。

之前一直用的 CentOS ,但是 CentOS 以后往 CentOS Stream 上发展了,从 RHEL 下游变成了 RHEL 上游,处于 Fedora 和 RHEL 中间,滚动发布。既然都是滚动发布,那我还要你做甚,Debian stable 它不香吗?纯社区驱动,自然演进,永远不用担心被企业操控。

好像有点扯远了,回归主题。

今天利用空闲时间,把博客和一个客户的网站迁移到了阿里云香港。用了一年多的美国服务器,突然搬到香港,那体验是非常不一样的,就像多年的老便秘突然通畅了,这感觉简直不要太爽。

最后,来一张阿里云香港的ping截图:

阿里云香港晚高峰(2021-01-05 22:25)的 ping 截图,贼稳👍。
分类
PHP

Debian10编译PHP7.4问题记录

系统镜像是基于阿里云的 Debian10.6。

configure参数:

./configure \
--prefix=/usr/local/php/php74 \
--enable-gd \
--with-curl \
--enable-fpm \
--enable-cgi \
--with-openssl \
--enable-mbstring \
--with-pdo-mysql \
--with-zlib \
--with-zip \
--with-mysqli \
--enable-opcache \
--enable-mysqlnd \
--with-libxml \
--with-jpeg \
--with-freetype \
--with-pdo-sqlite \
--with-sqlite3 \
--enable-cli \
--enable-shared \
--enable-exif 

问题记录

问题:
configure: error: Package requirements (openssl >= 1.0.1) were not met:
No package ‘openssl’ found

解决:
apt install libssl-dev

问题:
configure: error: Package requirements (sqlite3 > 3.7.4) were not met:
No package ‘sqlite3’ found

解决:
apt-get install libsqlite3-dev

问题:
configure: error: Package requirements (libcurl >= 7.15.5) were not met:
No package ‘libcurl’ found

解决:
apt-get install libcurl4-gnutls-dev

问题:
configure: error: Package requirements (oniguruma) were not met:
No package ‘oniguruma’ found

解决:
apt install libonig-dev

问题:
configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met:
No package ‘libzip’ found

解决:
apt-get install libzip-dev

另外,编译时遇到virtual memory exhausted: Cannot allocate memory的错误,这是由于阿里云的镜像默认没开启swap的原因,创建一个swap内存再编译即可。

总结一下,在阿里云提供的debina10镜像上编译安装PHP7.4,必须安装的依赖有:

apt install -y  libssl-dev libsqlite3-dev libcurl4-gnutls-dev libonig-dev  libzip-dev

一点感想:与 CentOS7 相比,Debian10 安装一些依赖非常方便,不用像 CentOS 一样要到处找源,要安装“野包”才能编译。