zoukankan      html  css  js  c++  java
  • Centos7源码编译安装PHP7.2(生产环境)

    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

  • 相关阅读:
    Java后台插件(工具包)
    LINQ系列:Linq to Object联接操作符
    LINQ系列:Linq to Object排序操作符
    LINQ系列:Linq to Object限制操作符
    LINQ系列:Linq to Object投影操作符
    LINQ系列:C#中与LINQ相关特性
    设计模式笔记:简单工厂模式(Simple Factory)
    数据访问模式:数据并发控制(Data Concurrency Control)
    数据访问模式:Identity Map(标识映射)模式
    设计模式笔记:开闭原则(OCP,The Open-Closed Principle)
  • 原文地址:https://www.cnblogs.com/zhuchenglin/p/11773409.html
Copyright © 2011-2022 走看看