1. 安装PHP依赖包,否则在编译的过程中可能会出现各种报错

    # Centos 安装epel-release源并将系统包更新到最新版本
    $ yum install epel-release-y
    $ yum update # 安装PHP依赖组件(包括Nginx依赖)
    $ yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel
  2. 创建用户和组,下载PHP安装包并解压

    $ cd /tmp
    $ groupadd www
    $ useradd -g www www
    $ wget http://am1.php.net/distributions/php-7.2.1.tar.gz
    $ tar xvf php-7.2.1.tar.gz
    $ cd php-7.2.1
  3. 设置变量并开始源码编译

    $ cp -frp /usr/lib64/libldap* /usr/lib/
    $ ./configure --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --enable-fpm \
    --with-fpm-user=www \
    --with-fpm-group=www \
    --enable-mysqlnd \
    --with-mysqli=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --enable-mysqlnd-compression-support \
    --with-iconv-dir \
    --with-freetype-dir \
    --with-jpeg-dir \
    --with-png-dir \
    --with-zlib \
    --with-libxml-dir \
    --enable-xml \
    --disable-rpath \
    --enable-bcmath \
    --enable-shmop \
    --enable-sysvsem \
    --enable-inline-optimization \
    --with-curl \
    --enable-mbregex \
    --enable-mbstring \
    --enable-intl \
    --with-mcrypt \
    --with-libmbfl \
    --enable-ftp \
    --with-gd \
    --enable-gd-native-ttf \
    --with-openssl \
    --with-mhash \
    --enable-pcntl \
    --enable-sockets \
    --with-xmlrpc \
    --enable-zip \
    --enable-soap \
    --with-gettext \
    --disable-fileinfo \
    --enable-opcache \
    --with-pear \
    --enable-maintainer-zts \
    --with-ldap=shared \
    --without-gdbm \

    注:如果报错请根据报错情况安装依赖包

  4. 编译安装

    # make 加上 j 参数 指定并行的job数量 提高编译速度
    $ make -j 4 && make install
  5. 完成安装后配置php.ini文件:

    $ cp php.ini-development /usr/local/php/etc/php.ini
    $ cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    $ cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
  6. 修改参数

    1. 修改php.ini

      1. $ vim /usr/local/php/etc/php.ini
        
        expose_php = Off
        short_open_tag = ON
        max_execution_time = 300
        max_input_time = 300
        memory_limit = 128M
        post_max_size = 32M
        date.timezone = Asia/Shanghai
        mbstring.func_overload=2
        extension = "/usr/local/php/lib/php/extensions/no-debug-zts-20160303/ldap.so"

        注:ldap是一个轻量级目录访问协议,不安装也可以,详情见:https://ldap.com/

      2. 设置OPcache缓存(在php.ini添加下面内容)

        [opcache]
        zend_extension=/usr/local/php/lib/php/extensions/no-debug-zts-20160303/opcache.so
        opcache.memory_consumption=128
        opcache.interned_strings_buffer=8
        opcache.max_accelerated_files=4000
        opcache.revalidate_freq=60
        opcache.fast_shutdown=1
        opcache.enable_cli=1
      3. 添加禁用函数列表

        disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
    2. 配置www.conf

      1. 取消以下注释并修改

        listen = /var/run/www/php-cgi.sock
        listen.owner = www
        listen.group = www
        listen.mode = 0660
        listen.allowed_clients = 127.0.0.1
        pm = dynamic
        listen.backlog = -1
        pm.max_children = 180
        pm.start_servers = 50
        pm.min_spare_servers = 50
        pm.max_spare_servers = 180
        request_terminate_timeout = 120
        request_slowlog_timeout = 50
        slowlog = var/log/slow.log
      2. 创建php-cgi.sock存放目录

        $ mkdir /var/run/www/
        $ chown -R www:www /var/run/www
      3. 配置php-fpm.conf

        pid = /usr/local/php/var/run/php-fpm.pid
  7. 创建system系统单元文件php-fpm启动脚本:

    $ vim /usr/lib/systemd/system/php-fpm.service
    
    # 添加 如下变量内容
    [Unit]
    Description=The PHP FastCGI Process Manager
    After=syslog.target network.target [Service]
    Type=simple
    PIDFile=/usr/local/php/var/run/php-fpm.pid
    ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
    ExecReload=/bin/kill -USR2 $MAINPID [Install]
    WantedBy=multi-user.target

    注:关于systemctl命令可以参考:Systemd 入门教程

  8. 启动php-fpm服务并加入开机自启动:

    $ systemctl enable php-fpm.service
    $ systemctl restart php-fpm.service
  9. 之后就可以使用下面命令开启关闭php-fpm服务了

    service php-fpm start/restart/stop

注:本文转自详解Centos7源码编译安装 php7.2之生产篇,如需转载请注明出处https://www.cnblogs.com/zhuchenglin/p/11773409.html

Centos7源码编译安装PHP7.2(生产环境)的更多相关文章

  1. Centos 7源码编译安装 php7.1 之生产篇

    Centos 7源码编译安装 php7.1 之生产篇 Published 2017年4月30日 by Node Cloud 介绍: 久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具 ...

  2. centos7源码编译安装lamp/lnmp

    centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...

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

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

  4. Centos7源码编译安装mysql8

    前面介绍了很多关于mysql的文章,下面主要介绍一下mysql8的源码编译安装 一 基本环境 [root@CentOS-7-x86-64-Minimal-1810 ~]# cd /usr/local/ ...

  5. CentOS7 源码编译安装Nginx

    源码编译安装nginx     1.下载nginx源码包(这里以nginx-1.18.0为例) wget http://nginx.org/download/nginx-1.18.0.tar.gz 2 ...

  6. centos7 源码编译安装 php

    准备工作 下载 PHP 源码包并解压 $ wget https://www.php.net/distributions/php-7.2.19.tar.bz2 $ yum -y install bzip ...

  7. centos7源码编译安装Subversion 1.9.5

    svn是Subversion的简称,是一个开放源代码的版本控制系统.svn有两种运行方式:1.独立服务器(svn://xxx.xxx/xxx) 2.借助apache(http://svn.xxx.xx ...

  8. 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 ...

  9. Ubuntu 16.04 源码编译安装PHP7

    一.下载PHP7的最新版源码 php7.0.9  下载地址 http://php.net/get/php-7.0.9.tar.gz/from/a/mirror 二.解压 tar -zxf /tmp/p ...

随机推荐

  1. leaflet 结合 Echarts4 实现统计图(附源码下载)

    前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

  2. Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

    使用Qt写了个窗口,运行报错,无法正常运行python程序,获得的报错信息如下: Process finished with exit code 139 (interrupted by signal ...

  3. C# 类库项目 无法创建 “资源字典” 文件

    1.接触WPF有两个月时间了,准备自己写一个样式库,在vs新建 类库项目后无法创建资源字典. 2.解决办法: 打开项目工程文件      (  project.csproj) 在 <Proper ...

  4. LeetCode刷题--两数相加(中等)

    题目描述 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表 ...

  5. JavaScript-----12.对象

    1. 对象 万物皆对象,但是对象必须是一个具体的事物.例如:"明星"不是对象,"周星驰"是对象:"苹果"不是对象"这个苹果&quo ...

  6. 《IM开发新手入门一篇就够:从零开发移动端IM》

        登录 立即注册 TCP/IP详解 资讯 动态 社区 技术精选 首页   即时通讯网›专项技术区›IM开发新手入门一篇就够:从零开发移动端IM   帖子 打赏 分享 发表评论162     想开 ...

  7. Python的标准库介绍与常用的第三方库

    Python的标准库介绍与常用的第三方库 Python的标准库: datetime:为日期和时间的处理提供了简单和复杂的方法. zlib:以下模块直接支持通用的数据打包和压缩格式:zlib,gzip, ...

  8. oracle 查询数据一直提示:“error code [17004]; 无效的列类型”111111

    oracle 查询数据一直提示:“error code [17004]; 无效的列类型”111111 问题场景:oracle,jpa,insert原因:插入的字段中有null.导致类型转换出问题,这个 ...

  9. Kubernetes的CronJob对象

    CronJob说白了就是用来管理Job对象的控制器, 通过jobTemplate管理Job对象,定时执行,最终实现我们的cron功能 示例 apiVersion: batch/v1beta1 kind ...

  10. Selenium(六):frame切换、窗口切换

    1. 切换到frame index.html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...