Debian11安装Postfix

为了能让 WordPress 发送通知邮件,需要在服务器上配置MTA(Mail Transfer Agent),常见的MTA服务有 Sendmail、Postfix 等。

Sendmail 是 Unix 系统的标准邮件传输代理,而 Postfix 邮件服务器安全性更好一些。

这里我们选择的是 Postfix,用来为 WordPress 提供仅发送服务。

安装

通过如下命令安装 Postfix

apt install postfix

安装过程中,会出现配置界面。如果已安装,可以使用 dpkg-reconfigure postfix 重新打开该界面。

我们将选择 Internet Site 并按回车。

对于系统邮件名称,我们将使用我们网站的域名,对于本站,就是 wujie.me 。

这两步配置完后,等待安装完成,WordPress 就可以发送通知邮件了。

其它配置

如果想对 Postfix 进行更详细的配置,可以配置文件 /etc/postfix/main.cf。

例如为了增强安全性,需要把 SMTP 服务改为只允许本地使用,那么可以把 inet_interfaces = all 改成 inet_interfaces = loopback-only

 

改完之后,需要重启 postfix 服务:

systemctl restart postfix

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 即可。

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 一样要到处找源,要安装“野包”才能编译。