linux安装多个php环境

680 阅读2分钟

一、下载php源码包

1、创建目录管理下载的php源码包

mkdir -p  /lnmp/php8

2、下载源码包

cd /lnmp/php8 
wget https://www.php.net/distributions/php-8.0.6.tar.gz
tar -zxvf php-8.0.6.tar.gz

二、编译php

cd /lnmp/php8/php-8.0.6

./configure --prefix=/usr/local/php8 --enable-opcache --with-config-file-path=/usr/local/php8/etc --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-fpm --enable-static --enable-sockets --with-zip --enable-calendar --enable-bcmath --enable-mbstring --with-zlib --with-iconv=/usr/local/libiconv --enable-gd --with-jpeg  --with-gettext --enable-mbstring --with-curl --with-freetype --with-mysql-sock=/tmp/mysql.sock --disable-ipv6 --disable-debug --with-openssl --enable-intl --enable-opcache

/usr/local/php8 :安装目录

/usr/local/php8/etc:配置文件的目录

make && make install

1、常见错误

centos make: *** No targets specified and no makefile found. Stop.

一般都是 ./configure  设置出了问题

三、查看是否安装成功

1、安装目录 查看版本

/usr/local/php8/bin/php -v

2、设置别名

vi ~/.bash_profile
# 加入以下两行后保存退出
alias php8="/usr/local/php8/bin/php"
alias php="php8"

生效.bash_profile

source ~/.bash_profile

测试

php8 -v

四、修改 php-fpm 监听端口

cd /lnmp/php8/php-8.0.6
cp php.ini-development /usr/local/php8/lib/php.ini
cd /usr/local/php8/etc
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf
cd /usr/local/php8/etc/php-fpm.d
vim www.conf
#搜索9000
/9000
#把端口改成自己要的
listen = 127.0.0.1:9080

五、设置开机启动php

vim /etc/init.d/php8-fpm
#! /bin/sh

### BEGIN INIT INFO
# Provides:          php-fpm
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFO

prefix=/usr/local/php8
exec_prefix=${prefix}

php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid


php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"


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 --daemonize $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 "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. Use force-quit"
			exit 1
		else
			echo " done"
		fi
	;;

	status)
		if [ ! -r $php_fpm_PID ] ; then
			echo "php-fpm is stopped"
			exit 0
		fi

		PID=`cat $php_fpm_PID`
		if ps -p $PID | grep -q $PID; then
			echo "php-fpm (pid $PID) is running..."
		else
			echo "php-fpm dead but pid file exists"
		fi
	;;

	force-quit)
		echo -n "Terminating 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
	;;

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

	*)
		echo "Usage: $0 {start|stop|force-quit|restart|reload|status}"
		exit 1
	;;

esac

设置文件权限:

chmod a+x /etc/init.d/php8-fpm

加到开机启动项:

chkconfig --add php8-fpm
加入成功之后,可使用以下指令了
service php8-fpm start
service php8-fpm restart
service php8-fpm stop

六、查看是否启动成功:

ps aux|grep php

七、Nginx 配置

location ~ [^/]\.php(/|$)
        {
            fastcgi_pass  127.0.0.1:9080;
            fastcgi_index index.php;
            include fastcgi.conf;
        }

八、添加redis扩展

> cd /usr/local/php8/
> wget  https://pecl.php.net/get/redis-5.3.2.tgz
> tar xzf redis-5.3.2.tgz
> cd redis-5.3.2
> /usr/local/php8/bin/phpize
> ./configure --with-php-config=/usr/local/php8/bin/php-config
> make && make install 
> vim /usr/local/php8/etc/php.ini
> # 使用查找命令 /extension ,在 ;zend_extension=opcache 的上面一行加上 
> # extension=redis.so
> # :wq 保存退出
> # 重启启动php