为什么要编译安装?

  因为最近要学习 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的编译安装的更多相关文章

  1. 2018/04/25 基于 编译安装的 PHP7 安装 swoole 扩展

    在上一篇文章我们知道了如何去编译安装一个自己需要的 PHP 版本. 2018/04/25 PHP7的编译安装 这里还没有完,我们还需要安装我们的扩展,才算完成今天的任务. -- 下载扩展 还是官网下载 ...

  2. 沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展

    1.编译安装apache2.4.20 第一步: ./configure --prefix=/usr/local/httpd --enable-so 第二步: make 第三步: sudo make i ...

  3. ubuntu 14.04上源码编译安装php7

    wget https://downloads.php.net/~ab/php-7.0.0alpha2.tar.bz2 //用winscp把下载好的文件上传到网站中 tar jxf php-7.0.0a ...

  4. CentOS下PHP7的编译安装,MySQL的支持和一些问题的解决

    最近试了一下PHP7,在编译和支持MySQL上都遇到一些问题,相信不少同学也同样遇到,所以在这里聊一下这个过程.简单来讲编译PHP7只需要3步: 1../buildconf --force 2../c ...

  5. ubuntu 14.04 64位 下 编译安装MySQL 5.7.11

    步骤一: 先去mysql的官方网站 去down 编译源码包 mysql 网址:www.mysql.com downloads  (MySQL Community Server) 下载版本选择  sou ...

  6. php7.0编译安装

    1.解压安装  tar zxvf php-7.0.2.tar.gz  cd php-7.0.2 2.安装依赖库: yum -y install libjpeg libjpeg-devel libpng ...

  7. Ubuntu 20.04下源码编译安装ROS 2 Foxy Fitzroy

    ROS 2 Foxy Fitzroy(以下简称Foxy)于2020年6月5日正式发布了,是LTS版本,支持到2023年5月.本文主要根据官方的编译安装教程[1]完成,并记录编译过程中遇到的问题. 1. ...

  8. php7.3编译安装 支持微擎2.0

    再次整理   //一下配置在命令粘贴时注意句尾加 \ , 在 \ 后不能有空格,不然会自动执行,相当于回车./configure --prefix=/usr/local/php \ --with-co ...

  9. 编译安装PHP7及扩展

    一.编译安装PHP 1. 下载源码包并解压 源码包地址:http://php.net/downloads.php 下载源码包 当前PHP最新本门是7.2.9,下载 php-7.2.9 源码包 wget ...

随机推荐

  1. Git 合并多次 commit 、 删除某次 commit

    Git 合并多次 commit 有时候在一个分支的多次意义相近的 commit,会把整个提交历史搞得很混乱,此时可以将一部分的 commit 合并为一个 commit,以美化整个 commit 历史, ...

  2. 腾讯云快速完成python3.6开发环境搭建与django应用部署

    [本文出自天外归云的博客园] 部署python3.6.5 腾讯云服务器安装python3竟然要3个多小时!而且一度速度为0…… 于是网查据说是腾讯云服务器连python官网缓慢导致的,所以想找个国内的 ...

  3. java中的数据加密1 消息摘要

    消息摘要(Message Digest) 又称为数字摘要(Digital Digest).它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生.如果消息在途中 ...

  4. Java知多少(22)方法重载

    在Java中,同一个类中的多个方法可以有相同的名字,只要它们的参数列表不同就可以,这被称为方法重载(method overloading). 参数列表又叫参数签名,包括参数的类型.参数的个数和参数的顺 ...

  5. 【转】使用Log4Net进行日志记录

    首先说说为什么要进行日志记录.在一个完整的程序系统里面,日志系统是一个非常重要的功能组成部分.它可以记录下系统所产生的所有行为,并按照某种规范表达出来.我们可以使用日志系统所记录的信息为系统进行排错, ...

  6. 【转帖】2015年2月份最佳的免费 UI 工具包

    2015年2月份最佳的免费 UI 工具包 设计师们最喜欢 UI 工具包,这是一种思路拓展的方法,同时可以利用它们来解决各种复杂的项目,同时可用来了解其他设计师的风格.这里我们收集了最近这一个月一些最棒 ...

  7. Ubuntu:双(多)网卡绑定(bonding)配置

    step 0:安装网卡绑定的功能 apt-get install    ifenslave step 1:加载内核模块:编辑 /etc/modules,添加: bonding step 2:编辑网卡配 ...

  8. Xlight FTP搭建FTP服务器教程

    Xlight FTP搭建FTP服务器教程 1. 服务器公共设置 设置FTP 端口, ip 等 FTP 服务器公共的设定 2. 设定 FTP 用户, FTP 目录 等信息    备注: 这个用户是非Wi ...

  9. windows 清理利器

    https://www.ccleaner.com/ 2. https://www.chuyu.me/zh-Hans/index.html

  10. Android手机用KSWEB搭建Web服务器成功安装WordPress

    之前部落分享的几个免费Web服务器软件都是用来安装在本地电脑上,搭建Apache.PhpMyAdmin.MySQL等网站运行环境,然后我们就可以在电脑上测试运行Wordpress.Discuz! 论坛 ...