我是靠谱客的博主 犹豫跳跳糖,最近开发中收集的这篇文章主要介绍centos编译安装php7_详解Centos7源码编译安装 php7.2之生产篇,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

介绍:

久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具体性能有多好,建议还是先尝试下再说。如果你是升级或新安装,那你首先需要考虑php7和程序是否存在兼容性,如果程序是基于php5开发的,那么就需要考虑php7是否适合你当前的生产环境,今天我就实操并安装用于生产中。

先安装php依赖包,否则在编译安装php7的过程当中会出现各种报错,安装完成后即可进入下一个环节。

安装扩展包并更新系统内核:

$ 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

创建用户和组,并下载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

设置变量并开始源码编译:

$ 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-jis-conv

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

若无报错执行下一步安装,如果编译过程中出现错误,根据报错安装依赖包,通常不会出现这种问题。

注意:–enable-gd-jis-conv  此参数会导致Zabbix中文字符乱码,建议取消。

开始安装:

$ make -j 4 && make install

完成安装后配置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

修改 php.ini 相关参数:

$ 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"

设置 OPcache 缓存:

[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

设置php安全函数:

$ vim /usr/local/php/etc/php.ini

默认值:

disable_functions =

修改为:

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

或通配:

disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru

配置www.conf

取消以下注释并修改优化其参数:

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

创建php-cgi.sock存放目录

$ mkdir /var/run/www/

$ chown -R www:www /var/run/www

配置php-fpm.conf

取下以下注释并填写完整路径:

pid = /usr/local/php/var/run/php-fpm.pid

至此php7已经安装完成。

说明:禁用php函数,如果程序需要这些函数,可以取消禁止,新手建议忽略此步骤。

创建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

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

$ systemctl enable php-fpm.service

$ systemctl restart php-fpm.service

PHP整个安装过程已经完成。如果你是按照本文安装未成功的,希望你能留言说明错误原因,我将无偿协助你配置。

如果你有好的建议完善该文章,非常欢迎你提出和改进,我们一起共同学习和进步。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

最后

以上就是犹豫跳跳糖为你收集整理的centos编译安装php7_详解Centos7源码编译安装 php7.2之生产篇的全部内容,希望文章能够帮你解决centos编译安装php7_详解Centos7源码编译安装 php7.2之生产篇所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部