文档章节

编译安装php7

M
 MikeMei
发布于 2016/07/15 18:38
字数 1019
阅读 60
收藏 3
点赞 0
评论 0

摘自:https://segmentfault.com/a/1190000004123048

解决依赖:

yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel mhash gd gd-devel

编译安装php7

先从官方网站下载php7,并且解压

./configure --prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7/etc \
--with-config-file-scan-dir=/usr/local/php7/etc/php.d \
--with-mcrypt=/usr/include \
--enable-mysqlnd \
--with-mysqli \
--with-pdo-mysql \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-gd \
--with-iconv \
--with-zlib \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache

配置无误后执行:

$ make -j4
$ make install

添加用户和组

sudo groupadd -r www

$ sudo useradd -s /sbin/nologin -g nginx -r www

调整php配置

默认安装好之后,你会发现/usr/local/php7/etc下面没有php.ini文件,这个去哪里要呢?在php7的源码安装包都有。

cd /usr/src/php-7.0.0/
$ ls

可以看到有两个php.ini-xxx文件,我们可以分别vi打开来看下,一个是产品模式,一个是开发模式。

$ cp php.ini-production /usr/local/php7/etc/php.ini
$ vi /usr/local/php7/etc/php.ini

可以看到php的配置。本文就不做过多的配置解释了。

启用php-fpm服务

上面我们在编译php7的时候,已经将fpm模块编译了,那么接下来,我们要启用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

    配置php-fpm.conf

[global]
pid = /var/run/php-fpm.pid  
error_log = /var/log/php/php-fpm.log  
log_level = notice

    配置 www.conf文件

[www]
listen = /var/run/php-fpm.sock  
;listen = 127.0.0.1:9000
user = www  
group = www  
listen.owner = www  
listen.group = www  
listen.mode = 0666  
pm = dynamic  
pm.max_children = 400  
pm.start_servers = 32  
pm.min_spare_servers = 32  
pm.max_spare_servers = 400  
pm.max_requests = 10240  

php-fpm的具体配置我们也不做深入去详解,因为在编译之前./configure的时候,我们都已经确定了一些配置,比如运行fpm的用户和用户组之类的,所以默认配置应该不会存在路径问题和权限问题。

搞定php-fpm的服务载入:

就像上面的nginx一样,我们希望使用service php-fpm start|stop|restart这些操作来实现服务的重启,但没有像nginx那么复杂,php编译好之后,给我们提供了一个php-fpm的程序,不需要我再编写分享了。这个文件放在php编译源码目录中:

$ cd /usr/src/php-7.0.0/sapi/fpm
$ ls
$ cp init.d.php-fpm /etc/init.d/php-fpm
$ chmod +x /etc/init.d/php-fpm
$ chkconfig --add php-fpm
$ chkconfig php-fpm on

通过上面这个操作,我们就可以使用sevice php-fpm start来启用php-fpm了。用ps -ef | grep php-fpm看看进程吧。

nginx代理php实现访问

通过上面的操作,nginx和php-fpm服务都被我们跑起来了,但是php-fpm走的是127.0.0.1:9000,外网是无法访问的,而且我们也不可能直接通过php-fpm给外网提供服务,我们用nginx去代理9000端口执行php。

实际上这个过程只需要对nginx进行配置即可,fpm已经在后台运行了,我们需要在nginx的配置文件中增加代理的规则,即可让用户在访问80端口,请求php的时候,交由后端的fpm去执行,并返回结果。

vi /usr/local/nginx/conf/nginx.conf

如果你大致了解过nginx的配置,应该能够很快分辨出这个配置文件里面的结构,并且知道server代表一个虚拟主机,要增加虚拟主机就再增加一个server,而且这个conf文件中也给出了例子。那么怎么代理php-fpm呢?找到:

#location ~ \.php$ {
  #   root           html;
  #  fastcgi_pass   127.0.0.1:9000;
  #  fastcgi_index  index.php;
  #  fastcgi_param  SCRIPT_FILENAME  /script$fastcgi_script_name;
  #  include        fastcgi_params;
#}

把前面的#注释符号去掉,把script改为$document_root最终如下:

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

这样就OK了,重新载入nginx配置即可

$ service nginx reload

然后到/usr/local/nginx/html去写一个php文档,进行测试吧。

如果你的程序能够正常运行起来,用ip作为外网访问地址访问成功,那么恭喜你,本篇文章的目的就达到了

 

添加php的环境变量和启动

profile 配置 

echo "export PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH">> /etc/profile 
source /etc/profile
service php-fpm start

 

© 著作权归作者所有

共有 人打赏支持
M
粉丝 0
博文 57
码字总数 16059
作品 0
深圳
高级程序员
编译安装PHP7并安装Redis扩展Swoole扩展

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

豆花饭烧土豆 ⋅ 2016/02/15 ⋅ 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

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

编译安装php7.0.7

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

蛋派 ⋅ 2016/06/22 ⋅ 0

php7.1源码包安装

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

若白衣 ⋅ 02/28 ⋅ 0

php扩展模块安装

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

豆渣锅 ⋅ 2017/12/27 ⋅ 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

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 ⋅ 0

Gentoo安装php7

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

石家庄清风 ⋅ 2015/12/03 ⋅ 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Cube、Cuboid 和 Cube Segment

1.Cube (或Data Cube),即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过 Cube 对数据进行分析,可以大大加快数据的查询效率 2.Cuboid 在 Kylin 中特...

无精疯 ⋅ 29分钟前 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 31分钟前 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 42分钟前 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 44分钟前 ⋅ 0

我的第一篇个人博客

虽然这是个技术博客,但是,我总是想写一些自己的东西,所有就大胆的在这里写下了第一篇非技术博客。技术博客也很久没有更新,个人原因。 以后自己打算在这里写一些非技术博客,可能个人观点...

Mrs_CoCo ⋅ 45分钟前 ⋅ 0

Redis 注册为 Windows 服务

Redis 注册为 Windows 服务 redis 注册为 windows 服务相关命令 注册服务 redis-server.exe –service-install redis.windows.conf 删除服务 redis-server –service-uninstall 启动服务 re......

Os_yxguang ⋅ 45分钟前 ⋅ 0

世界那么大,语言那么多,为什么选择Micropython,它的优势在哪?

最近国内MicroPython风靡程序界,是什么原因导致它这么火呢?是因为他功能强大,遵循Mit协议开源么? 错!因为使用它真的是太舒服了!!! Micropython的由来,这得益于Damien George这位伟大...

bodasisiter ⋅ 49分钟前 ⋅ 0

docker 清理总结

杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有已经停止的容器(docker rm没有加-f参数,运行中的容器不会删掉) docker rm $(docker ps -a -q) 删除所有未打 dangling 标...

vvx1024 ⋅ 59分钟前 ⋅ 0

关于学习

以前学车的时候,教练说了这样的一句话:如果一个人坐在车上一直学,一直学,反而不如大家轮流着学。因为一个人一直学,就没有给自己留空间来反思和改进。而轮流着学的时候大家下来之后思考上...

mskk ⋅ 今天 ⋅ 0

压缩工具之gzip-bzip2-xz

win下常见压缩工具:rar zip 7z linux下常见压缩工具:zip gz bz2 xz tar.gz tar.bz2 tar.xz gzip 不支持目录压缩 gzip 1.txt #压缩。执行后1.txt消失,生成1.txt.gz压缩文件 gzip -d 1.txt....

ZHENG-JY ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部