linux 编译安装php

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