安装步骤

PHP官网下载链接:https://www.php.net/downloads.php

1. 使用wget命令下载源码安装包

wget https://www.php.net/distributions/php-7.3.8.tar.gz --no-check-certificate

【说明】如果报SSL Certification错误信息的话,就加上 --no-check-certificate选项,一般不需要添加。

2. 解压.tar.gz文件

tar -xzvf php-7.3..tar.gz

3. 进入php-7.3.8目录下,执行./configure,即配置和构建PHP

  • 查看configure的用法以及配置选项: ./configure -h 或者 --help
  • php常用配置及其说明
--prefix=/usr/local/php7 # 配置安装目录
--with-config-file-path=/usr/local/php7 # 配置文件 php.ini 的路径
--enable-sockets # 开启 socket
--enable-fpm # 启用 fpm 扩展
--enable-cli # 启用 命令行模式 (从 php 4.3. 之后这个模块默认开启所以可以不用再加此命令)
--enable-mbstring # 启用 mbstring 库
--enable-pcntl # 启用 pcntl (仅 CLI / CGI)
--enable-soap # 启用 soap
--enable-opcache # 开启 opcache 缓存
--disable-fileinfo # 禁用 fileinfo (由于 5.3+ 之后已经不再持续维护了,但默认是开启的,所以还是禁止了吧)(1G以下内存服务器直接关了吧)
--disable-rpath #禁用在搜索路径中传递其他运行库。
--with-mysqli # 启用 mysqli 扩展
--with-pdo-mysql # 启用 pdo 扩展
--with-iconv-dir # 启用 XMLRPC-EPI 字符编码转换 扩展
--with-openssl # 启用 openssl 扩展 (需要 openssl openssl-devel)
--with-fpm-user=www #设定 fpm 所属的用户
--with-fpm-group=www #设定 fpm 所属的组别
--with-curl # 启用 curl 扩展
--with-mhash # 开启 mhash 基于离散数学原理的不可逆向的php加密方式扩展库
# GD
--with-gd # 启用 GD 图片操作 扩展
--with-jpeg-dir # 开启对 jpeg 图片的支持 (需要 libjpeg)
--with-png-dir # 开启对 png 图片支持 (需要 libpng)
--with-freetype-dir # 开启 freetype
# 压缩
--enable-zip # 启用 zip
--with-zlib # 启用对 zlib 支持
# xml
--enable-simplexml # 启用对 simplexml 支持
--with-libxml-dir # 启用对 libxml2 支持 #一些不常用的配置
--enable-debug # 开启 debug 模式

我执行configure的命令如下:

./configure --prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7 \
--enable-sockets \
--enable-fpm \
--enable-cli \
--enable-mbstring \
--enable-pcntl \
--enable-soap \
--enable-opcache \
--disable-fileinfo \
--disable-rpath \
--with-mysqli
--with-pdo-mysql \
--with-iconv-dir \
--with-fpm-user=www \
--with-fpm-group=www \
--with-curl=/usr/local/curl \
--with-mhash \
--with-gd=no \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-zip \
--with-zlib \
--enable-simplexml \
--with-libxml-dir \
--with-openssl=/usr/local/openssl

在执行过程中,可能会有报错。我在执行过程中,遇到了curl和OpenSSL库的安装路径没有找到,因为不是安装在/etc/bin和/etc/lib路径下,所以需要手动设置这两个库的安装路径:

--with-curl=/usr/local/curl

--with-openssl=/usr/local/openssl

我关闭了GD图片操作扩展,即:--with-gd=no,如果是:--with-gd ,则表示开启。

4. 编译和安装

make && make install

5. 配置PHP环境变量

(1)vim /etc/profile //需要root权限
(2)在profile文件末尾添加如下内容:
export PATH=$PATH:/usr/local/php7/bin  #这一步可以让我们全局使用php命令
(3) source /etc/profile                               #让修改后的profile生效
(4) php -i //查看配置信息

如果第4步的执行成功打印了PHP information的话,表示PHP已经安装成功了。

## 查看php的用法帮助

$ php -h

## 查看php的版本信息

$ php -v

6. 配置php.ini文件

$ php -i|grep php.ini

Configuration File (php.ini) Path => /usr/local/php7
Loaded Configuration File => /usr/local/php7/php.ini

配置文件在安装包目录下: php-7.3.8/
php.ini-development   //开发模式版本
php.ini-production      //生产模式版本
这里,我们选择生产模式版本复制到指定路径下

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

<注意> php.ini文件所在的目录一定要与php -i里面查出的位置保持一致,不然修改php.ini文件是不会生效的。

7. 安装composer

> wget https://getcomposer.org/composer.phar
> cp composer.phar /usr/bin/composer
> cd /usr/bin; chmod u+x composer
> composer -v

如果打印出composer的版本信息,即表示composer安装成功了。

遇到的问题

【问题】error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed

1. 下载证书。https://curl.haxx.se/ca/cacert.pem,存放路径: /home/lbs/cert/cacert.pem(这个路径自定义)
2. 修改php.ini配置文件
> cd /usr/local/php7/;ls
> vim php.ini
修改openssl.cafile= /home/lbs/cert/cacert.pem

【参考】

centos7 源码编译安装 php  https://www.cnblogs.com/l5gw/p/10992958.html

编译php7.1.4出现 undefined reference to isfinite    https://blog.csdn.net/letshi/article/details/71079677

Linux环境下composer的安装  https://blog.csdn.net/lifei15731208550/article/details/91039823

CentOS7.6源码编译安装PHP 7.3.8的更多相关文章

  1. Centos7.X 源码编译安装subversion svn1.8.x

    说明:SVN(subversion)的运行方式有两种:一种是基于Apache的http.https网页访问形式:还有一种是基于svnserve的独立服务器模式.SVN的数据存储方式也有两种:一种是在B ...

  2. CentOS7.5源码编译安装mysql5.7.29

    #查看系统版本 [root@ctos3 ~]# cat /etc/redhat-release CentOS Linux release (Core) #下载源码包,需要注意的是mysql5.7 编译 ...

  3. Centos7下源码编译安装python3.6

    测试环境: 操作步骤: 1. 下载Python源码包(python3.6.0) 官网下载地址:https://www.python.org/downloads/ 搜狐下载地址:http://mirro ...

  4. centos7.2 源码编译安装php7.2.4 apache2.4.37 https证书安装

    一.php7.2.11源码安装 1.下载php7.2.11 wget http://cn2.php.net/downloads.php/php-7.2.11.tar.gz#### 2.安装依赖 yum ...

  5. Centos7.5 源码编译安装PHP

    安装依赖 yum -y install epel-release yum -y install  gcc gcc-c++ make pcre pcre-devel zlib zlib-devel op ...

  6. Centos7下源码编译安装与配置redis5.0

    1.下载redis5.0源码包 wget http://download.redis.io/releases/redis-5.0.5.tar.gz 2.检查是否安装过之前的历史版本 rpm -qa|g ...

  7. Centos7.2源码编译安装LA(N)MP

    LAMP环境中php是作为apache的模块安装的,所以安装顺序是php放在apache的后面安装,这样便于安装php时可以在apache的模块目录生成对应的php模块. apache版本:2.4.3 ...

  8. centos7 源码编译安装TensorFlow CPU 版本

    一.前言 我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢. ...

  9. Centos7源码编译安装PHP7.2(生产环境)

    安装PHP依赖包,否则在编译的过程中可能会出现各种报错 # Centos 安装epel-release源并将系统包更新到最新版本 $ yum install epel-release-y $ yum ...

随机推荐

  1. JavaScript 基础知识 变量与数据类型

    一.区分大小写 JS中一切(变量/函数名/操作符)都是严格区分大小写的 二.标识符 变量.函数.属性的名字以及函数的参数 命名规则:1.第一个字符可以是字母.下划线.美元符号$ 2.其他的字符可以是字 ...

  2. CentOS Linux 重启详解

    一.Linux 的五个重启命令 1.shutdown 2.poweroff 3.init 4.reboot 5.halt 二.五个重启命令的具体说明 shutdown reboot 在linux下一些 ...

  3. CentOS 网络互通情况下把一个Linux服务器的文件发送到另一个服务器

    scp -r  文件名/目录名 root@192.168.2.144:/home/hsw -r   发送目录使用,表示把该目录下的所有子目录以及文件发送过去

  4. flask 高级编程 上下文与栈(转)

    转: https://www.cnblogs.com/wangmingtao/p/9372611.html 22.上下文与出入栈 22.1 请求过程 请求过来,flask会实例化一个Request C ...

  5. 8.秋招复习简单整理之Spring面试一般问题

    1.不同版本的Spring Framework有哪些主要功能? 2.什么是Spring Framework? Spring是一个轻量级的IOC和AOP容器框架,是为Java应用程序提供基础性服务的一套 ...

  6. linuxprobe培训第2节课笔记2019年7月6日

    使用VM虚拟机配置RHEL实验环境. 鉴于在笔记本上装过centos7,这章内容难度对我来说不是很大. 重置root管理员密码(RHCSA考题,第一题,做不出来无法进行下一步考试) e linux16 ...

  7. 数据结构与算法---线索化二叉树(Threaded BinaryTree)

    先看一个问题 将数列 {1, 3, 6, 8, 10, 14  } 构建成一颗二叉树 问题分析: 当我们对上面的二叉树进行中序遍历时,数列为 {8, 3, 10, 1, 6, 14 } 但是 6, 8 ...

  8. pdfminer获取每页的layout

    #! python2 # coding: utf-8 import sys from pdfminer import pdfparser from pdfminer import pdfdocumen ...

  9. 渐进式web应用开发--拥抱离线优先(三)

    _ 阅读目录 一:什么是离线优先? 二:常用的缓存模式 三:混合与匹配,创造新模式 四:规划缓存策略 五:实现缓存策略 回到顶部 一:什么是离线优先? 传统的web应用完全依赖于服务器端,比如像很早以 ...

  10. 【排序函数讲解】sort-C++

    c++标准库里的排序函数,用于对给定区间所有元素进行排序.头 文件是#include 使用 Sort()在具体实现中规避了经典快速排序可能出现的.会导 致实际复杂度退化到 o(n²)的极端情况.它根据 ...