iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php8.2 编译安装(详细)+ bash脚本
  • 935
分享到

php8.2 编译安装(详细)+ bash脚本

php 2023-08-31 20:08:19 935人浏览 独家记忆
摘要

编译安装php8.2.8(2023.7.4) 以下操作在debian11演示,其余deb系列(如ubuntu)同样,redhat系列自行安装依赖其余一样 仅限linux系统,bsd系统不适用此教程(因

编译安装php8.2.8(2023.7.4)
以下操作在debian11演示,其余deb系列(如ubuntu)同样,redhat系列自行安装依赖其余一样
仅限linux系统,bsd系统不适用此教程(因为命令不一样,但是差不多)

在全文的最后,我写了bash脚本(只支持deb系),可以参考,直接运行bash脚本一键编译安装


1.下载并解压源码

php官方下载页面
在/usr/local目录下操作

cd /usr/local

下载源码包

wget https://www.PHP.net/distributions/php-8.2.8.tar.gz

解压并进入目录

tar -zxvf php-8.2.8.tar.gz && cd php-8.2.8

2.安装依赖

依赖是根据开启的扩展决定的,以下的拓展是常用的,编译安装的好处之一,就是如果缺少拓展也很容易自行安装。

apt-get install build-essential autoconf automake libtool libsqlite3-dev pkg-config libjpeg-dev libpng-dev libxml2-dev libbz2-dev libcurl4-gnutls-dev libssl-dev libffi-dev libWEBp-dev libonig-dev libzip-dev

3.编译安装

查看编译参数(可跳过,如果你不知道参数的作用)

./configure -help

编译参数如下:

./configure --prefix=/usr/local/php --sysconfdir=/etc/php --with-openssl --with-zlib --with-bz2 --with-curl --enable-bcmath --enable-gd --with-webp --with-jpeg --with-mhash --enable-mbstring --with-imap-ssl --with-Mysqli --enable-exif --with-ffi --with-zip --enable-Sockets --with-pcre-jit --enable-fpm --with-pdo-mysql --enable-pcntl

上面的展开说明(使用的话直接复制上面的,这里是做解释用的)

./configure  --prefix=/usr/local/php  #安装地址--sysconfdir=/etc/php   #设置文件地址--with-openssl  #启用ssl--with-zlib  --with-bz2  --with-curl  #启用curl(必开)--enable-bcmath  --enable-gd  --with-webp  --with-jpeg  --with-mhash  --enable-mbstring  #必开,很多需要用到--with-imap-ssl  --with-mysqli  #mysqli函数,如果用pdo,可以补开--enable-exif  --with-ffi  #支持外挂C程序--with-zip  --enable-sockets  #开启socket--with-pcre-jit  #开启jit--enable-fpm  #开启fpm模式(必开)--with-pdo-mysql   #支持mysql--with-pdo-pgsql  #支持pgsql--enable-pcntl

显示如下的提示,说明可以继续安装了
在这里插入图片描述编译安装,安装时间比较长,请耐心等待!

make && make install

编译完成后会显示类似如下信息:
里面包含了各种文件的地址,建议编译后截图保存,方便日后查看
在这里插入图片描述

4.添加系统用户

添加用户组,名字用www是因为通常php做web后端开发的,可以改成别的。

groupadd www

添加用户(一个不允许登录的用户)

useradd -g www -s /sbin/nologin www

5.配置

将配置文件复制到正确的位置(很多情况下修改配置不生效就是配置文件地址没搞对)

cp /usr/local/php-8.2.8/php.ini-development /usr/local/php/lib/php.ini
cp /etc/php/php-fpm.conf.default /etc/php/php-fpm.conf
cp /etc/php/php-fpm.d/www.conf.default /etc/php/php-fpm.d/www.conf

6.配置环境变量

vi /etc/profile

在PATH中添加,和其它的目录用:分隔开

/usr/local/php/bin

类似如下(写的详细些,一些新手对环境变量理解不够)
在这里插入图片描述
保存退出后,刷新环境变量

source /etc/profile

输入以下命令,如果能够返回版本号,说明配置成功

php -v

正确返回如下的信息
在这里插入图片描述

7.配置php

修改默认session位置
创建临时地址

mkdir /usr/local/php/tmp && chmod -R 755 /usr/local/php/tmp

修改php.ini

vi /usr/local/php/lib/php.ini

找到session.save_path,修改后面内容为"/usr/local/php/tmp"(原本是“/tmp”)

配置php-fpm

vi /etc/php/php-fpm.d/www.conf

修改user=www,group=www(原本都是nobody)

8.systemctl管理(php-fpm)

创建脚本文件

vi /usr/lib/systemd/system/php-fpm.service

内容如下

[Unit]Description=php-fpmAfter=syslog.target network.target[Service]Type=forkingExecStart=/usr/local/php/sbin/php-fpmExecReload=/bin/kill -USR2 $MaiNPIDPrivateTmp=true[Install]WantedBy=multi-user.target

刷新systemctl

systemctl daemon-reload

开启、开机启动

systemctl start php-fpm && systemctl enable php-fpm && systemctl status php-fpm

至此php编译安装和php-fpm的启动就完成了
注意:php有两种常见的运行方式,apache和nginx的调用方式不同,nginx调用php-fpm。


9.常用的php基本命令

命令行下操作
查看配置文件的位置

php --ini

确定php cli安装了哪些拓展

php -m

10.php配置外部组件

陆续更新增加链接,包括但不限于以下
php配置nginx: php配置nginx

php增加redis拓展支持: php配置redis

php增加mongodb拓展支持:php配置mongodb

php增加rabbitmq拓展支持

php增加swoole拓展支持

php多版本并存

composer使用

jit开启及配置: php开启jit

11.bash脚本一键编译安装(参考)

仅支持deb系,如果别的自行修改bash
创建文件

vi /usr/local/php82.sh

内容如下

#!/bin/bash# 常量设置php_version="8.2.8" # php版本install_path="/usr/local" # 安装、操作目录# 安装依赖echo "......正在安装依赖......"apt-get install -y build-essential autoconf automake libtool libsqlite3-dev pkg-config libjpeg-dev libpng-dev libxml2-dev libbz2-dev libcurl4-gnutls-dev libssl-dev libffi-dev libwebp-dev libonig-dev libzip-devecho "......依赖安装完成......"# 下载php源码包echo "......正在下载源码包......"cd ${install_path}wget -P ${install_path} Https://www.php.net/distributions/php-${php_version}.tar.gz echo "......源码包下载完成......"# 解压缩echo "......正在解压缩源码包......"tar -zxf ${install_path}/php-${php_version}.tar.gzecho "......源码包解压缩完成......"# 编译安装echo "......正在编译安装......"${install_path}/php-${php_version}/configure --prefix=${install_path}/php --sysconfdir=/etc/php --with-openssl --with-zlib --with-bz2 --with-curl --enable-bcmath --enable-gd --with-webp --with-jpeg --with-mhash --enable-mbstring --with-imap-ssl --with-mysqli --enable-exif --with-ffi --with-zip --enable-sockets --with-pcre-jit --enable-fpm --with-pdo-mysql --enable-pcntlcd ${install_path}/php-${php_version} && make && make installecho "......编译安装完成......"# 添加用户组和用户echo "......正在添加用户组和用户......"groupadd www && useradd -g www -s /sbin/nologin wwwecho "......完成添加用户组和用户......"# 配置文件复制echo "......正在复制配置文件......"cp ${install_path}/php-${php_version}/php.ini-development ${install_path}/php/lib/php.inicp /etc/php/php-fpm.conf.default /etc/php/php-fpm.confcp /etc/php/php-fpm.d/www.conf.default /etc/php/php-fpm.d/www.confecho "......复制配置文件完成......"# 配置环境变量echo "......正在配置环境变量......"echo "export PATH=\$PATH:/usr/local/php/bin" >> /etc/profile. /etc/profileecho "......配置环境变量完成......"# 配置phpecho "......正在配置php配置文件......"## 创建session文件夹mkdir ${install_path}/php/tmp && chmod -R 755 ${install_path}/php/tmp## 修改配置文件(/usr/local/php/lib/php.ini)中的地址sed -i 's/;session.save_path = "\/tmp"/session.save_path = "\/usr\/local\/php\/tmp"/g' /usr/local/php/lib/php.ini## 修改配置文件(/etc/php/php-fpm.d/www.conf)中的用户sed -i 's/user = nobody/user = www/g' /etc/php/php-fpm.d/www.confsed -i 's/group = nobody/group = www/g' /etc/php/php-fpm.d/www.confecho "......配置php配置文件完成......"# 配置systemctl脚本echo "......正在配置systemctl脚本......"cat>/usr/lib/systemd/system/php-fpm.service<<EOF[Unit]Description=php-fpmAfter=syslog.target network.target[Service]Type=forkingExecStart=${install_path}/php/sbin/php-fpmExecReload=/bin/kill -USR2 \$MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.targetEOFsystemctl daemon-reloadsystemctl start php-fpmsystemctl enable php-fpmsystemctl status php-fpmecho "......systemctl脚本配置完成......"echo "......!!!脚本运行完成!!!......"

运行文件

sh /usr/local/php82.sh

来源地址:https://blog.csdn.net/ziqibit/article/details/129461718

--结束END--

本文标题: php8.2 编译安装(详细)+ bash脚本

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

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

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

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

下载Word文档
猜你喜欢
  • php8.2 编译安装(详细)+ bash脚本
    编译安装php8.2.8(2023.7.4) 以下操作在debian11演示,其余deb系列(如ubuntu)同样,redhat系列自行安装依赖其余一样 仅限linux系统,bsd系统不适用此教程(因...
    99+
    2023-08-31
    php
  • MySQL5.6一键编译安装脚本分享
    本篇内容主要讲解“MySQL5.6一键编译安装脚本分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL5.6一键编译安装脚本分享”吧! ...
    99+
    2024-04-02
  • Apache PHP编译安装详细步骤
    Apache和PHP是网站开发中常用的两种工具,编译安装可以让我们更加灵活地配置和管理它们。下面将详细介绍Apache和PHP的编译安装步骤,包括具体的代码示例。 步骤一:下载Apac...
    99+
    2024-03-08
    编译 php apache
  • MySQL5.6.19的编译安装详细步骤
    这篇文章主要介绍“MySQL5.6.19的编译安装详细步骤”,在日常操作中,相信很多人在MySQL5.6.19的编译安装详细步骤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • 编译安装 vsFTP 3.0.3的详细解析
    漏洞详情 VSFTP是一套基于GPL发布的类Unix系统上使用的FTP服务器软件。该软件支持虚拟用户、支持两种认证方式(PAP或xinetd/tcp_wrappers)、支持带宽限...
    99+
    2024-04-02
  • Mysql5.6.36脚本编译安装及初始化教程
    概述 本文为centos7.3自动化编译安装mysql5.3.6的脚本及后续初始化操作,话不多少,直接上脚本。 安装脚本install.py如下: #coding=utf-8 #!/usr/bin/p...
    99+
    2024-04-02
  • Mac OS编译安装Nginx的详细步骤
    这篇文章主要讲解了“Mac OS编译安装Nginx的详细步骤”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mac OS编译安装Nginx的详细步骤”吧!首先建个临时目录 nginx-src ...
    99+
    2023-06-05
  • PHP源码编译安装管理常用的脚本
    本篇内容介绍了“PHP源码编译安装管理常用的脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!#!/bin...
    99+
    2024-04-02
  • CentOS6.4下编译和安装MySQL5.6.14的详细步骤
    本篇内容介绍了“CentOS6.4下编译和安装MySQL5.6.14的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一:卸载旧版本使...
    99+
    2023-06-10
  • MySQL编译安装与编译参数详解
    这篇文章主要介绍“MySQL编译安装与编译参数详解”,在日常操作中,相信很多人在MySQL编译安装与编译参数详解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL编译安...
    99+
    2024-04-02
  • yum命令详解,配置本地yum源,编译安装
    一、yum简介 Yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动...
    99+
    2023-08-31
    linux 服务器 centos
  • 源代码编译安装PHP PDO MySQL:详细步骤解析
    源代码编译安装PHP PDO MySQL:详细步骤解析 在搭建Web服务器的过程中,PHP和MySQL是两个不可或缺的重要组件。而PHP的PDO扩展(PHP Data Objects)...
    99+
    2024-03-07
    编译 源代码 安装。
  • CentOS系统编译安装PHP-5.6.27版本
    一、手动安装编译工具: yum install -y gcc gcc-c++ 二、添加用户和用户组: groupadd webuseradd -M -s /sbin/nologin -g web php 三、yum安装依赖: yum ...
    99+
    2023-10-18
    php linux
  • 编写自己的python3安装脚本
    python在Linux集群运维时需要统一python版本,简单的编写python安装脚本,以便统一安装,需要机器有安装包源环境(网络源/本地源)python源码包(下载到本地或在线),源码包国内推荐sohu python源包。此脚本无任何...
    99+
    2023-01-31
    自己的 脚本
  • CentOS7编译安装MySQL5.7.24的教程详解
    安装依赖 (1)cmake是新版MySQL的编译工具 sudo yum install gcc gcc-c++ pcre pcre-devel openssl openssl-devel sudo y...
    99+
    2024-04-02
  • Ubuntu系统安装opencv的python版本以及编译安装C++版本
    目录 1.opencv的python 版本安装方式(python版本可以直接安装,无需编译) (1)方法一:利用pip的方式安装 (2)方法二:利用apt-get方式安装  2.opencv的C++版本的安装方式(以3.4.12版本为例,其...
    99+
    2023-10-24
    python opencv ubuntu
  • 基于python编写的shell脚本详细讲解
    今天同事叫我编写一个shell脚本。话说,虽然我受*nix的影响甚深,但是对于*nix 里随处可见的sh脚本却是讨厌之极。为什么讨厌呢?首先是因为sh脚本那莫名其妙的语法,感觉就像随...
    99+
    2024-04-02
  • MySQL5.5版本安装详细讲解
    MySQL5.5版本安装详细讲解 1.打开下载的安装文件,出现如下界面,mysql安装向导启动,点击“next”继续 2.同意协议,点击“next”继续 3.选择安装类型 Typical----默认安装 2.Custom----完...
    99+
    2023-08-18
    mysql 数据库 java 青少年编程 经验分享
  • linux安装nginx详细步骤和make编译报错问题(保姆级)
    目录 1.安装依赖包 2.下载并解压安装包 3.安装nginx 3-1.源码编辑时常见错误解决方法 4.启动nginx服务 4-1.配置nginx.conf 5.重启nginx 6.若想使用外部主机访问nginx,需要关闭服务器防火墙或开...
    99+
    2023-09-09
    linux 运维 nginx 服务器
  • 全编译部署LNMP平台+Wordpress内容管理器(附安装包和脚本)
    企业最常用的两种web架构就是LAMP和LNMP,今天就用编译的方式介绍一下LNMP的安装步骤,使用wordpress的CMS做网站的内容管理器 LAMP=Linux+Apache+Mysql+PHP LNMP=Linux+Nginx+My...
    99+
    2023-09-06
    php mysql 服务器 nginx linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作