centos7 源码编译安装 php

准备工作

  • 下载 PHP 源码包并解压

    $ wget https://www.php.net/distributions/php-7.2.19.tar.bz2
    $ tar -jxvf php-7.2.19.tar.bz2
  • 进入 PHP 源码包目录
    $ cd php-7.2.19

配置和构建 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.0 之后这个模块默认开启所以可以不用再加此命令)
    --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-openssl --with-fpm-user=www --with-fpm-group=www --with-curl --with-mhash --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-zip --with-zlib --enable-simplexml --with-libxml-dir
    === 第 [1] 尝试 ===
    ...
    configure: error: libxml2 not found. Please check your libxml2 installation.
    # 安装 libxml2 库
    $ yum -y install libxml2 libxml2-devel
    === 第 [2] 尝试 ===
    ...
    configure: error: Cannot find OpenSSL\'s <evp.h>
    # 安装 openssl 库
    $ yum -y install openssl openssl-devel
    === 第 [3] 尝试 ===
    ...
    checking for cURL 7.10.5 or greater... configure: error: cURL version 7.10.5 or later is required to compile php with cURL support
    # 安装 curl 库
    $ yum -y install libcurl libcurl-devel
    === 第 [4] 尝试 ===
    ...
    configure: error: jpeglib.h not found.
    # 安装 libjpeg 顺便 把 libpng 也装上
    $ yum -y install libjpeg libjpeg-devel libpng libpng-devel
    === 第 [5] 尝试 ===
    ...
    configure: error: freetype-config not found.
    # 安装 freetype 库
    $ yum -y install freetype freetype-devel
    === 第 [6] 尝试 ===
    +--------------------------------------------------------------------+
    | License:                                                           |
    | This software is subject to the PHP License, available in this     |
    | distribution in the file LICENSE.  By continuing this installation |
    | process, you are bound by the terms of this license agreement.     |
    | If you do not agree with the terms of this license, you must abort |
    | the installation process at this point.                            |
    +--------------------------------------------------------------------+
    
    Thank you for using PHP.
    ...
    # 成功
    $ make && make install 
  • 安装总结
    $ wget https://www.php.net/distributions/php-7.2.19.tar.bz2
    $ tar -jxvf php-7.2.19.tar.bz2
    $ cd php-7.2.19
    # **此处的 —prefix 安装目录可以不和我一样**
    $ ./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-openssl --with-fpm-user=www --with-fpm-group=www --with-curl --with-mhash --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-zip --with-zlib --enable-simplexml --with-libxml-dir
    $ make && make install 

配置 nginx 支持

$ cp php-7.2.19/php.ini-production /usr/local/php/php.ini # 复制 php.ini 文件到目录
$ vi /usr/local/nginx/conf/nginx.conf
...
http {
...
    server {
...
# 把 [1] 换成 [2]
# 让 nginx 支持 php 文件
#[1]
                location / {
            root   html;
                   index  index.html index.htm;
        }
#[2]
        location / {
            root   html;
                   index  index.php index.html index.htm;
        }
...
# 把 [1] 换成 [2]
# 配置监听 php 端口
# 注意: 要把 /scripts 换成 $document_root
#[1]
        #location ~ \.php$ {
        #        root           html;
        #        fastcgi_pass   127.0.0.1:9000;
        #        fastcgi_index  index.php;
        #        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #        include        fastcgi_params;
        #}
#[2]
        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;
        }
...
}
# 重启 php-fpm
$ pkill -9 php-fpm
$ /usr/local/nginx/php7/sbin/php-fpm

配置更简单的启动命令

# 复制启动脚本到 init.d 目录
$ cp php-7.2.19/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# 增加执行权限
$ chmod +x /etc/init.d/php-fpm
# 配置 php-fpm 文件
$ cd /usr/local/php7/etc/
$ cp php-fpm.conf.default php-fpm.conf
# 进入 php-fpm.conf , 并去除 pid = run/php-fpm.pid 的注释
$ vim php-fpm.conf
===
...
[global]
; Pid file
; Note: the default prefix is /usr/local/php7/var
; Default Value: none
# 取消下面的注释
pid = run/php-fpm.pid
...
===
# 复制 www.conf 文件
$ cp php-fpm.d/www.conf.default php-fpm.d/www.conf
# 重启 php 服务器
$ pkill -9 php-fpm
$ /usr/local/nginx/php7/sbin/php-fpm
# 测试
$ /etc/init.d/php-fpm stop  # 停止服务
Gracefully shutting down php-fpm . done
$ /etc/init.d/php-fpm start # 启动服务
Starting php-fpm  done
$ /etc/init.d/php-fpm restart # 重启服务
Gracefully shutting down php-fpm . done
Starting php-fpm  done
  • /etc/init.d/php-fpm stop # 停止服务
  • /etc/init.d/php-fpm start # 启动服务
  • /etc/init.d/php-fpm restart # 重启服务

原文地址:https://www.cnblogs.com/l5gw/p/10992958.html

时间: 2024-09-30 02:05:30

centos7 源码编译安装 php的相关文章

centos7 源码编译安装TensorFlow CPU 版本

一.前言 我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢. 但是在编译之中,发现很多坑,由此记录一下. 环境相关: 系统:centos7 python版本:2.7.5 二.准备 1. 安装相关依赖 # 一般会缺失的依赖 yum -y install java-1.8.0-openjdk-devel automake autoconf libtool libi

centos7 源码编译安装 nginx

安装步骤 下载 nginx 源码包 官网 $ wget http://nginx.org/download/nginx-1.16.0.tar.gz 解压 nginx 压缩包 $ tar -zxvf nginx-1.16.0.tar.gz 运行 configure 文件检测程序 $ cd nginx-1.16.0 $ ./configure --prefix=/usr/local/nginx checking for OS + Linux 3.10.0-957.12.2.el7.x86_64 x8

CentOS7源码编译安装FreeRadius3.17

(一)环境简介1.OS:Centos7.42.软件:Freeradiusd3.17(ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-3.0.17.tar.gz)3.网站:https://freeradius.org/ (二)安装1.yum安装所需的依赖包[[email protected] raddb]#yum install openssl openssl-devel libtalloc-devel libtalloc* -y

centos7 源码编译安装heartbeat 以及结合nginx测试高可用

1.环境CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64主(heartbeat27=uname -n)10.0.0.27(ip) 10.0.10.27(心跳) 10.0.0.29(vip)备(heartbeat28=uname -n)10.0.0.28(ip) 10.0.10.28(心跳) 10.0.0.29(vip)2.cat /etc/hosts10.0.0.27 heartbeat2710.0.0.28 heartbeat

CentOS7 源码编译安装Tengine

简介 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.它的目的是打造一个高效.安全的Web平台. 发展 Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验. 从2011年12月开始,Tengine成为一个开源项目,Tengine团队在积极地开发和维护着它.Tengine团队的核心成员来自于淘宝.搜狗等互联网企业.Tengine是社区合作的成果,我们欢迎大家参与其中,贡献自己的力量. 一.安装编

CentOS7源码编译安装PHP7.2

一.环境 CentOS7 二.相关资源 PHP官方网站 PHP官方下载页 三.编译安装 1. 下载php 下载并解压 # 下载php wget https://www.php.net/distributions/php-7.2.16.tar.gz # 解压 tar -zxvf php-7.2.16.tar.gz 查看目录 [[email protected] ~]# ll 总用量 19232 drwxrwxr-x 14 root root 4096 3月 5 19:05 php-7.2.16 -

centos7 源码编译安装nginx教程 nginx安装脚本

安装nginx需要pcre zlib openssl的库,下文都是在官网直接下载用作编译安装 该nginx安装教程,有安装maxmind IP 库 该nginx安装教程有安装openrestry 系统使用了centos 7 该教材有修改最大打开文件描述符数到最大 该教程是nginx安装的shell脚本 #!/bin/bash yum install epel-release -y yum install gcc gcc-c++ make automake autoconf libtool ipt

centos7源码编译安装Ansible详细部署

一.基础介绍==========================================================================================ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的

centos7源码编译安装httpd、加入systemctl并设置开机自启动

所需软件: apr-1.6.3.tar.gz (下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.3.tar.gz) apr-util-1.6.1.tar.gz (下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz) httpd-2.4.29.tar.gz (下载地址:http://mirrors.shu.edu.cn/apac