步骤详解Centos中编译安装php8与配置方法

广告:宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取~~~

步骤详解Centos中编译安装php8与配置方法

本篇文章给大家带来了关于php的相关知识,其中主要介绍了在Centos系统中是如何编译安装php,以及如何正确配置的,步骤很详细!感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面。

准备工作

下载安装文件

保险起见使用 php 官网下载:https://www.php.net/downloads使用官网下载速度较慢,但是安全性有保障,如对安全性没有要求也可百度搜索相关镜像,本文选择最新稳定版本 PHP 8.1.6

wget https://www.php.net/distributions/php-8.1.6.tar.gztar -zxvf php-8.1.6.tar.gzcd php-8.1.6
登录后复制

安装依赖

yum install libxml2 libxml2-devel libsqlite3x-devel openssl bzip2 libcurl-devel libcurl libjpeg libpng freetype gmp libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glib2 ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel -y
登录后复制

注意:当前 Centos 官方镜像已停止服务,yum install 安装 devel 软件时,如报错无法安装可尝试将 /etc/yum.repos.d/ 目录下的 CentOS-Base.repo.rpmsave 中的文件内容覆盖至 CentOS-Linux-BaseOS.repoCentOS-AppStream.repo.rpmsave 覆盖至 CentOS-Linux-AppStream.repo,操作前请注意备份

因 yum 源中没有 oniguruma 包,这里使用 github 源码编译安装,项目地址:https://github.com/kkos/oniguruma

wget https://github.com/kkos/oniguruma/releases/download/v6.9.8/onig-6.9.8.tar.gztar -zxvf onig-6.9.8.tar.gzcd onig-6.9.8./configure --prefix=/usrmake && make install
登录后复制

创建用户

安全起见,我们需要创建一个用户用于运行 php,一般这个用户是禁止登陆的,本文创建用户名与用户组均为 www,这个名称可以自定义

# 创建用户组groupadd www# 创建用户useradd -g www www -M -s /sbin/nologin
登录后复制
-g www 指定用户组-M 不创建家目录(程序运行不需要家目录)-s /sbin/nologin 不允许登录,更加安全编译并安装
# 生成编译文件./configure --prefix=/www/server/php81 --with-config-file-path=/www/server/php81/etc --enable-fpm --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype --with-mcrypt --with-jpeg --with-png -with-zlib --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl -enable-mbstring --enable-gd --with-openssl --with-mhash --enable-pcntl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-opcache --with-xsl --enable-sockets --enable-mbregex --enable-ftp --with-webp# 编译并安装make && make install# 复制配置文件cp php.ini-production /www/server/php81/etc/php.ini# 或者使用 developmentcp php.ini-development /www/server/php81/etc/php.ini
登录后复制

如果使用 apache 的话,需要在编译参数中新增 --with-apxs2=/www/server/apache/bin/apxs,同时 --enable-fpm 参数可去除,其中 /www/server/apacheapache 安装目录,编译完成后在 apache 的配置文件中解注释对 php_module 的注释即可,本文不细讲 apache 配置。

配置

配置环境变量

/etc/profile 下新增 PATH=$PATH:/www/server/php81/bin && export PATH,使用 source /etc/profile 使配置立即生效。

创建 php-fpm 软链接:

ln -s /www/server/php81/sbin/php-fpm /www/server/php81/bin/php-fpm
登录后复制

nginx 配置 php

复制配置文件,如果之前已经复制过请跳过此步骤:

cp /www/server/php81/etc/php-fpm.conf.default /www/server/php81/etc/php-fpm.confcp /www/server/php81/etc/php-fpm.d/www.conf.default /www/server/php81/etc/php-fpm.d/www.conf
登录后复制

启动 php-fpm:

/www/server/php81/sbin/php-fpm
登录后复制

修改 nginx 配置文件

编辑 nginx.conf 文件,在对应的 server 下新增如下内容:

location ~ [^/]\.php(/|$) {    fastcgi_pass   127.0.0.1:9000;    fastcgi_index  index.php;    include        fastcgi.conf;}
登录后复制

重启 nginx ,nginx -s reload,在网站根目录新建 phpinfo.php 文件:

<?phpphpinfo();
登录后复制

nginx php 多版本共存

在日常的开发中,不同项目可能需要不同版本的 php 来运行,这就需要通过一些配置来实现 php 的共存。多个 php 版本共存时,需要在编译时将不同版本的 php 安装到不同的目录。

打开 php 安装路径,编辑文件 etc/php-fpm.d/www.confetc/php-fpm.conf,在文件中新增或修改以下项:

yum install libxml2 libxml2-devel libsqlite3x-devel openssl bzip2 libcurl-devel libcurl libjpeg libpng freetype gmp libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glib2 ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel -y0
登录后复制

随后在 nginx 配置文件,对应的 server 中修改 fastcgi_pass 为刚才设置中的 listen 对应的路径,注意此文件 nginx 运行用户必须有读权限,否则会报错:

yum install libxml2 libxml2-devel libsqlite3x-devel openssl bzip2 libcurl-devel libcurl libjpeg libpng freetype gmp libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glib2 ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel -y1
登录后复制

php-fpmphp-Fastcgi Process Managerphp-fpmFastCGI 的实现,并提供了进程管理的功能。php-fpm 进程包含 master 进程与 worker 进程,一般情况下,master 进程只有一个,负责监听端口、调度请求,而 worder 进程则有多个,每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正运行的地方。前文设置中的 workerphp-fpmworker 进程数量。

开机自启

编辑文件 /etc/init.d/php-fpm81,如需多版本兼容文件名后加上当前版本,如这里使用 php-fpm81,写入如下内容:

#!/bin/bash# chkconfig: - 51 64. /etc/init.d/functions# php-fpm 路径exec=/www/server/php81/sbin/php-fpm# 锁文件 用于识别当前软件是否在运行lock=/var/lock/subsys/php-fpm81# 标识 输出信息用 可随意修改proc=php-fpm81function start() {    pidofproc $exec > /dev/null    [ $? = 0 ] && echo "${proc} 正在运行中" && exit    daemon $exec    if [ $? = 0 ]; then        echo "${proc} 启动成功"        rm -f lock        touch $lock    else      echo "${proc} 启动失败 $?"    fi}function stop() {    pidofproc $exec > /dev/null    [ $? != 0 ] && echo "${proc} 未运行" && exit    killproc $exec    if [[ $? == 0 ]]; then        echo "${proc} 停止成功"        rm -f $lock    else      echo "${proc} 停止失败 $?"    fi}function reload() {    killproc $exec -HUP    if [[ $? == 0 ]]; then        echo "平滑重启成功"    else        echo "平滑重启失败 $?"    fi}function restart() {    stop    start}function procStatus() {    status $exec > /dev/null    if [[ $? == 0 ]]; then        echo "${proc} 已启动"    else        echo "${proc} 未启动"    fi}case "$1" in  start)    start    ;;  stop)    stop    ;;  reload)    reload    ;;  restart)    restart    ;;  status)    procStatus    ;;  *)    echo $"Usage: $0 {start|stop|reload|restart|status}"esac
登录后复制

随后添加为开机自启即可,如下:( php-fpm81 是上一步自定义得到文件名)

yum install libxml2 libxml2-devel libsqlite3x-devel openssl bzip2 libcurl-devel libcurl libjpeg libpng freetype gmp libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glib2 ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel -y3
登录后复制

手动操作命令如下:

yum install libxml2 libxml2-devel libsqlite3x-devel openssl bzip2 libcurl-devel libcurl libjpeg libpng freetype gmp libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glib2 ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel -y4
登录后复制

推荐学习:《PHP视频教程》

以上就是步骤详解Centos中编译安装php8与配置方法的详细内容,更多请关注9543建站博客其它相关文章!

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:PHP7留言板开发之 Ajax分页
下一篇:laravel参数怎么设置

发表评论

关闭广告
关闭广告