一、下载php7.3的源码

  1. https://www.php.net/downloads.php

下载php-7.3.4.tar.gz

二、安装gcc,gcc-c++,kernel-devel

  1. yum -y install gcc gcc-c++ kernel-devel

  

三、安装php需要的依赖库

  1. yum -y install wget pcre pcre-devel openssl openssl-devel libicu-devel autoconf libjpeg libjpeg-devel \
  2. libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel \
  3. glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap \
  4. openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel \
  5. gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline \
  6. readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel

四、创建用户和组,并解压

  1. groupadd www
  2. useradd -g www www
  3. tar xf php-7.3.4.tar.gz
  4. cd php-7.3.4

  

五、进行编译安装

php的路径 --prefix 和配置文件 --with-config-file-path 路径大家可以自行设置

  1. ./configure --prefix=/data/nmp/php \
  2. --with-config-file-path=/data/nmp/php/etc \
  3. --with-fpm-user=www \
  4. --with-fpm-group=www \
  5. --with-mysqli=mysqlnd \
  6. --with-pdo-mysql=mysqlnd \
  7. --with-iconv-dir \
  8. --with-freetype-dir \
  9. --with-jpeg-dir \
  10. --with-png-dir \
  11. --with-zlib \
  12. --with-libxml-dir \
  13. --with-ldap=shared \
  14. --with-gdbm \
  15. --with-pear \
  16. --with-gettext \
  17. --with-curl \
  18. --with-xmlrpc \
  19. --with-openssl \
  20. --with-mhash \
  21. --with-gd \
  22. --enable-fpm \
  23. --enable-mysqlnd \
  24. --enable-mysqlnd-compression-support \
  25. --enable-xml \
  26. --enable-rpath \
  27. --enable-bcmath \
  28. --enable-shmop \
  29. --enable-sysvsem \
  30. --enable-inline-optimization \
  31. --enable-mbregex \
  32. --enable-mbstring \
  33. --enable-intl \
  34. --enable-ftp \
  35. --enable-gd-jis-conv \
  36. --enable-pcntl \
  37. --enable-sockets \
  38. --enable-zip \
  39. --enable-soap \
  40. --enable-fileinfo \
  41. --enable-opcache \
  42. --enable-maintainer-zts \

编译安装

  1. make -j 4 && make install

  

上面的步骤有可能出现的问题:

1、configure: WARNING: unrecognized options: --with-mcrypt, --with-libmbfl, --enable-gd-native-ttf

说明上面的配置参数已经弃用了,删除即可。

2、configure: error: DBA: Could not find necessary header file(s).

安装下 yum install gdbm-devel

3、configure: error: Cannot find ldap libraries in /usr/lib

拷贝下文件 cp -frp /usr/lib64/libldap* /usr/lib/

4、configure: error: off_t undefined; check your library configuration

进行如下操作:

  1. vi /etc/ld.so.conf
  2. # 添加如下几行
  3. /usr/local/lib64
  4. /usr/local/lib
  5. /usr/lib
  6. /usr/lib64
  7. # 保存退出
  8. :wq
  9. # 使之生效
  10. ldconfig -v

5、configure: error: Please reinstall the libzip distribution

在 https://libzip.org/download/ 下载源码,进行安装

  1. tar xf libzip-1.5.2.tar.gz
  2. cd libzip-1.5.2
  3. mkdir build && cd build && cmake .. && make && make install

6、CMake 3.0.2 or higher is required. You are running version 2.8.12.2

说明你的cmake版本过低,需要重新安装

先删除原有cmake

  1. yum remove cmake

在 https://cmake.org/download/ 下载源码

  1. tar xf cmake-3.14.3.tar.gz
  2. cd cmake-3.14.3
  3. ./bootstrap && make && make install

然后修改 vi /etc/profile,并加入如下内容

  1. PATH=/usr/local/bin:$PATH
  2. export PATH
  1. source /etc/profile

  

六、配置php.ini文件

具体的路径,大家可自行修改。

  1. cp php.ini-development /data/nmp/php/etc/php.ini
  2. cp /data/nmp/php/etc/php-fpm.conf.default /data/nmp/php/etc/php-fpm.conf
  3. cp /data/nmp/php/etc/php-fpm.d/www.conf.default /data/nmp/php/etc/php-fpm.d/www.conf

配置php.ini文件

  1. max_execution_time = 120
  2. max_input_time = 120
  3. memory_limit = 1024M
  4. post_max_size = 128M
  5. date.timezone = PRC
  6. extension_dir = "/data/nmp/php/lib/php/extensions/no-debug-zts-20180731"

  

七、配置Systemd服务

其实php-fpm.service文件php已经帮我们配置好了,只需要我们复制到指定位置,并启用就行了。

  1. cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/

php-fpm.service文件内容如下:

  1. [Unit]
  2. Description=The PHP FastCGI Process Manager
  3. After=network.target
  4.  
  5. [Service]
  6. Type=simple
  7. PIDFile=/data/nmp/php/var/run/php-fpm.pid
  8. ExecStart=/data/nmp/php/sbin/php-fpm --nodaemonize --fpm-config /data/nmp/php/etc/php-fpm.conf
  9. ExecReload=/bin/kill -USR2 $MAINPID
  10. PrivateTmp=true
  11.  
  12. [Install]
  13. WantedBy=multi-user.target

启用php-fpm.service

  1. systemctl enable php-fpm.service

启动php-fpm

  1. systemctl start php-fpm.service

  

centos7下编译安装php7.3的更多相关文章

  1. centos7下编译安装php-7.0.15(PHP-FPM)

    centos7下编译安装php-7.0.15(PHP-FPM) 一.下载php7源码包 http://php.net/downloads.php 如:php-7.0.15.tar.gz 二.安装所需依 ...

  2. centos7.6编译安装php7.2.11及redis/memcached/rabbitmq/openssl/curl等常见扩展

    centos7.6编译安装php7..11及redis/memcached/rabbitmq/openssl/curl等常见扩展 获取Php的编译参数方法: [root@eus-api-cms-bac ...

  3. Linux Centos7.2 编译安装PHP7.0.2

    操作环境: 1.系统:Centos7.2 2.服务:Nginx 1.下载PHP7.0.2的安装包解压,编译,安装: $ cd /usr/src/ $ wget http://cn2.php.net/d ...

  4. CentOS7下编译安装redis-5.0.9

    CentOS7下编译安装redis-5.0.9 本文地址http://yangjianyong.cn/?p=171转载无需经过作者本人授权 下载redis #code start wget https ...

  5. 【安装PHP】如何在openSUSE42.1下编译安装PHP7

    首先推荐一篇文章PHP 7 Release Date Arrived: Will Developers Adopt PHP 7? - PHP Classes blog. 里面说到是否会去使用PHP7, ...

  6. centos7.5环境下编译安装php7.0.30并安装redis和mongo扩展

    .安装php7..30的脚本 # vim install_php.sh #!/bin/bash # 安装基本依赖 yum install -y gcc gcc-c++ htop telnet ioto ...

  7. Centos7.2 编译安装PHP7

    PHP7,编译安装: 环境:centos7.2    (注意:因为我用的nginx, 此配置参数没有考虑到apache,所以不合适需要用apache的朋友照搬过去运行,但是可以参考.)   直接下载P ...

  8. CentOS 7.2mini版本下编译安装php7.0.10+MySQL5.7.14+Nginx1.10

    一.安装前的准备工作 1.yum update    #更新系统 2.yum install gcc gcc-c++ autoconf automake cmake bison m4 libxml2  ...

  9. CentOS 7.2mini版本下编译安装php7.0.10+MySQL5.7.14+Nginx1.10.1

    一.安装前的准备工作 1.yum update    #更新系统 1.1)vi /etc/selinux/config #  禁止SELINUX,设置SELINUX=disabled 2.yum in ...

随机推荐

  1. my first note

    please do not laugh It is very glad to be here, I will study hard.

  2. vs2015中SQLSERVER数据库项目引用系统视图

    近期使用VS中的SQLSERVER数据库项目进行项目开发,由于有很多自动化脚本会访问系统视图,例如sysobjects之类的,在项目中的脚本总是提示无法解析的引用,解决办法如下: 添加数据库引用 添加 ...

  3. Android Studio 将文件打包成APK

    1.在Build中找到Generate Signed APK选项,进入如下界面 这是我上面已经有了jsk的.创建jks点Create new... 2.没有jks时创建一个 三.然后会返回到上一个界面 ...

  4. LayaAir疑难杂症之二:字符输入限制不生效(多个限制条件该如何赋值给restrict)

      问题描述 采用LayaAir进行开发,在使用TextInput时,对restrict属性进行赋值,使该输入框只允许输入中英文.数字,restrict = “[\u4E00-\u9FA5A-Za-z ...

  5. [java,2018-06-26] 扑克牌抽牌求和问题

    问题: 一副扑克牌,除去大小王后共52张牌,随机从中抽八张牌,问八张牌的和最有可能是多少? 分析: 这52张牌,其实就是数字 1 2 3 ...13, 每个数字出现4次.随机抽出8个数,问组成的和最有 ...

  6. openssl error while loading serial number

    unable to load number from D:/Program Files/OpenSSL-Win64/bin/demoCA/serialerror while loading seria ...

  7. css实现布局

    1.两栏布局 两栏布局一般就是一栏定宽一栏自适应(也就是流动).分的细的话还有左栏定宽右栏自适应.右栏定宽左栏自适应. 举个栗子:一栏定宽200px,一栏自适应. <head> <m ...

  8. djiango 虚拟环境与项目创建

    建立虚拟环境 一,查看有那些虚拟环境 :workon 二,创建虚拟环境:mkvirtualenv -p/usr/bin/python3 django(p后面是路径) 三,进入虚拟环境:workon d ...

  9. FPGA——按键(二)

    直接上源码: module key_led( input sys_clk , //50Mhz系统时钟 input sys_rst_n, //系统复位,低有效 :] key, //按键输入信号 :] l ...

  10. 教你快速录制gif动图

    我们经常会遇到一些场景,需要你向别人展示一些操作或是效果——例如告诉别人某某软件的配置步骤啊.刚设计出来网站的动画效果怎么样啊.某某电影里面的一个镜头多么经典啊.打得大快人心的NBA绝杀瞬间是怎么回事 ...