sudo pacman -Syu
sudo pacman -S wget
#自己指定版本下载
wget http://php.net/distributions/php-7.1.23.tar.gz
tar xvf php-7.1.23.tar.gz
cd php-7.1.23
sudo pacman -S gcc make bison gawk re2c libxml2 libwebp freetype2 c-client libmcrypt libxslt
./configure --prefix=/opt/php --with-config-file-path=/opt/php/etc --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=http --with-fpm-group=http --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm
# 最后
make && sudo make install
如果出现 error: freetype-config not found.
错误
freetype-config脚本不再默认支持,而是替换成了pkg-config,用来管理CFLAGS和库。通过这些变更就知道,我们需要把php编译脚本中的freetype-config改成pkg-config。我们可以再configure中找到freetype-config,完成替换。
致命错误:ft2build.h:没有那个文件或目录
把/usr/include/freetype2/ft2build.h 复制到 php-7.1.23/ext/gd/
配置
sudo cp /opt/php-7.1.23/etc/php-fpm.conf.default /opt/php-7.1.23/etc/php-fpm.conf
sudo nano /opt/php-7.1.23/etc/php-fpm.d/www.conf
默认情况下,PHP-FPM在TCP套接字127.0.0.1:9000上侦听,二选一
listen = 127.0.0.1:9000
listen = /run/php-fpm/php7.0-fpm.sock
接下来,找到以下3行并取消注释。
listen.owner = http
listen.group = http
listen.mode = 0660
保存并关闭文件。接下来复制php.ini文件。
sudo cp ~/php-7.1.23/php.ini-production /opt/php-7.0.26/etc/php.ini
sudo nano /opt/php-7.1.23/etc/php.ini
修改php.ini 中的include_path
include_path = "/opt/php-7.0.26/lib/php"
添加service启动
sudo nano /etc/systemd/system/php7.1-fpm.service
内容如下
[Unit]
Description=The PHP FastCGI Process Manager
After=network.target
[Service]
Type=simple
PIDFile=/run/php-fpm/php7.1-fpm.pid
ExecStart=/opt/php-7.1.23/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.1.23/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
启动php-fpm
systemctl start php7.1-fpm