centos 7 编译安装 php-7.1.3的步骤
在官网下载php-7.1.3的php压缩包,centos 7 安装 php-7.1.3的步骤,http://cn2.php.net/distributions/php-7.1.3.tar.gz
bash
- wget -c http://cn2.php.net/distributions/php-7.1.3.tar.gz
下载好后解压 php-7.1.3.tar.gz 压缩包,并进入解压后的目录
bash
- tar -xzvf php-7.1.3.tar.gz
- cd php-7.1.3
安装php7需要的一些依赖库包 libxml2和一些其他依赖的扩展库
bash
- yum -y install libxml2
- yum -y install libxml2-devel
- yum -y install openssl
- yum -y install openssl-devel
- yum -y install curl-devel
- yum -y install libjpeg-devel
- yum -y install libpng-devel
- yum -y install freetype-devel
- yum -y install bzip2-devel
- yum -y install libmcrypt libmcrypt-devel
- yum -y install postgresql-devel
- yum -y install aspell-devel
- yum -y install readline-devel
- yum -y install libxslt-devel
- yum -y install net-snmp-devel
- yum -y install unixODBC-devel
- yum -y install libicu-devel
- yum -y install libc-client-devel
- yum -y install libXpm-devel
- yum -y install libvpx-devel
- yum -y install enchant-devel
- yum -y install openldap
- yum -y install openldap-devel
- yum -y install db4-devel
- yum -y install gmp-devel
- yum -y install sqlite-devel
- yum -y install mysql-devel
安装前的环境配置检查,php7的一些依赖包的检查和php扩展的启动,这个过程如果缺少php依赖的库包会有报错提示。
添加用户和组 groupadd -r www && useradd -r -g www -s /sbin/nologin
bash
- ./configure
- --prefix=/usr/local/php
- --with-config-file-path=/usr/local/php/etc
- --enable-fpm
- --with-fpm-user=www
- --with-fpm-group=www
- --enable-inline-optimization
- --disable-debug
- --disable-rpath
- --enable-shared
- --enable-soap
- --with-xmlrpc
- --with-openssl
- --with-mcrypt
- --with-pcre-regex
- --with-sqlite3
- --with-zlib
- --enable-bcmath
- --with-iconv
- --with-bz2
- --enable-calendar
- --with-curl
- --with-cdb
- --enable-dom
- --enable-exif
- --enable-fileinfo
- --enable-filter
- --with-pcre-dir
- --enable-ftp
- --with-gd
- --with-openssl-dir
- --with-jpeg-dir
- --with-png-dir
- --with-freetype-dir
- --enable-gd-native-ttf
- --enable-gd-jis-conv
- --with-gettext
- --with-gmp
- --with-mhash
- --enable-json
- --enable-mbstring
- --enable-mbregex
- --enable-mbregex-backtrack
- --with-libmbfl
- --with-onig
- --enable-pdo
- --with-mysqli=mysqlnd
- --with-pdo-mysql=mysqlnd
- --with-zlib-dir
- --with-pdo-sqlite
- --with-readline
- --enable-session
- --enable-shmop
- --enable-simplexml
- --enable-sockets
- --enable-sysvmsg
- --enable-sysvsem
- --enable-sysvshm
- --enable-wddx
- --with-libxml-dir
- --with-xsl
- --enable-zip
- --enable-mysqlnd-compression-support
- --with-pear
- --enable-opcache
对php7进行编译和安装的操作
bash
- make && make install
( 如果出现 make: *** [sapi/cli/php] Error 1 的错误,通过继续执行 make ZEND_EXTRA_LIBS='-liconv' 命令解决
编译成功,查看php版本
bash
- /usr/local/php/bin/php -v
运行php-fpm
bash
- /usr/local/php/sbin/php-fpm
启动php-fpm可能会遇到的错误,基本都是配置文件配置和重命名的问题:
错误一:缺少www.conf配置文件(WARNING: Nothing matches the include pattern /usr/local/php/etc/php-fpm.d/*.conf),需要把/usr/local/php/etc/php-fpm.d/*.conf目录中的www.conf.default重名名为www.conf。
错误二:缺少php-fpm.conf配置文件 需要在/usr/local/php/etc/php-fpm.conf 把默认的配置文件php-fpm.conf.default改成php-fpm.conf
错误三:缺少php.ini配置文件 php7编译安装好后会发现没有php.ini配置文件,需要在解压包的根目录中复制php.ini-production或php.ini-development并重命名为php.ini到php编译好的安装目录中的/usr/local/php/etc文件夹即可。
centos 7.2 添加php7 的 php-fpm 开机启动
在centos7中编译安装好php后,系统重启后并不会对php进行开机启动,所以需要对centos7添加开机启动脚本对php进行开机启动服务。
手动启动:
bash
- /usr/local/php/sbin/php-fpm
开机自动启动:
开启配置php-fpm pid
bash
- #找到php-fpm.conf配置文件
- /usr/local/php/etc/php-fpm.conf
- #开启pid ,去掉分号注释
- pid = run/php-fpm.pid
创建开机启动脚本
bash
- vim /etc/init.d/php-fpm #编辑 i
bash
- #开机启动脚本,脚本代码来自网络,实测有效
- #! /bin/sh
- # Comments to support chkconfig on CentOS
- set -e
- PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
- DESC="php-fpm daemon"
- NAME=php-fpm
- DAEMON=/usr/local/php/sbin/$NAME
- CONFIGFILE=/usr/local/php/etc/php-fpm.conf
- PIDFILE=/usr/local/php/var/run/$NAME.pid
- SCRIPTNAME=/etc/init.d/$NAME
- # Gracefully exit if the package has been removed.
- test -x $DAEMON || exit 0
- d_start() {
- $DAEMON -y $CONFIGFILE || echo -n " already running"
- }
- d_stop() {
- kill -QUIT `cat $PIDFILE` || echo -n " not running"
- }
- d_reload() {
- kill -HUP `cat $PIDFILE` || echo -n " can't reload"
- }
- case "$1" in
- start)
- echo -n "Starting $DESC is success"
- d_start
- echo "."
- ;;
- stop)
- echo -n "Stopping $DESC is success"
- d_stop
- echo "."
- ;;
- reload)
- echo -n "Reloading $DESC configuration..."
- d_reload
- echo "reloaded."
- ;;
- restart)
- echo -n "Restarting $DESC is success"
- d_stop
- sleep 1
- d_start
- echo "."
- ;;
- *)
- echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
- exit 3
- ;;
- esac
对开机启动脚本添加所有人都执行的权限
bash
- chmod a+x /etc/init.d/php-fpm
php-fpm加入开机启动服务
bash
- chkconfig php-fpm on
查看开机启动的所有服务
bash
- chkconfig --list
服务操作
bash
- #启动服务
- service php-fpm start
- #停止服务
- service php-fpm stop
- #重启服务
- service php-fpm reload