分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

CentOS 编译安装PHP5.6(7以上也通用)

发布时间:2023-09-06 02:32责任编辑:蔡小小关键词:PHP编译

由于公司有新服务器需要构建一套LNMP平台,且需要编译安装各个部件,所以记录下此文章。

这是安装PHP涉及到的软件包(可以自行决定使用哪个版本):

├── libiconv-1.15.tar.gz├── libmcrypt-2.5.8.tar.gz├── openssl-1.0.2o.tar.gz├── php-5.6.38.tar.gz└── zend-loader-php5.6-linux-x86_64.tar.gz 

涉及到的开机启动脚本:

1. init.d.php-fpm

#! /bin/sh# chkconfig: 2345 55 25# Description: Startup script for php-fpm on Debian. Place in /etc/init.d and# run ‘update-rc.d -f php-fpm defaults‘, or use the appropriate command on your# distro. For CentOS/Redhat run: ‘chkconfig --add php-fpm‘### BEGIN INIT INFO# Provides: ?????????php-fpm# Required-Start: ???$all# Required-Stop: ????$all# Default-Start: ????2 3 4 5# Default-Stop: ?????0 1 6# Short-Description: starts php-fpm# Description: ??????starts php-fpm### END INIT INFO# Author: ??licess# website: ?https://lnmp.orgphp_fpm_BIN=/usr/local/php/bin/php-cgiphp_fpm_CONF=/usr/local/php/etc/php-fpm.confphp_fpm_PID=/usr/local/php/logs/php-fpm.pidphp_opts="--fpm-config $php_fpm_CONF"wait_for_pid () { ???try=0 ???while test $try -lt 35 ; do ???????case "$1" in ???????????‘created‘) ???????????if [ -f "$2" ] ; then ???????????????try=‘‘ ???????????????break ???????????fi ???????????;; ???????????‘removed‘) ???????????if [ ! -f "$2" ] ; then ???????????????try=‘‘ ???????????????break ???????????fi ???????????;; ???????esac ???????echo -n . ???????try=`expr $try + 1` ???????sleep 1 ???done}case "$1" in ???start) ???????echo -n "Starting php_fpm " ???????$php_fpm_BIN --fpm $php_opts ???????if [ "$?" != 0 ] ; then ???????????echo " failed" ???????????exit 1 ???????fi ???????wait_for_pid created $php_fpm_PID ???????if [ -n "$try" ] ; then ???????????echo " failed" ???????????exit 1 ???????else ???????????echo " done" ???????fi ???;; ???stop) ???????echo -n "Shutting down php_fpm " ???????if [ ! -r $php_fpm_PID ] ; then ???????????echo "warning, no pid file found - php-fpm is not running ?" ???????????exit 1 ???????fi ???????kill -TERM `cat $php_fpm_PID` ???????wait_for_pid removed $php_fpm_PID ???????if [ -n "$try" ] ; then ???????????echo " failed" ???????????exit 1 ???????else ???????????echo " done" ???????fi ???;; ???quit) ???????echo -n "Gracefully shutting down php_fpm " ???????if [ ! -r $php_fpm_PID ] ; then ???????????echo "warning, no pid file found - php-fpm is not running ?" ???????????exit 1 ???????fi ???????kill -QUIT `cat $php_fpm_PID` ???????wait_for_pid removed $php_fpm_PID ???????if [ -n "$try" ] ; then ???????????echo " failed" ???????????exit 1 ???????else ???????????echo " done" ???????fi ???;; ???restart) ???????$0 stop ???????$0 start ???;; ???reload) ???????echo -n "Reload service php-fpm " ???????if [ ! -r $php_fpm_PID ] ; then ???????????echo "warning, no pid file found - php-fpm is not running ?" ???????????exit 1 ???????fi ???????kill -USR2 `cat $php_fpm_PID` ???????echo " done" ???;;status)if [ -f "$php_fpm_PID" ]; then ?????????????echo "PHP-FPM is running." ???????else ???????????echo "PHP-FPM is stopped." ???????fi ????????;; ???logrotate) ???????echo -n "Re-opening php-fpm log file " ???????if [ ! -r $php_fpm_PID ] ; then ???????????echo "warning, no pid file found - php-fpm is not running ?" ???????????exit 1 ???????fi ???????kill -USR1 `cat $php_fpm_PID` ???????echo " done" ???;; ???*) ???????echo "Usage: /etc/init.d/php-fpm {start|stop|quit|restart|reload|status|logrotate}" ???????exit 1 ???;;esac

1)安装依赖包

yum install make cmake gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel patch wget crontabs libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel unzip tar bzip2 bzip2-devel libzip-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel libcurl libcurl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel vim-minimal gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap diffutils ca-certificates net-tools libc-client-devel psmisc libXpm-devel git-core c-ares-devel libicu-devel libxslt libxslt-devel xz expat-devel libaio-devel rpcgen libtirpc-devel perl

 

2)安装openssl

tar vxzf openssl-1.0.2o.tar.gzcd openssl-1.0.2o./config -fPIC --prefix=/usr/local/openssl --openssldir=/usr/local/opensslmake dependmake -j `grep ‘processor‘ /proc/cpuinfo | wc -l`make install

3)安装libiconv

cd ../tar vxzf libiconv-1.15.tar.gzcd libiconv-1.15./configure --enable-staticmake -j `grep ‘processor‘ /proc/cpuinfo | wc -l`make installecho ‘/usr/local/lib‘ >> /etc/ld.so.conf && /sbin/ldconfig

4)安装libmcrypt

cd ../tar vxzf libmcrypt-2.5.8.tar.gzcd libmcrypt-2.5.8./configuremake -j `grep ‘processor‘ /proc/cpuinfo | wc -l`make installcd libltdl/./configure --enable-ltdl-installmake -j `grep ‘processor‘ /proc/cpuinfo | wc -l`make installln -sf /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.laln -sf /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.soln -sf /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4ln -sf /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8ldconfig

5)安装php

5.6版本

./configure ?--prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/conf.d --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl=/usr/local/openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --enable-intl --with-xsl

7以上版本

./configure ?--prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/conf.d --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-ftp --with-gd --with-openssl=/usr/local/openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --enable-intl --with-xsl
make ZEND_EXTRA_LIBS=‘-liconv‘ -j `grep ‘processor‘ /proc/cpuinfo | wc -l`make install

  

6)添加软链接

ln -sf /usr/local/php/bin/php /usr/bin/phpln -sf /usr/local/php/bin/phpize /usr/bin/phpizeln -sf /usr/local/php/bin/pear /usr/bin/pearln -sf /usr/local/php/bin/pecl /usr/bin/peclln -sf /usr/local/php/sbin/php-fpm /usr/bin/php-fpm

7)创建配置文件目录

mkdir -p /usr/local/php/{etc,conf.d}cp php.ini-production /usr/local/php/etc/php.ini

9)修改php.ini配置文件

sed -i ‘s/post_max_size =.*/post_max_size = 50M/g‘ /usr/local/php/etc/php.inised -i ‘s/upload_max_filesize =.*/upload_max_filesize = 50M/g‘ /usr/local/php/etc/php.inised -i ‘s/;date.timezone =.*/date.timezone = PRC/g‘ /usr/local/php/etc/php.inised -i ‘s/short_open_tag =.*/short_open_tag = On/g‘ /usr/local/php/etc/php.inised -i ‘s/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo=0/g‘ /usr/local/php/etc/php.inised -i ‘s/max_execution_time =.*/max_execution_time = 300/g‘ /usr/local/php/etc/php.inised -i ‘s/disable_functions =.*/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,stream_socket_server/g‘ /usr/local/php/etc/php.ini

10)安装扩展工具

pear config-set php_ini /usr/local/php/etc/php.inipecl config-set php_ini /usr/local/php/etc/php.ini

  

11)安装ZendGuardLoader(php7以上不用安装)

cd ../tar vzxf zend-loader-php5.6-linux-x86_64.tar.gzmkdir -p /usr/local/zend/cp zend-loader-php5.6-linux-x86_64/ZendGuardLoader.so /usr/local/zend/cat >/usr/local/php/conf.d/002-zendguardloader.ini<<EOF[Zend ZendGuard Loader]zend_extension=/usr/local/zend/ZendGuardLoader.sozend_loader.enable=1zend_loader.disable_licensing=0zend_loader.obfuscation_level_support=3zend_loader.license_path=EOF

12)添加用户组

groupadd wwwuseradd -s /sbin/nologin -g www www

13)修改php-fpm配置文件

cat >/usr/local/php/etc/php-fpm.conf<<EOF[global]pid = /usr/local/php/var/run/php-fpm.piderror_log = /usr/local/php/var/log/php-fpm.loglog_level = notice[www]listen = /tmp/php-cgi.socklisten.backlog = -1listen.allowed_clients = 127.0.0.1listen.owner = wwwlisten.group = wwwlisten.mode = 0666user = wwwgroup = wwwpm = dynamicpm.max_children = 10pm.start_servers = 2pm.min_spare_servers = 1pm.max_spare_servers = 6request_terminate_timeout = 100request_slowlog_timeout = 0slowlog = var/log/slow.logEOF

14)开机启动

cp php-5.6.38/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm # init.d.php-fpm 见文章头chmod +x /etc/init.d/php-fpmchkconfig --add php-fpmchkconfig php-fpm on

15)启动测试

service php-fpm start

  

  

CentOS 编译安装PHP5.6(7以上也通用)

原文地址:https://www.cnblogs.com/ranwuer/p/10348646.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved