CentOS7安装PHP7

来源:互联网 发布:阿里云马来西亚大区 编辑:程序博客网 时间:2024/04/28 06:59

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

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 深圳限行如果车堵在路上怎么办 奔跑吧qq中奖我填写资料怎么办 微信之前绑定的手机号丢了怎么办 龙之谷手游换装备洗炼材料怎么办 小学生在班上碰到流氓同学怎么办 问道手游仓库密码忘了怎么办 问道手游安全码忘了怎么办 问道手游账号密码忘了怎么办 坐一天一夜长途车腰疼怎么办 智联的简历一直说不完整怎么办 智联招聘简历投错了怎么办 投简历的公司写错面试时怎么办 从原单位辞职后档案一直没提怎么办 手机因一些不良软件扣费怎么办 苹果手机玩崩坏3卡顿怎么办 以前很帅现在变得好难看了怎么办 偷了室友东西被发现了该怎么办 自己不喜欢狗但室友养狗怎么办 夏天身上闷热出很多小红豆怎么办? 海棠果核小孩吃进肚子了怎么办 大了叶海棠有点烂根怎么办? 刚栽的月季花苗叶子蔫了怎么办 对节白蜡盆景叶尖干枯发黑怎么办 婴儿皮肤被大人指甲划出血怎么办 三岁宝宝吃了铝箔包装纸怎么办 元宝鱼烂身子烂鳍尾巴怎么办 大掌门2多余的侠客令怎么办 vivo手机关机后开不了机怎么办 红米手机重置后开机黑屏怎么办 dnf夏日套光环选错了怎么办 ios6微信版本低登录不了怎么办 捡了一个苹果手机有id怎么办 外阴长了个包出血很痛怎么办 腿上烫成泡了泡泡破了掉皮了怎么办 脚上的脚气小泡泡破了怎么办 吃鸡使用改名卡改名符号怎么办 爱派平板电脑密码忘了怎么办 电脑优酷下载总显示未知错误怎么办 文本文档打开时显字符丢失怎么办 系统文件过大无法放进u盘怎么办 淘宝上买的密钥激活不了怎么办