iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >步骤详解Centos中编译安装php8与配置方法
  • 475
分享到

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

phpcentos 2023-05-14 19:05:39 475人浏览 安东尼
摘要

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

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

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

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.gz
tar -zxvf php-8.1.6.tar.gz
cd 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.gz
tar -zxvf onig-6.9.8.tar.gz
cd onig-6.9.8
./configure --prefix=/usr
make && 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
# 或者使用 development
cp 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.conf
cp /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 文件:

<?php

phpinfo();

1a48a3a4f40a9acadd582fd72044e1c.jpg

nginx php 多版本共存

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

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

[www]
; 根据版本配置,比如 php8.1 配置为 php-cgi-81.sock
listen = /tmp/php-cgi-81.sock
listen.backlog = 8192
listen.allowed_clients = 127.0.0.1
; 运行 master 进程用户名,一定要设置!!并且 listen 中设置的文件 nginx 必须有读权限,否则会报错
listen.owner = www
; 运行 master 进程用户名,参考上一个
listen.group = www
listen.mode = 0666
; worker 进程运行的用户,该用户需要有运行的 PHP 文件的读权限,如涉及文件上传还需要对应目录的写权限
user = www
; worker 进程的用户组,参考上一项
group = www
; 动态调整 worker 数
pm = dynamic
; 依据版本设置 如 php8.1 配置为 phpfpm_81_status
pm.status_path = /phpfpm_81_status
; 最大 worker 进程数 一般设置为 内存/50M
pm.max_children = 50
; 启动时的 worker 进程数
pm.start_servers = 5
; 限制时的最小 Worder 进程数
pm.min_spare_servers = 5
; 限制时的最大 worder 进程数
pm.max_spare_servers = 10
; 请求超时时间
request_terminate_timeout = 100
; 慢日志记录时间,请求事件超出此时间会记录日志
request_slowlog_timeout = 30
; 慢日志目录,目录一定要存在且上面设置的 user 用户要有写权限
slowlog = /www/wwwlogs/php/slow.log

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

 location ~ [^/]\.php(/|$) {
-    fastcgi_pass   127.0.0.1:9000;
+    fastcgi_pass   unix:/tmp/php81.sock;
     fastcgi_index  index.php;
     include        fastcgi.conf;
 }

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-fpm81

function 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 是上一步自定义得到文件名)

# 添加运行权限
chmod +x /etc/init.d/php-fpm81
chkconfig --add php-fpm81
chkconfig php-fpm81 on

手动操作命令如下:

# 启动
/etc/init.d/php-fpm81 start
# 停止
/etc/init.d/php-fpm81 stop
# 平滑重启
/etc/init.d/php-fpm81 reload
# 重启
/etc/init.d/php-fpm81 restart
# 运行状态
/etc/init.d/php-fpm81 status

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

--结束END--

本文标题: 步骤详解Centos中编译安装php8与配置方法

本文链接: https://www.lsjlt.com/news/203621.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 步骤详解Centos中编译安装php8与配置方法
    本篇文章给大家带来了关于php的相关知识,其中主要介绍了在Centos系统中是如何编译安装php,以及如何正确配置的,步骤很详细!感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。PHP(全称:PHP:Hypertext Preproces...
    99+
    2023-05-14
    php centos
  • Linux下编译hive与配置安装步骤
    这篇文章主要介绍“Linux下编译hive与配置安装步骤”,在日常操作中,相信很多人在Linux下编译hive与配置安装步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下编译hive与配置安装步骤...
    99+
    2023-06-03
  • CentOS内核的编译与安装方法
    本篇内容介绍了“CentOS内核的编译与安装方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux 内核简介现在让我们从一个比较高的高...
    99+
    2023-06-10
  • Redis安装与配置详细步骤
    这篇文章主要讲解了“Redis安装与配置详细步骤”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis安装与配置详细步骤”吧!安装下载,解压,编译:$ wget http://downlo...
    99+
    2023-06-05
  • Vue安装与环境配置步骤详解
    目录1、安装node.js2、查看npm3、安装npm的国内镜像—cnpm4、安装webpack(一款开源的前端打包工具)5、查看webpack是否安装成功6、安装vue...
    99+
    2024-04-02
  • ubuntu20安装配置mysql8.0.23步骤详解
    目录引言前提安装配置注意事项查看mysql状态登录本地 root 用户远程root 用户远程连接引言 网上安装配置mysql教程纷繁杂乱。我常折腾wsl、虚拟机、树莓派,多是使用apt包管理器、基于Ubuntu的linu...
    99+
    2023-05-16
    ubuntu安装配置mysql ubuntu20安装配置mysql8.0.23
  • 详解CentOS 7中Git的安装步骤
    Git 被广泛应用于代码版本控制,是目前最受欢迎的开源分布式版本控制系统之一,而在 Centos 7 中安装 Git 十分简单,只需要进行几个简单的步骤即可。 本文将为大家介绍在 CentOS 7 中如何安装 Git。步骤一:检查Git是否...
    99+
    2023-10-22
  • php for Linux源码编译安装与配置方法
    这篇文章主要讲解了“php for Linux源码编译安装与配置方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php for Linux源码编译安装与配...
    99+
    2024-04-02
  • 详解Git服务安装和配置的方法及步骤
    近年来,Git被越来越多的人所接受和使用。Git可以很好的管理项目,而且有非常多人去维护他,使他成为了目前最受欢迎的版本控制软件之一。如果你和我一样经常使用Git,那么就需要配置一个git服务 来管理你的代码库。接下来,我将为大家提供一些关...
    99+
    2023-10-22
  • git怎么安装配置?步骤详解
    Git是一款开源的分布式版本控制系统,它可以帮助我们高效地管理项目代码。安装Git并配置好环境可以使开发者更加轻松地管理自己的项目。下面是Git的安装步骤。第一步:下载Git首先,需要从官方网站https://git-scm.com/dow...
    99+
    2023-10-22
  • PyCharm与PyTorch完美结合:安装配置步骤详解
    PyCharm是一款强大的集成开发环境(IDE),而PyTorch是深度学习领域备受欢迎的开源框架。在机器学习和深度学习领域,使用PyCharm和PyTorch进行开发可以极大地提高开...
    99+
    2024-02-22
    pytorch pycharm 配置
  • centos上怎么安装配置gitlab(方法详解)
    在进行软件开发时,版本控制是一项必不可少的任务,有助于团队协作和代码管理。GitLab是一个流行的开源软件,由于其人性化的界面和强大的功能,广受欢迎。本文将为大家介绍如何在CentOS上安装GitLab并进行配置。一、安装GitLab所需的...
    99+
    2023-10-22
  • centos中lvs安装和配置方法
    这篇文章主要讲解了“centos中lvs安装和配置方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“centos中lvs安装和配置方法”吧!一、lvs-nat模式网络配置:代码如下:lvs-...
    99+
    2023-06-10
  • 源代码编译安装PHP PDO MySQL:详细步骤解析
    源代码编译安装PHP PDO MySQL:详细步骤解析 在搭建Web服务器的过程中,PHP和MySQL是两个不可或缺的重要组件。而PHP的PDO扩展(PHP Data Objects)...
    99+
    2024-03-07
    编译 源代码 安装。
  • linux 下载 安装 php详细步骤与nginx配置
    安装必备软件-php安装 1 、添加 PHP 的源地址   rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm...
    99+
    2023-10-09
    php linux 服务器
  • CentOS 7下Samba服务安装与配置详解
    CentOS 7下Samba服务安装与配置详解 一、Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Message...
    99+
    2023-09-09
    linux 服务器 运维
  • docker安装nginx并配置ssl的方法步骤
    最近想在吃灰了一年多的服务器上,安装一下docker,结果始终找不到合适的yum源,后来经过一番百度才知道,原来centos8要凉了,所以好多镜像站都移除了CentOS 8的源。 没...
    99+
    2024-04-02
  • CentOS 7下安装与配置MySQL 5.7的方法
    这篇文章主要介绍CentOS 7下安装与配置MySQL 5.7的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文测试环境:CentOS 7 64-bit Minimal MyS...
    99+
    2024-04-02
  • yum命令详解,配置本地yum源,编译安装
    一、yum简介 Yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动...
    99+
    2023-08-31
    linux 服务器 centos
  • CentOS yum配置安装软件与配置文件修改方法
    本篇内容介绍了“CentOS yum配置安装软件与配置文件修改方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!非常讲究的CentOS yu...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作