编译安装php7

1、准备php安装环境

1.1、彻底卸载旧版php

rpm -qa | grep php
rpm -e php-fpm-5.3.3-22.el6.x86_64
rpm-e php-pdo-5.3.3-22.el6.x86_64
rpm -e php-pear-1.9.4-4.el6.noarch
rpm-e php-cli-5.3.3-22.el6.x86_64
rpm -e php-5.3.3-22.el6.x86_64
rpm-e php-xml-5.3.3-22.el6.x86_64
rpm -e php-gd-5.3.3-22.el6.x86_64
rpm-e php-common-5.3.3-22.el6.x86_64

1.2、编译安装pcre、zlib、openssl、curl、libmcrypt、bzip2、openldap、icu等依赖的最新版本

其中ldap需要依赖openssl-devel

curl:

./configure --prefix=/opt/curl-7.50.1 --with-nghttp2 --with-ssl=/opt/openssl-1.0.2h/ --enable-imap --enable-stmp --enable-pop3 --enable-http --enable-ftp --enable-file --enable-ldap --enable-ldaps --enable-ipv6 --enable-libgcc
make
make install

bzip2:

make -f  Makefile-libbz2_so
make
make install

icu4c:

./configure --enable-strict --enable-64bit-libs --enable-shared --enable-static --enable-auto-cleanup --enable-draft --enable-renaming --enable-tracing --enable-plugins --disable-dyload --enable-rpath --enable-weak-threads --enable-extras --enable-icuio --enable-layout --enable-layoutex
make
make install

2、安装php

2.1、配置php

./configure --prefix=/opt/php7/ --with-pcre-regex=/opt/pcre-8.39/ --with-pcre-dir=/opt/pcre-8.39/ --with-openssl-dir=/opt/openssl-1.0.2h/ --with-openssl=/opt/openssl-1.0.2h/ --with-zlib-dir=/opt/zlib-1.2.8/ --with-zlib=/opt/zlib-1.2.8/ --with-curl=/opt/curl-7.50.1/ --with-mcrypt=/opt/libmcrypt-2.5.7/ --with-bz2 --with-ldap=/opt/openldap-2.4.30/ --with-gd --with-pdo-mysql=shared,mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-gettext --with-iconv-dir --with-kerberos --with-libxml-dir --with-mhash --with-zlib-dir --without-pdo-sqlite --with-pear --with-xmlrpc --with-xsl --enable-opcache --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-zip --enable-ftp --enable-fpm --enable-mbstring --enable-gd-native-ttf --enable-gd-jis-conv --enable-calendar --enable-fpm --enable-pcntl --enable-shmop --enable-exif --enable-pcntl --enable-wddx --enable-intl --enable-libgcc

部分配置参数说明:http://php.net/manual/zh/configure.about.php

由于自5.3版本以来的大量特征修改,增删许多核心配置,具体内容可通过configure --help查阅

配置完成后,可见

2.2、安装

make
make test
make install

编译完成后,可见

测试完成后,可见

在不同系统环境中,bug数量不相同,failed也不可避免。随着版本逐渐完善,理论上failed会越来越少,但是核心组更原意在新特性和补丁中制造bug

3、配置运行环境

3.1、配置文件位置

cp /opt/php7/etc/php-fpm.d/www.conf.default /opt/php7/etc/php-fpm.d/www.conf
cp /opt/php7/etc/php-fpm.conf.default /opt/php7/etc/php-fpm.conf
cp /root/php-7.0.10/php.ini-development /opt/php7/lib/php.ini
cp /root/php-7.0.10/php.ini-development /opt/php7/lib/php.ini-development
cp /root/php-7.0.10/php.ini-production /opt/php7/lib/php.ini-production

3.2、配置php.ini,开启pdo和opcache

在php.ini中加入

extension=/opt/php7/lib/php/extensions/no-debug-non-zts-20151012/pdo_mysql.so
zend_extension=/opt/php7/lib/php/extensions/no-debug-non-zts-20151012/opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.max_wasted_percentage=10
opcache.use_cwd=0
opcache.validate_timestamps=1
opcache.revalidate_freq=60
opcache.save_comments=0
opcache.load_comments=0
opcache.fast_shutdown=1
opcache.optimization_level=0xffffffff
opcache.inherited_hack=1
opcache.force_restart_timeout=300
opcache.error_log=opcache_error_log
opcache.log_verbosity_level=1

opcache配置说明:http://php.net/manual/zh/book.opcache.php

3.3、配置php-fpm.conf,开启status查询

echo "[www]">>/opt/php7/etc/php-fpm.conf
echo "pm.status_path = /phpfpm_status">>/opt/php7/etc/php-fpm.conf

3.4、配置nginx

在/opt/nginx-1.10.1/conf/nginx.conf中location /{}代码块下方加入

location ~* \.php$ {
        root            /www;
        fastcgi_index   index.php;
        fastcgi_pass    127.0.0.1:9000;
        include         fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param   SCRIPT_NAME     $fastcgi_script_name;
}

location /phpfpm_status {
        fastcgi_pass    127.0.0.1:9000;
        include         fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME $fastcgi_script_name;
}

3.5、将php-fpm加入开机启动项

echo "/opt/php7/sbin/php-fpm">> /etc/rc.local

3.5、启动php-fpm,重启nginx

/opt/php7/sbin/php-fpm
/opt/nginx-1.10.1/sbin/nginx -s reload

3.6、测试

在/www目录下加入phpinfo.php文件

phpinfo.php:

<?php
echo phpinfo();
?>

status详解:

pool:php-fpm池的名称,一般都是应该是www
process manage:进程的管理方法,php-fpm支持三种管理方法,分别是static,dynamic和ondemand,一般情况下都是dynamic
start time:php-fpm启动时候的时间,不管是restart或者reload都会更新这里的时间
start since:php-fpm自启动起来经过的时间,默认为秒
accepted conn:当前接收的连接数
listen queue:在队列中等待连接的请求个数,如果这个数字为非0,那么最好增加进程的fpm个数
max listen queue:从fpm启动以来,在队列中等待连接请求的最大值
listen queue len:等待连接的套接字队列大小
idle processes:空闲的进程个数
active processes:活动的进程个数
total processes:总共的进程个数
max active processes:从fpm启动以来,活动进程的最大个数,如果这个值小于当前的max_children,可以调小此值
max children reached:当pm尝试启动更多的进程,却因为max_children的限制,没有启动更多进程的次数。如果这个值非0,那么可以适当增加fpm的进程数
slow requests:慢请求的次数,一般如果这个值未非0,那么可能会有慢的php进程,一般一个不好的mysql查询是最大的祸首。
pid:进程PID,可以单独kill这个进程.
state:当前进程的状态 (Idle, Running, …)
start time:进程启动的日期
start since:当前进程运行时长
requests:当前进程处理了多少个请求
request duration:请求时长(微妙)
request method:请求方法 (GET, POST, …)
request URI:请求URI
content length:请求内容长度 (仅用于 POST)
user:用户 (PHP_AUTH_USER) (or ‘-’ 如果没设置)
script:PHP脚本 (or ‘-’ if not set)
last request cpu:最后一个请求CPU使用率。
last request memorythe:上一个请求使用的内存

参考资料:

http://php.net/manual/zh/install.php

https://typecodes.com/web/centos7compilephp7.html

时间: 2024-10-03 06:48:36

编译安装php7的相关文章

编译安装PHP7并安装Redis扩展Swoole扩展

在编译php7的机器上已经有编译安装过php5.3以上的版本,从而依赖库都有了 本php7是编译成fpm-php 使用的, 如果是apache那么编译参数应该为 1 --with-apxs2=/usr/local/apache/bin/apxs 编译安装php7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 4

Centos6.8源码编译安装PHP7

一.下载源码包 打开php官网http://php.net/点击导航栏的Downloads进入下载页面:http://php.net/downloads.php下载想要安装的版本,这里下载最新版的php-7.1.8 的源码包. 下载环境源码包wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz   可以选择版本,这里下载最新版libiconv-1.15.tar.gz 二.解压源码包并安装环境包 1 tar zxvf libi

CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法

这篇文章主要介绍了CentOS 7.2 mini版本下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下一.安装前的准备工作 1.yum update #更新系统 2.yum install gcc gcc-c++ autoconf automake cmake bison m4 libxml2 libxml2-devel libcurl-devel libjpeg-devel libpng-devel libicu

Linux Centos7.2 编译安装PHP7.0.2

操作环境: 1.系统:Centos7.2 2.服务:Nginx 1.下载PHP7.0.2的安装包解压,编译,安装: $ cd /usr/src/ $ wget http://cn2.php.net/distributions/php-7.0.2.tar.gz $ tar -zxvf php-7.0.2.tar.gz $ cd php-7.0.2 1.1 编译前检查 请检查是否安装了gcc ,没有的话执行yum install gcc 检查是否安装了libxml2 ,没有的话执行yum insta

centos 6.5下编译安装php-7.1.6和 php memcached扩展

0,安装 php-7.1.6 依赖包 # yum groupinstall "Development tools" "Desktop Platform Development" # yum -y install openssl-devel libcurl-devel libmcrypt libmcrypt-devel bzip2-devel 1,编译安装php 7.1.6 ## 如果需要加入 pgsql扩展 ,则必须先安装好 postgresql # wget ht

CentOS 7.1编译安装PHP7

原文: https://typecodes.com/web/centos7compilephp7.html?utm_source=tuicool&utm_medium=referral 1 创建php用户和用户组,并在github下载php7源码 首先创建一个名为php且没有登录权限的用户和一个名为php的用户组,然后去GitHub下载php7源码包. #######新建php用户和php组 [[email protected] ~]# groupadd -r php && use

centos编译安装php7

环境说明 VMware 12 中搭建的CentOS 7 x64 4核 2G内存 环境中已经安装了http://blog.csdn.net/u014595668/article/details/50166277 中编译安装的MySQL5.7.9 工具下载 编译环境:libmcrypt2.5.7下载.mhash-0.9.9.9下载.mcrypt-2.6.8下载 PHP安装包:php 7下载 用xftp把所有的工具上传到/root/目录中 创建php用户和用户组 首先创建一个名为php且没有登录权限的

linux编译安装php7

1.首先下载php7 使用wget命令下载 wget http://cn2.php.net/distributions/php-7.0.12.tar.bz2 2.然后解压 tar -xvf php-7.0.12.tar.bz2 3.然后安装依赖库 sudo apt-get update sudo apt-get install libxml2-dev sudo apt-get  install  build-essential sudo apt-get install openssl sudo

CentOS 6.7编译安装PHP7

1.首先配置好编译环境 yum update && yum upgrade yum groupinstall "Development Tools" yum install gcc gcc-c++ pcre* openssl* gd-devel* zlib-devel pcre-devel libxml2-devel curl-devel 下载安装libmcrypt 地址:http://sourceforge.net/projects/mcrypt/files/Libm