文档章节

编译安装PHP7

 小田天
发布于 2016/11/17 11:12
字数 1096
阅读 10
收藏 0
点赞 0
评论 0
#按需求自行删减
cc gcc-c++ make cmake automake autoconf gd file bison patch mlocate flex 
diffutils zlib zlib-devel pcre pcre-devel 
libjpeg libjpeg-devel libpng libpng-devel libxml2 libxml2-devel
freetype freetype-devel  
glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel 
ncurses ncurses-devel 
curl curl-devel libcurl libcurl-devel 
e2fsprogs e2fsprogs-devel 
krb5 krb5-devel 
openssl openssl-devel openldap openldap-devel openldap-clients 
openldap-servers openldap-devellibxslt-devel nss_ldap
kernel-devel libtool-libs 
readline-devel gettext-devel libcap-devel
php-mcrypt libmcrypt libmcrypt-devel recode-devel 
icu gmp-devel libxslt libxslt-devel

yum install -y gcc gcc-c++ make cmake automake autoconf gd file bison patch mlocate flex diffutils zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel libcurl libcurl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers openldap-devellibxslt-devel kernel-devel libtool-libs readline-devel gettext-devel libcap-devel php-mcrypt libmcrypt libmcrypt-devel recode-devel gmp-devel icu libxslt libxslt-devel

2)安装 libmcrypt mhash mcrypt

注:mcrypt依赖前两者

wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz"
wget "http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz"
wget "https://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz"

注:configure: error: * libmcrypt was not found

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

或者
ldconfig

3)编译安装PHP7

说明:PHP7 移除了已经被废弃的函数,如 mysql_ 系列函数在 PHP5.5 被废弃,在 PHP7被删除,并且 php-fpm 也已经被 php 纳入,直接在选项中开启即可,--enable-cgi 是默认配置且 --enable-fast-cgi 已经被废除,--enable-cgi 即可让 fpm 模式调用。

ladp在64的系统里可能存在写库关联问题,执行下面的命令
cp -frp /usr/lib64/libldap* /usr/lib/

#部分配置释义
./configure \--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mcrypt \                               # mcrypt 加密算法
--with-mhash \                                # mhash 加密算法
--with-mysqli=mysqlnd \                       # 推荐使用 mysqlnd 驱动 mysql已被废弃
--with-pdo-mysql=mysqlnd \                    # 推荐使用 mysqlnd 驱动 mysql已被废弃
--with-gd \                                   # gd库
--with-iconv \
--with-zlib \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--with-apxs2=/usr/bin/apxs \                  # 让 php 直接编译到 apache 的模块中去
--with-apache=/etc/httpd \                    # 静态编译apache的模块 编译完后去httpd.conf中加载so
--with-openssl \
--with-xmlrpc \
--with-bz2 \
--with-gettext \                               # 多语言应用开发
--with-readline \                             # readline只能在linux下win使stream_get_line
--with-recode \
--with-ldap \                                   # 目录协议
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-fpm \                                  # php-fpm 进程管理器
--enable-cgi \                                  # 默认开启php的cgi sapi  
--enable-xml \
--enable-bcmath \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--enable-pcntl \                                #pcntl 多进程扩展模块
--enable-sockets \
--enable-sysvmsg \                              #消息队列
--enable-sysvshm \                              #内存共享模块 linux 
--enable-shmop \                                #内存共享模块 linux/windows
--enable-zip \
--enable-soap \
--enable-session \
--enable-opcache \                              # opcache 缓存优化
--enable-cli                                    # cli 其实默认就是开启的 若禁用同时要
--without-pear

编译参数

./configure --prefix=/usr/local/php \
--with-mysql-sock \
--with-mysqli \
--with-libxml-dir \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-zlib \
--with-iconv \
--with-bz2 \
--with-curl \
--with-cdb \
--with-pcre-dir \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--with-gettext \
--with-gmp \
--with-mhash \
--with-libmbfl \
--with-onig \
--with-pdo-mysql \
--with-zlib-dir \
--with-readline \
--with-libxml-dir \
--with-xsl \
--with-pear \
--enable-fpm  \
--enable-soap \
--enable-bcmath \
--enable-calendar \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--enable-ftp \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--enable-pdo \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--enable-zip \
--enable-mysqlnd-compression-support \
--enable-intl
  • --enable-cgi --disable-cgi :
    在5.3.0后 enable-cgi 等同于--enable-fastcgi 也就是说此后不需要在额外声明 --enable-fastcgi,且 --enable-force-cgi-redirect 也默认有效且被废弃在编译选项中,要禁用需修改php.ini的cgi.force_redirect为0

  • --with-apxs2 --with-apache:
    --with-apxs2是直接把php编译到apache的模块中去 --with-apache是置顶apache的serverRoot路径,生成apache的php模块 修改apache配置文件手动加载:
    AddType application/x-httpd-php .php .html .htm

  • php7.0废除了--with-mysql编译选项,且推荐使用mysqlnd驱动

  • -bash: --with-openssl: command not found:
    which openssl 查看目录 添加环境变量
    export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

4)php-fpm 服务脚本

#! /bin/sh
# Comments to support chkconfig on CentOS
# chkconfig: 2345 65 37
#
set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="php-fpm daemon"
NAME=php-fpm

#php-fpm命令的路径
DAEMON=/usr/local/php/sbin/$NAME

#php-fpm的配置文件
CONFIGFILE=/usr/local/php/etc/php-fpm.conf

#php-fpm的pid文件
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

内置php-fpm

cd /usr/local/php7/etc
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf

#进入源码安装包目录
cd /data/php-7.0.11

#copy php配置文件 得到php.ini 配置这里不作说明      
cp php.ini-production /usr/local/php/etc/php.ini  
cd sapi/fpm              #进到源码包里的sapi/fpm目录
cp init.d.php-fpm /etc/init.d/php-fpm      #copy cgi管理器 得到php-fpm
chmod +x /etc/init.d/php-fpm               #附上可执行权限
chkconfig --add php-fpm                    #加入开机启动项
chkconfig php-fpm on
service php-fpm start                      #启动php-fpm
ps -ef | grep php-fpm                      #查看php-fpm启动状态

测试

vi /var/www/html/index.php
<?php
$con = new mysqli('127.0.0.1', 'root', '123456', '', 3306);
$res = $con->query('show databases;');
var_dump($res->fetch_assoc());
?>
/usr/local/php/sbin/php-fpm -v
PHP 7.0.11 (fpm-fcgi) (built: Aug 27 2016 20:46:44)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

service php-fpm start 启动

本文转载自:https://getyii.com/topic/513

共有 人打赏支持
粉丝 0
博文 79
码字总数 49841
作品 0
怀化
编译安装PHP7并安装Redis扩展Swoole扩展

编译安装PHP7并安装Redis扩展Swoole扩展 在编译php7的机器上已经有编译安装过php5.3以上的版本,从而依赖库都有了 本php7是编译成fpm-php 使用的, 如果是apache那么编译参数应该为 --with-apx...

豆花饭烧土豆
2016/02/15
59
0
CentOS 7 编译安装PHP7

说明:非常感谢《2015博客升级记(五):CentOS 7.1编译安装PHP7》的博主vfhky 环境说明 VMware 12 中搭建的CentOS 7 x64 4核 2G内存 环境中已经安装了http://blog.csdn.net/u014595668/artic...

lizer2016
2015/12/05
0
0
Centos7 安装 PHP7最新版

Centos7 安装 PHP7最新版 PHP编译安装适合Centos6以及Centos7 一、简单安装 1.安装 rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm 2.安装PHP7的r......

baishuchao
2017/08/21
0
0
编译安装php7.0.7

系统环境 centos x64 安装编译工具 1、准备安装包列表 2、编译安装 libxml2 3、编译安装 libmcrypt 4、编译安装 freetype 5、编译安装 openssl 6、安装PHP 6、问题集锦 再次重复 5步骤...

蛋派
2016/06/22
61
0
php7.1源码包安装

安装php7 下载与解压 安装php 编译与编译安装 设置配置文件 两版本PHP冲突处理 如果安装了php5后又安装了php7,那么调用Apache调用只能用其中一个; 那么就需要修改配置文件 vim /usr/local...

若白衣
02/28
0
0
php扩展模块安装

PHP动态扩展模块 > 本节操作使用PHP7 查看php模块: 安装 Redis模块 > redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、s...

豆渣锅
2017/12/27
0
0
Linux 安装 php7 ([sapi/cli/php] Error 1)

http://weibo.com/p/1001603917384300815444 快速编译安装PHP7步骤: 第一步: 安装必要一些依赖 # yum install php-mcrypt libmcrypt libmcrypt-devel libxml2-devel openssl-devel libcurl......

waveer
2016/01/18
453
0
phpredis -- Redis编译安装,PHP 7 安装 Redis 扩展

安装 Redis Server redis的官方网站是:http://redis.io/ 目前的最新稳定版是 3.2版。 下载redis wget http://download.redis.io/releases/redis-3.2.3.tar.gztar xf redis-3.2.3.tar.gzcd ......

yangji008
2016/09/10
0
0
Gentoo安装php7

昨天php7正式发布了,今天发现Gentoo官方源里面已经有了php7的ebuild,于是安装尝试一下。安装过程如下: 1、解除php7的mask状态: echo "dev-lang/php" >> /etc/portage/package.unmask 2、...

石家庄清风
2015/12/03
155
0
xin.chu/nginx-php7-composer

nginx-php7-composer nginx php7 dockerfile 该镜像集成了nginx+php7+composer,脚本由supervisor进行管理, 可自由安装php扩展,可配置多nginx server,一条命令即可搭建完整环境 gitee地址:...

xin.chu
04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

keepalived配置高可用集群

Linux集群概述 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:...

TaoXu
6分钟前
0
0
mysql联表批处理操作

1 概述 mysql中的单表增删改查操作,可以说是基本中的基本. 实际工作中,常常会遇到一些基本用法难以处理的数据操作,譬如遇到主从表甚至多级关联表的情况(如一些历史问题数据的批量处理),考虑到...

社哥
9分钟前
0
0
IntelliJ IDEA 详细图解最常用的配置,适合刚刚用的新人。

刚刚使用IntelliJ IDEA 编辑器的时候,会有很多设置,会方便以后的开发,磨刀不误砍柴工。 比如:设置文件字体大小,代码自动完成提示,版本管理,本地代码历史,自动导入包,修改注释,修改...

kim_o
24分钟前
0
0
Google Java编程风格指南

目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合...

niithub
26分钟前
0
0
java.net.MalformedURLException异常说明

1.异常片段 Java代码中,在进行URL url = new URL(urllink)操作时,提示以下异常信息,该类异常主要问题出在参数urllink上面。 异常片段1 java.net.MalformedURLException at java.ne...

lqlm
26分钟前
0
0
CentOS7修改mysql5.6字符集

解决办法:CentOS7下修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家所需要的字符集,是国际编码。 具体操作如下: 1.进入MySQL [root@tianqi-01 ~]# mysql -uroot -p Enter passw...

河图再现
28分钟前
0
0
DevExpress v18.1新版亮点——WPF篇(一)

用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpress WPF v18.1 的新功能,快来下载试用新版本!点击下载>> Accordion Co...

Miss_Hello_World
31分钟前
0
0
Rancher 2.0集群与工作负载告警

Rancher 2.0操作指南。本文将step by step演示如何使用Rancher 2.0中集成的告警功能,包括设置通知程序、设置集群级别以及工作负载级别的告警。 在Rancher 1.x时期,告警功能是很多Rancher用...

RancherLabs
35分钟前
1
0
Python中字符串拼接的N中方法

python拼接字符串一般有以下几种方法: ①直接通过(+)操作符拼接 s = 'Hello'+' '+'World'+'!'print(s) 输出结果:Hello World! 使用这种方式进行字符串连接的操作效率低下,因为python中...

木头释然
37分钟前
9
0
JAVA排序之归并排序

归并排序思路就是不停拆分数组,直到拆成一个一个元素,之后将拆出来的元素按照拆分顺序反过来的顺序合并,出现前边值大于后边值,则换位置,放入临时数组,最后将临时数组覆盖原数组. public stat...

勤奋的蚂蚁
48分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部