一、下载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