2018/04/25 PHP7的编译安装
为什么要编译安装?
因为最近要学习 swoole ,想使用目前最新的 PHP7.2.4 ,但是我所在的 Ubuntu-16.04 的 apt 下只有 PHP7.0 的版本。
加上自己也想学习一下源码的编译安装,于是就开始了......
开始踩坑!
首先这个过程是不难的,但是中间会遇到很多的问题,学会解决这些问题是是很有意思的。
--
第一个首先应该去下载我们需要的源码包,找到指定的 PHP 版本,推荐 PHP.NET
在这里我以 PHP-7.2.4 版本做示例,环境为 Ubuntu16.04
--
在我们下载好之后,他是是一个 php-7.2.4.tar.bz2 的文件,没啥说的,解压它
tar -xjf php-7.2.4.tar.bz2
之后在你的解压目录会看到一个解压文件,一个压缩文件

--
进入这个文件内,下属会发现很多东西,最重要的是 configure 文件
我们的编译安装亦需要有这个的.
不过在安装之前,我们需要首先 安装 gcc 这个软件,他也可以看做是基础,没有他是无法编译的
--
在这里我只加了一个参数,是指定我 PHP 安装路径的,其他参数有很多,可以根据 ./configure --help 来查看
./configure --prefix=/usr/local/php
--
如果你一帆风顺的话,就会看到一个很大的表示 PHP success。说明第一步已经成功了。
我在编译的时候遇到一个错误,是缺少 libxml2-dev 这个依赖
这个地方的错误一般都是缺少依赖导致的
--
之后的话执行
make && make install
--
在一系列的闪烁之后,会提示你安装成功。
可以通过
php -v
来确定自己的 PHP 版本和是否安装成功。
--
安装成功之后,那我们的 php.ini 文件在什么地方呢?
还得回去看我们的源码目录,在下面有两个 php.ini 文件

一个是生产环境下,一个是开发环境下
--
输入
php -i | grep 'php.ini'
通过这样找到下面 php.ini 应该存放的路径

--
这样就可以完成 php7.* 的 编译安装。
总结一下必须注意的地方。
安装 gcc
安装 依赖
解决 php.ini 问题
--
在之后的运用中的话发现问题再回来补充在安装方面的问题
2018/04/25 PHP7的编译安装的更多相关文章
- 2018/04/25 基于 编译安装的 PHP7 安装 swoole 扩展
在上一篇文章我们知道了如何去编译安装一个自己需要的 PHP 版本. 2018/04/25 PHP7的编译安装 这里还没有完,我们还需要安装我们的扩展,才算完成今天的任务. -- 下载扩展 还是官网下载 ...
- 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展
1.编译安装apache2.4.20 第一步: ./configure --prefix=/usr/local/httpd --enable-so 第二步: make 第三步: sudo make i ...
- ubuntu 14.04上源码编译安装php7
wget https://downloads.php.net/~ab/php-7.0.0alpha2.tar.bz2 //用winscp把下载好的文件上传到网站中 tar jxf php-7.0.0a ...
- CentOS下PHP7的编译安装,MySQL的支持和一些问题的解决
最近试了一下PHP7,在编译和支持MySQL上都遇到一些问题,相信不少同学也同样遇到,所以在这里聊一下这个过程.简单来讲编译PHP7只需要3步: 1../buildconf --force 2../c ...
- ubuntu 14.04 64位 下 编译安装MySQL 5.7.11
步骤一: 先去mysql的官方网站 去down 编译源码包 mysql 网址:www.mysql.com downloads (MySQL Community Server) 下载版本选择 sou ...
- php7.0编译安装
1.解压安装 tar zxvf php-7.0.2.tar.gz cd php-7.0.2 2.安装依赖库: yum -y install libjpeg libjpeg-devel libpng ...
- Ubuntu 20.04下源码编译安装ROS 2 Foxy Fitzroy
ROS 2 Foxy Fitzroy(以下简称Foxy)于2020年6月5日正式发布了,是LTS版本,支持到2023年5月.本文主要根据官方的编译安装教程[1]完成,并记录编译过程中遇到的问题. 1. ...
- php7.3编译安装 支持微擎2.0
再次整理 //一下配置在命令粘贴时注意句尾加 \ , 在 \ 后不能有空格,不然会自动执行,相当于回车./configure --prefix=/usr/local/php \ --with-co ...
- 编译安装PHP7及扩展
一.编译安装PHP 1. 下载源码包并解压 源码包地址:http://php.net/downloads.php 下载源码包 当前PHP最新本门是7.2.9,下载 php-7.2.9 源码包 wget ...
随机推荐
- 【九天教您南方cass 9.1】01 安装Cad和Cass9.1
同学们大家好,欢迎收看由老王测量上班记出品的cass9.1视频课程 今后会将cass的教程目录定期发布在测量空间中. 我是本节课主讲老师九天. [点击索取cass教程]5元立得 (给客服说暗号:“老王 ...
- Linux嵌入式时区修改
- TI am335x am437x PRU
http://bbs.eeworld.com.cn/thread-355798-1-1.html
- EventBus vs Otto vs Guava--自定义消息总线
同步发表于http://avenwu.net/ioc/2015/01/29/custom_eventbus Fork on github https://github.com/avenwu/suppo ...
- 这才是真正的裸眼3D!超级震撼!!
大家有没认为有意思啦,反正俺是被震撼到了. 好奇异-- ! " src="http://www.yixieshi.com/uploads/allimg/141116/1446431 ...
- 简单的SSM框架搭建教程
简单的ssm框架的搭建和配置文件 ssm框架里边的配置: 1.src路径下直接存放数据库和log4j的properties文件 2.src路径下建个config包,分别放置ssm的xml文件 3.修改 ...
- MFC AfxMessageBox(_T("Please Load Rawdata First !"));
AfxMessageBox(_T("Please Load Rawdata First !"));
- Linux内核 GPIO操作部分API
内核中关于GPIO的操作API主要集中在<linux/of_gpio.h>和<linux/gpio.h>中,前者主要是GPIO直接与设备树相关的操作,在Linux 设备树操作A ...
- Python实现C代码统计工具(一)
目录 Python实现C代码统计工具(一) 声明 一. 问题提出 二. 代码实现 三. 效果验证 四. 后记 Python实现C代码统计工具(一) 标签: Python 代码统计 声明 本文将基于Py ...
- docker 搭建ntp服务器
背景 在搭建etcd集群时,如果主机时间相差太多会出现同步错误,如果外部网络不可用时,需要使用内部的ntp服务器同步时间. 构建ntp镜像 创建Dockerfile # usage: # docker ...