专栏首页LIN_ZONECentos7源码编译安装PHP7.2(生产环境)

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • mac重启,开启apache时报错~~~镜像没有找到

    其他选项是卸载您的php公式,并从源重建,而不是使用瓶装版本。这样,php将使用当前安装的版本jpeg。假设你正在处理php71:

    lin_zone
  • Nginx+PHP环境配置

    注:如需转载请注明出处:https://www.cnblogs.com/zhuchenglin/p/11126373.html

    lin_zone
  • ubuntu下安装php扩展

    参考原文地址:http://www.php.cn/php-weizijiaocheng-341528.html

    lin_zone
  • CentOS 6.5下PHP 5.6编译安装

    luxixing
  • Java单元测试: MySQL --- H2

    H2是一个使用Java实现的内存内存数据库,支持标准的SQL语法,支持大部分的MySQL语法和函数,很适合依赖关系型数据库(比如MySQL, SQL Serve...

    十毛
  • Python+matplotlib数据可视化设置图例3个精选案例

    图例往往位于图形的一角或一侧,用于对所绘制的图形中使用的各种符号和颜色进行说明,对于理解图形有重要的作用。

    Python小屋屋主
  • iOS逆向(10)-越狱!越狱!远程连接登录手机

    之前的九篇文章讲述的是在不越狱的情况下,详细的讲解了对APP重签名的原理,如何动态库注入,以及之后的各种调试技巧。这些功能其实已经很强大了,能够帮助咱们在绝大多...

    iOSSir
  • 假如吴秀波投资公司用了电子公章……

    9月27日上午,一则“吴秀波公司法人被拘留”的消息引发大家热议,消息称《大军师司马懿》因收益分配问题深陷多起诉讼案件中。该剧的制片人,也是吴秀波投资公司的前法人...

    法大大电子合同
  • 图解Java设计模式之组合模式

    编写程序展示一个学校院系结构 :需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。如图 :

    海仔
  • 从决策树到随机森林:树型算法的原理与实现

    选自Github.io 作者:Sadanand Singh 机器之心编译 基于树(Tree based)的学习算法在数据科学竞赛中是相当常见的。这些算法给预测模...

    机器之心

扫码关注云+社区

领取腾讯云代金券