CentOS7安装PHP7

CentOS7安装PHP7

CentOS版本:CentOS-7-x86_64-Minimal-1611.iso

下载地址:

http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso

测试的时候先关闭所有服务器的防火墙(IPTABLES)与 selinux

# vi /etc/selinux/config   #(改为SELINUX=disabled)保存退出

# systemctl stop firewalld.service && systemctl disable firewalld.service && init 6

 

# mkdir -p /data/software && cd/data/software && yum install -y net-tools wget

先修改yum源:

# cd /etc/yum.repos.d  &&  mv CentOS-Base.repo CentOS-Base.repo.backup

# wget -c http://mirrors.163.com/.help/CentOS7-Base-163.repo

# mv CentOS7-Base-163.repo  CentOS-Base.repo

# yum clean all && yum makecache

 

# cd /data/software && yum -yinstall wget gcc gcc-c++ libxml2 libxml2-devel libpng-devel  libjpeg-develfreetype-devel  libmcrypt libmcrypt-develmcrypt mhash curl-devel openssl openssl-devel unzip zip

# cd /data/software && wget -c http://www.ijg.org/files/jpegsrc.v9b.tar.gz  &&  tar -zxvf  jpegsrc.v9b.tar.gz  && cd jpeg-9b &&  ./configure --prefix=/usr/local/jpeg-9b  && make  &&  make install

# cd /data/software &&  wget -c http://ftp.twaren.net/Unix/NonGNU//freetype/freetype-2.8.tar.gz&& tar -zxvf freetype-2.8.tar.gz &&  cd freetype-2.8  && ./configure --prefix=/usr/local/freetype&&  make &&  make install

# cd /data/software && wget -c http://cn2.php.net/distributions/php-7.1.11.tar.gz&& tar -zxvf php-7.1.11.tar.gz && cd php-7.1.11

我在运行./configure后出现下面的错误,解决方法:

# vi /data/software/php-7.1.11/Makefile

在EXTRA_LIBS =   的最后面加上:-lcrypto    如下图,然后再make clean&&  make && make install

 

由于make后出现下面错误:

因此我编译时去掉--with-openssl 同时加了:--disable-ssl

# ./configure  --with-gettext --enable-fpm --enable-opcache--enable-mbstring --enable-bcmath --enable-sockets --with-gd  --with-config-file-path=/etc --with-mysqli=mysqlnd--disable-fileinfo --with-freetype-dir=/usr/local/freetype --with-curl --with-zlib--disable-ipv6  --disable-debug --disable-ssl--with-png-dir --with-jpeg-dir=/usr/local/jpeg-9b --enable-zip   &&  make && make install

 

安装openssl扩展:

# cd /data/software/php-7.1.11/ext/openssl &&mv config0.m4 config.m4 && /usr/local/bin/phpize  && ./configure  --with-php-config=/usr/local/bin/php-config  && make && make install

 

下面安装gd图形图像库的扩展

# cd /data/software/php-7.1.11/ext/gd  && /usr/local/bin/phpize  && ./configure --with-php-config=/usr/local/bin/php-config  --with-jpeg-dir=/usr/local/jpeg-9b--with-png-dir=/usr/local --with-freetype-dir=/usr/local/freetype   && make && make install

下面安装mysqli的扩展

# cd /data/software/php-7.1.11/ext/mysqli  && /usr/local/bin/phpize && ./configure --with-php-config=/usr/local/bin/php-config --with-mysqli=mysqlnd &&  make&& make install

安装php-redis扩展到php

进入下载页面:https://github.com/phpredis/phpredis

把下载的phpredis-master.zip上传到/data/software目录下

# cd /data/software && wget -c https://codeload.github.com/phpredis/phpredis/zip/develop  && unzip develop && cd phpredis-develop  && /usr/local/bin/phpize  && ./configure --with-php-config=/usr/local/bin/php-config  && make && make install

 

下面安装pdo_mysql扩展(如果是thinkphp框架的话一般都要用到这个扩展)

# cd /data/software/php-7.1.11/ext/pdo_mysql&& /usr/local/bin/phpize &&  ./configure --with-php-config=/usr/local/bin/php-config  &&  make &&  makeinstall

 

下面安装mcrypt加密扩展

# cd /data/software/php-7.1.11/ext/mcrypt  && /usr/local/bin/phpize &&  ./configure --with-php-config=/usr/local/bin/php-config  && make &&  make install

 

下面安装ftp扩展

# cd /data/software/php-7.1.11/ext/ftp&& /usr/local/bin/phpize &&  ./configure --with-php-config=/usr/local/bin/php-config  && make &&  make install

 

# cd /data/software/php-7.1.11/ext/sockets&& /usr/local/bin/phpize && ./configure  --prefix=/usr/local/php/lib --with-php-config=/usr/local/bin/php-config  --enable-sockets   && make && make install

 

# cd /data/software/php-7.1.11/ext/opcache &&/usr/local/bin/phpize  &&  ./configure--with-php-config=/usr/local/bin/php-config -enable-opcache  &&  make && make install

在php.ini中加入:

; 开关打开

opcache.enable=1

zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20160303/opcache.so

; 可用内存, 酌情而定, 单位 megabytes

opcache.memory_consumption=128

; interned string 的内存大小, 也可调

opcache.interned_strings_buffer=8

; 最大缓存的文件数目, 命中率不到 100% 的话, 可以试着提高这个值

opcache.max_accelerated_files=4000

; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 单位为秒

opcache.revalidate_freq=60

; 是否快速关闭, 打开后在PHP Request Shutdown的时候回收内存的速度会提高

opcache.fast_shutdown=1

opcache.enable_cli=1

 

下面进入php扩展目录:

# cd  /usr/local/lib/php/extensions/no-debug-non-zts-20160303/  &&  ll

#  cd/data/software/php-7.1.11 &&  cp  php.ini-production  /etc/php.ini

覆盖php.ini的系统默认路径(这时要指定编译路径:--with-config-file-path=/etc)

# cp  php.ini-production  /etc/php.ini

# vi /etc/php.ini

extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20160303/"

extension = "/usr/local/lib/php/extensions/no-debug-non-zts-20160303/redis.so"

extension = "/usr/local/lib/php/extensions/no-debug-non-zts-20160303/ftp.so"

extension = "/usr/local/lib/php/extensions/no-debug-non-zts-20160303/pdo_mysql.so"

extension = "/usr/local/lib/php/extensions/no-debug-non-zts-20160303/openssl.so"

 

 

 

然后再重启php-fpm:   service php-fpmrestart

查看phpinfo()如下则安装成功:

 

 

# cp /usr/local/etc/php-fpm.conf.default  /usr/local/etc/php-fpm.conf  && cp  ./sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm  && chmod a+x /etc/init.d/php-fpm &&  chkconfig  --add  /etc/init.d/php-fpm  && chkconfig  --add  /etc/init.d/php-fpm    &&  cd /etc/init.d  &&  chkconfig php-fpm on   &&  chkconfig php-fpm on

创建用户组和用户:

# groupadd -f www && useradd -g www www

启动服务器时出现下面错误:

根据上面的提示修改:

把上面红色的改为下面红色的:

# cd /usr/local/etc/php-fpm.d  && mv www.conf.default  php-fpm.conf  &&  vi php-fpm.conf

 

把上面的nobody用户尽量改为和nginx中运行的用户相同(这里都改为:www)

 

在/usr/local/etc/php-fpm.d/php-fpm.conf中你可以找到以下参数:

pm.max_children:static模式下创建的子进程数或dynamic模式下同一时刻允许最大的php-fpm子进程数量。 
pm.max_requests:php-fpm子进程能处理的最大请求数(在实际环境中这个稍微配大点)。 
pm.start_servers:动态方式下的起始php-fpm进程数量。 
pm.min_spare_servers:动态方式下服务器空闲时最小php-fpm进程数量。 
pm.max_spare_servers:动态方式下服务器空闲时最大php-fpm进程数量。

如果dm设置为 static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
如果dm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效,系统会在php-fpm运行开始的时候启动pm.start_servers个php-fpm进程,然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数

 

 

# /etc/init.d/php-fpm start    或者   service php-fpm restart

# netstat -tunlp |grep 9000

下面把php加入到系统全局变量中

# cd && vi .bashrc

exportPATH=/usr/local/bin:$PATH

# source  .bashrc &&  php -v  && php -m

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值