Centos7下安装php7

安裝php7

首先下载php7的依赖包和php7的包(源码包)

libmcrypt, mhash, mcrypt 二进的制源码包

一、创建php用户和用户组

  • 创建一个名叫php并且不能有登录权限的用户和一个php的用户组(我安装的软件都是放在mysoftware下的这样方便管理)
[root@localhost src]# useradd -r -g php -s /bin/false -d /usr/local/mysoftware/php7 -M php
[root@localhost src]# groupadd -r php

二、安装php所需要的依赖包

  • 编译安装libmcrypt-2.5.7
[root@localhost src]# tar -zxvf libmcrypt-2.5.7.tar.gz 
[root@localhost src]# cd libmcrypt-2.5.7/
[root@localhost libmcrypt-2.5.7]# ./configure --prefix=/usr/local/mysoftware/libmcrypt
[root@localhost libmcrypt-2.5.7]# make && make install
  • 编译安装mhash-0.9.9.9
[root@localhost src]# tar -zxvf mhash-0.9.9.9.tar.gz 
[root@localhost src]# cd mhash-0.9.9.9/
[root@localhost mhash-0.9.9.9]# ./configure --prefix=/usr/local/mysoftware/mhash
[root@localhost mhash-0.9.9.9]# make && make install
  • 编译安装mcrypt-2.6.8
[root@localhost src]# tar -zxvf mcrypt-2.6.8.tar.gz 
[root@localhost src]# cd ./mcrypt-2.6.8/
[root@localhost mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/mysoftware/libmcrypt/lib:/usr/local/mysoftware/mhash/lib
[root@localhost mcrypt-2.6.8]# export LDFLAGS="-L/usr/local/mysoftware/mhash/lib -I/usr/local/mysoftware/mhash/include/"
[root@localhost mcrypt-2.6.8]# export CFLAGS="-I/usr/local/mysoftware/mhash/include/"
[root@localhost mcrypt-2.6.8]# ./configure --prefix=/usr/local/mysoftware/mcrypt --with-libmcrypt-prefix=/usr/local/mysoftware/libmcrypt
[root@localhost mcrypt-2.6.8]#  make && make install
  • 安装剩下的依赖包
[root@localhost ~]# yum -y install curl-devel libjpeg-devel libpng-devel freetype-devel libxml2 libxml2-devel openssl openssl-devel

三、现在开始编译php7

  • 要先生成php的配置文件
[root@localhost src]# tar -zxvf php7.tar.gz 
[root@localhost src]# cd php-7.0.4/
[root@localhost php-7.0.4]# ./buildconf --force (生成对应的配置文件)
Forcing buildconf
Removing configure caches
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
rebuilding aclocal.m4
rebuilding configure
rebuilding main/php_config.h.in
[root@localhost php-7.0.4]# 
  • 安装编译php7
[root@localhost php-7.0.4]# ./configure \
 --prefix=/usr/local/mysoftware/php7 \
 --exec-prefix=/usr/local/mysoftware/php7 \
 --bindir=/usr/local/mysoftware/php7/bin \
 --sbindir=/usr/local/mysoftware/php7/sbin \
 --includedir=/usr/local/mysoftware/php7/include \
 --libdir=/usr/local/mysoftware/php7/lib/php \
 --mandir=/usr/local/mysoftware/php7/php/man \
 --with-config-file-path=/usr/local/mysoftware/php7/etc \
--with-config-file-path=/usr/local/mysoftware/php7/etc \           (PHP7的配置目录)
--with-mysql-sock=/var/run/mysql/mysql.sock \           
--with-mcrypt=/usr/include \
--with-mhash \
--with-openssl \
--with-mysql=shared,mysqlnd \                           (PHP7依赖mysql库)如果没有安装mysql可能报错            
--with-mysqli=shared,mysqlnd \                          (PHP7依赖mysql库)我也没有安装,我做了个数据库小集群
--with-pdo-mysql=shared,mysqlnd \                       (PHP7依赖mysql库)
--with-gd \
--with-iconv \
--with-zlib \
--enable-zip \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \                                         (PHP7FTP)
--enable-gd-native-ttf \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \                                      (允许php会话session)
--with-curl \                                           (允许curl扩展)
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache \                                      (使用opcache缓存)
--enable-fpm \
--with-fpm-user=apache \                                 (php-fpm的用户)
--with-fpm-group=apache \                                (php-fpm的用户组)
--without-gdbm \
--with-apxs2=/usr/local/mysoftware/apache24/bin/apxs    会在我安装的Apache那里生成apxs文件   
--with-mcrypt=/usr/local/mysoftware/libmcrypt \            [指定libmcrypt位置]
--disable-fileinfo
fastcgi可以不用开,php7是默认开启的!
  • 配置的运行结果
    这里写图片描述

  • 编译php7吧

[root@localhost php-7.0.4]# make && make install
  • PHP 7编译安装成功啦!!
    这里写图片描述

四、编译成功后到PHP7安装目录查看

php和MySQL通信必须要有两个动态库,到PHP7安装后的lib扩展库目录查看

[root@localhost ~]cd /usr/local/mysoftware/php7/lib/php/extensions/no-debug-non-zts-20151012/

这里写图片描述
确保至少有mysqli.so、pdo_mysql.so这两个动态库文件

五、开始设置PHP7的配置文件php.ini、php-fpm.conf、www.conf和php-fpm脚本

  • 也可以吧编译后的配置文件复制到PHP7的对应配置目录
我的所以文件包都放在/home/src/目录下的
[root@localhost php-7.0.4]# cp php.ini-production /usr/local/mysoftware/php7/etc/php.ini
[root@localhost php-7.0.4]# cp /home/src/php-7.0.4/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-7.0.4]# cp /usr/local/mysoftware/php7/etc/php-fpm.conf.default /usr/local/mysoftware/php7/etc/php-fpm.conf
[root@localhost php-7.0.4]# cp /usr/local/mysoftware/php7/etc/php-fpm.d/www.conf.default /usr/local/mysoftware/php7/etc/php-fpm.d/www.conf
  • 1 配置php.ini
expose_php = Off [避免PHP信息暴露在http头中--建议在生产环境时候再关闭,开发环境还是开启]


display_errors = Off [防止暴露php调用mysql的错误信息-建议在生产环境时候再关闭,开发环境还是开启]


log_errors = On [关闭display_errors后开启PHP错误日志(路径在php-fpm.conf中配置)-建议在生产环境时候再关闭,开发环境还是开启]

设置PHP的扩展库路径
extension_dir = "/usr/local/mysoftware/php7/lib/php/extensions/no-debug-non-zts-20151012/"

######设置PHP的opcache和mysql动态库
zend_extension=opcache.so[一定要看php扩展库有没有生成对应的so文件,如果没有这里添加了,会报错]
extension=mysqli.so
extension=pdo_mysql.so

date.timezone = PRC  [设置PHP的时区]

######开启opcache
[opcache]
Determines if Zend OPCache is enabled
opcache.enable=1

######设置PHP脚本允许访问的目录(需要根据自己安装的实际情况配置)
;open_basedir = /usr/share/nginx/html;
  • 2 配置php-fpm.conf

php-fpm.conf是php-fpm进程服务的配置文件

######设置错误日志的路径
error_log = /var/log/php-fpm/error.log
######引入www.conf文件中的配置
include=/usr/local/mysoftware/php7/etc/php-fpm.d/*.conf

六、设置PHP开机启动

[root@localhost ~]# chmod +x /etc/init.d/php-fpm
[root@localhost ~]# chkconfig --add php-fpm
[root@localhost ~]# chkconfig php-fpm on
[root@localhost ~]# php-fpm -t
[26-May-2017 15:29:38] NOTICE: configuration file /usr/local/mysoftware/php7/etc/php-fpm.conf test is successful

七、开启php

[root@localhost home]# /usr/local/mysoftware/php7/sbin/php-fpm
[root@localhost home]# ps -aux|grep php-fpm
root       5832  0.0  0.3 217984  6652 ?        Ss   15:47   0:00 php-fpm: master process (/usr/local/mysoftware/php7/etc/php-fpm.conf)
apache     5833  0.0  0.3 220068  6560 ?        S    15:47   0:00 php-fpm: pool www
apache     5834  0.0  0.3 220068  6560 ?        S    15:47   0:00 php-fpm: pool www
root       5836  0.0  0.0 112664   972 pts/1    R+   15:47   0:00 grep --color=auto php-fpm
[root@localhost home]# php -v  查看php版本
PHP 7.0.4 (cli) (built: May 12 2017 17:22:03) ( ZTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
[root@localhost home]# 

猜你喜欢

转载自blog.csdn.net/post_mans/article/details/72764905