详解Centos7源码编译安装 php7.2之生产篇
介绍:
久闻php7的速度以及性能那可是比php5系列的任何一版本都要快,具体性能有多好,建议还是先尝试下再说。如果你是升级或新安装,那你首先需要考虑php7和程序是否存在兼容性,如果程序是基于php5开发的,那么就需要考虑php7是否适合你当前的生产环境,今天我就实操并安装用于生产中。
先安装php依赖包,否则在编译安装php7的过程当中会出现各种报错,安装完成后即可进入下一个环节。
安装扩展包并更新系统内核:
$yuminstallepel-release-y $yumupdate
安装php依赖组件(包含Nginx依赖):
$yum-yinstallwgetvimpcrepcre-developensslopenssl-devellibicu-develgccgcc-c++autoconflibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibxml2libxml2-develzlibzlib-develglibcglibc-develglib2glib2-develncursesncurses-develcurlcurl-develkrb5-devellibidnlibidn-developenldapopenldap-develnss_ldapjemalloc-develcmakeboost-develbisonautomakelibeventlibevent-develgdgd-devellibtool*libmcryptlibmcrypt-develmcryptmhashlibxsltlibxslt-develreadlinereadline-develgmpgmp-devellibcurllibcurl-developenjpeg-devel
创建用户和组,并下载php安装包解压:
$cd/tmp $groupaddwww $useradd-gwwwwww $wgethttp://am1.php.net/distributions/php-7.2.1.tar.gz $tarxvfphp-7.2.1.tar.gz $cdphp-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-j4&&makeinstall
完成安装后配置php.ini文件:
$cpphp.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-Rwww: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=ThePHPFastCGIProcessManager After=syslog.targetnetwork.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服务并加入开机自启动:
$systemctlenablephp-fpm.service $systemctlrestartphp-fpm.service
PHP整个安装过程已经完成。如果你是按照本文安装未成功的,希望你能留言说明错误原因,我将无偿协助你配置。
如果你有好的建议完善该文章,非常欢迎你提出和改进,我们一起共同学习和进步。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。