国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

構(gòu)建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的支持63個(gè)常見模塊的PHP8.1.20的RPM包

這篇具有很好參考價(jià)值的文章主要介紹了構(gòu)建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的支持63個(gè)常見模塊的PHP8.1.20的RPM包。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本文適用:rhel8系列,或同類系統(tǒng)(CentOS8,AlmaLinux8,RockyLinux8等)
文檔形成時(shí)期:2023年
因系統(tǒng)版本不同,構(gòu)建部署應(yīng)略有差異,但本文未做細(xì)分,對(duì)稍有經(jīng)驗(yàn)者應(yīng)不存在明顯障礙。
因軟件世界之復(fù)雜和個(gè)人能力之限,難免疏漏和錯(cuò)誤,歡迎指正。

背景

不同時(shí)期因各種原因經(jīng)常產(chǎn)生部署LNMP環(huán)境的需求,某些場景下需要自定義軟件,比如參數(shù)、模塊、安裝路徑,或多個(gè)版本共存,不能采用Docker等容器環(huán)境,采用自主構(gòu)建RPM包便成了比較快捷的方式之一。

環(huán)境準(zhǔn)備

yum install rpmdevtools
#創(chuàng)建目錄
rpmdev-setuptree
#或手動(dòng)創(chuàng)建目錄:

mkdir rpmbuild-php-8.1.20; cd rpmbuild-php-8.1.20
mkdir -p ./{BUILD,RPMS,SOURCES,SPECS,SRPMS}

依賴包和必要文件準(zhǔn)備

#安裝擴(kuò)展源并啟用PowerTools
dnf install epel-release
dnf config-manager --set-enabled PowerTools # 在CentOS8上,oniguruma-devel,aspell-devel位于PowerTools,
dnf config-manager --set-enabled powertools # 在Almalinux8上,oniguruma-devel,aspell-devel位于powertools,和CentOS8不同的是小寫的。
#如果不啟用,會(huì)提示:No match for argument: oniguruma-devel,No match for argument: aspell-devel

#通過dnf安裝依賴
dnf -y install wget libxml2 libxml2-devel sqlite-devel bzip2-devel libcurl-devel libffi-devel libpng-devel libwebp-devel libjpeg-devel freetype-devel oniguruma oniguruma-devel libzip libzip-devel unixODBC unixODBC-devel freetds freetds-devel libtool-ltdl libtool-ltdl-devel gmp-devel libicu-devel openldap openldap-devel libpq libpq-devel aspell aspell-devel libtidy libtidy-devel libxslt libxslt-devel readline readline-devel libsodium libsodium-devel libjpeg-turbo-utils libXpm-devel systemd-devel openssl openssl-devel

cp -frp /usr/lib64/libldap* /usr/lib/

目錄rpmbuild/SOURCES/下面的文件:
opcache.so php-8.1.20.tar.gz php-command.ini php-fpm.conf php.ini redis.so www.conf
構(gòu)建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的支持63個(gè)常見模塊的PHP8.1.20的RPM包,# RPM包構(gòu)建,linux,php,軟件構(gòu)建

說明:

  • PHP配置建議參考生產(chǎn)環(huán)境的常用配置,準(zhǔn)備一個(gè)比較通用的;
  • opcache.so和redis.so是同環(huán)境下編譯好的模塊文件,這樣可省略在RPM包構(gòu)建過程中執(zhí)行編譯;

php-8.1.20-el8.spec內(nèi)容

Name: php
Summary: PHP: Hypertext Preprocessor
Group: Development/Languages
Version: 8.1.20
Release: custom%{?dist}
Source: php-8.1.20.tar.gz
#Icon: php.gif
URL: http://www.php.net/
Packager: PHP Group <group@php.net>
License: GPL


%define _prefix  /opt/php81
Prefix:     %{_prefix}


%description
Copyright: The PHP license (see "LICENSE" file included in distribution)
PHP is an HTML-embedded scripting language. Much of its syntax is
borrowed from C, Java and Perl with a couple of unique PHP-specific
features thrown in. The goal of the language is to allow web
developers to write dynamically generated pages quickly.



%prep



%setup -q



%build
set -x
# ./buildconf
./configure --prefix=%{_prefix} --sysconfdir=%{_prefix}/etc --with-config-file-path=%{_prefix}/etc --with-openssl --with-zlib --with-bz2 --with-curl --enable-bcmath --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --with-mhash --enable-mbstring --with-imap-ssl --enable-exif --with-ffi --with-zip --enable-sockets --with-pcre-jit --enable-fpm --with-pdo-mysql --enable-pcntl --with-gettext --with-gmp --with-fpm-user=www --with-fpm-group=www --with-fpm-systemd --enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-mysqli --enable-mysqlnd --with-pdo-dblib --with-unixODBC --with-pdo-odbc=unixODBC,/usr/ --with-pgsql --with-pdo-pgsql --enable-ftp --enable-dba --enable-calendar --enable-intl --with-ldap --with-pspell --enable-shmop --enable-soap --with-tidy --with-xsl --with-readline --with-sodium
sed -ri "/^EXTRA_LIBS/s/(.*)/\1 -llber/" Makefile



make %{?_smp_mflags}





#
# Installation section
#

%install
[ %{buildroot} != "/" ] && rm -rf %{buildroot}
# %__make install DESTDIR="%{buildroot}"  # 經(jīng)實(shí)踐,該參數(shù)不行,要使用下面的INSTALL_ROOT。
make INSTALL_ROOT="%{buildroot}" install

%__install -c -d -m 755 "%{buildroot}/opt"
%__install -c -d -m 755 "%{buildroot}%{_prefix}/etc"
%__install -c -d -m 755 "%{buildroot}%{_prefix}/etc/php-fpm.d"
%__install -c -d -m 755 "%{buildroot}/usr/lib/systemd/system"
%__install -c -d -m 755 "%{buildroot}%{_prefix}/lib/php/extensions/no-debug-non-zts-20210902"
cp -f %_sourcedir/{php-command.ini,php.ini,php-fpm.conf} "%{buildroot}%{_prefix}/etc/"
cp -f %_sourcedir/www.conf "%{buildroot}%{_prefix}/etc/php-fpm.d/"
cp -f %_builddir/%{name}-%{version}/sapi/fpm/php-fpm.service "%{buildroot}/usr/lib/systemd/system/php-fpm.service"
cp -f %_sourcedir/redis.so "%{buildroot}%{_prefix}/lib/php/extensions/no-debug-non-zts-20210902/"
cp -f %_sourcedir/opcache.so "%{buildroot}%{_prefix}/lib/php/extensions/no-debug-non-zts-20210902/"


#
# Clean section
#

%clean
[ %{buildroot} != "/" ] && rm -rf "%{buildroot}"




%files
%defattr(-,root,root)
%{_prefix}
# 不在prefix路徑下的文件需要單獨(dú)指定
/usr/lib/systemd/system/php-fpm.service







%post
if [ $1 == 1 ];then
    groupadd www -g 319 2> /dev/null
    useradd -s /sbin/nologin -M www -u 319 -g 319 2> /dev/null
    mkdir /home/www 2> /dev/null
    chown www:www /home/www 2> /dev/null
    
    systemctl daemon-reload
    systemctl enable php-fpm
fi






%preun
if [ "$1" = 0 ]
then
    systemctl disable php-fpm
    systemctl stop php-fpm
    # userdel www
    cp %{_prefix}/etc/php.ini /opt/php.ini.rpmsave-`date +"%Y%m%d-%H%M%S"`
    cp %{_prefix}/etc/php-command.ini /opt/php-command.ini.rpmsave-`date +"%Y%m%d-%H%M%S"`
    cp %{_prefix}/etc/php-fpm.conf /opt/php-fpm.conf.rpmsave-`date +"%Y%m%d-%H%M%S"`
    cp %{_prefix}/etc/php-fpm.d/www.conf /opt/www.conf.rpmsave-`date +"%Y%m%d-%H%M%S"`
fi




%postun
if [ "$1" = 0 ]
then
    systemctl disable php-fpm
    rm -f /usr/lib/systemd/system/php-fpm.service
    rm -rf /opt/php81
    echo "%{name}-%{version}-%{release}已經(jīng)卸載."
fi





%changelog
* Mon Dec 11 2023 N
- For the first time, Custom made PHP8.1.20 in AlmaLinux8.8.

查看make參數(shù):
rpm --eval %{?_smp_mflags}
可以看到是根據(jù)核線程數(shù)量來編譯的。

構(gòu)建

QA_RPATHS=$(( 0x0001|0x0002 )) rpmbuild -bb SPECS/php-8.1.20-el8.spec

構(gòu)建成功的包如下:
php-8.1.20-custom.el8.x86_64.rpm
php-debugsource-8.1.20-custom.el8.x86_64.rpm
php-debuginfo-8.1.20-custom.el8.x86_64.rpm

目標(biāo)服務(wù)器安裝

#仍要安裝依賴的擴(kuò)展源,需啟用PowerTools
dnf install epel-release
dnf config-manager --set-enabled PowerTools # CentOS8
dnf config-manager --set-enabled powertools # Almalinux8

dnf localinstall php-*.rpm

dnf localinstall php-8.1.20-custom.el8.x86_64.rpm php-debugsource-8.1.20-custom.el8.x86_64.rpm php-debuginfo-8.1.20-custom.el8.x86_64.rpm文章來源地址http://www.zghlxwxcb.cn/news/detail-783519.html

支持的模塊

/opt/php81/bin/php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
intl
json
ldap
libxml
mbstring
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
xml
xmlreader
xmlwriter
xsl
zip
zlib

[Zend Modules]

到了這里,關(guān)于構(gòu)建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的支持63個(gè)常見模塊的PHP8.1.20的RPM包的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 紅帽系統(tǒng)8(RHEL8 )配置靜態(tài)IP

    紅帽系統(tǒng)8(RHEL8 )配置靜態(tài)IP

    目的:安裝在VM17中的 RHEL8,配置IP 地址為靜態(tài)IP 看到RHEL 版本為8.7 說明:我的RHEL 系統(tǒng)在dhcp 時(shí)能正常上網(wǎng), 因此我把靜態(tài)時(shí)網(wǎng)關(guān),掩碼,dns配的和 dhcp時(shí)一樣,確保靜態(tài)ip 時(shí)也能正常上網(wǎng)。 輸入nmcli 查看網(wǎng)絡(luò) 可以看到: 連接為ens160,ip地址為 192.168.48.129 子網(wǎng)掩碼 24, 即255.

    2024年02月04日
    瀏覽(31)
  • Linux入門篇-RHEL8的網(wǎng)絡(luò)管理

    沒有比 Linux 網(wǎng)絡(luò)管理更重要的知識(shí)。 只適用于 centos , rhel 系列(不低于 rhel7 版本) 如何在 workstation 當(dāng)中添加刪除網(wǎng)卡 modify 后面跟的參數(shù)和 add 后面的跟的參數(shù)有 90% 的相似度

    2024年02月03日
    瀏覽(21)
  • 虛擬機(jī) RHEL8 安裝 MySQL 8.0.34

    虛擬機(jī) RHEL8 安裝 MySQL 8.0.34

    1. 關(guān)閉MySQL 2. 查看當(dāng)前安裝mysql情況,查找以前是否裝有mysql 3. 執(zhí)行命令刪除安裝的MySQL 4. 查看是否刪除成功。 5. 查看之前安裝的MySQL的目錄并刪除 卸載現(xiàn)有的MySQL版本(如果已經(jīng)安裝了舊版本): 添加MySQL官方存儲(chǔ)庫: 安裝MySQL服務(wù)器: 啟動(dòng)MySQL,并修改密碼 參考鏈接MyS

    2024年02月15日
    瀏覽(31)
  • RHEL8 Samba服務(wù)器詳細(xì)配置用戶模式

    RHEL8 Samba服務(wù)器詳細(xì)配置用戶模式

    任務(wù): 配置server01為samba服務(wù)器,samba服務(wù)器的/companydata/sales為共享目錄,共享名為sales,里面創(chuàng)建測試文件test_share.tar,創(chuàng)建用戶組sales,創(chuàng)建組內(nèi)用戶sale1,要求配置用戶模式訪問,使得Windows客戶端client2和Linux客戶端client1分別可以用sale1用戶訪問server01的samba服務(wù)器的/compan

    2024年01月23日
    瀏覽(93)
  • RHEL8_Linux使用podman管理容器

    RHEL8_Linux使用podman管理容器

    本章主要介紹使用 podman 管理容器 了解什么是容器,容器和鏡像的關(guān)系 安裝和配置podman 拉取和刪除鏡像 給鏡像打標(biāo)簽 導(dǎo)出和導(dǎo)入鏡像 創(chuàng)建和刪除鏡像 ? ? ? ?1.了解容器及和鏡像的關(guān)系 ?????????對(duì)于初學(xué)者來說,不太容易理解什么是容器,這里舉一個(gè)例子。想象一下

    2024年02月04日
    瀏覽(21)
  • RedHat8(RHEL8)超詳細(xì)安裝教程--圖文解說版

    RedHat8(RHEL8)超詳細(xì)安裝教程--圖文解說版

    目錄 一、RHEL8介紹 二、產(chǎn)品地址 三、安裝? ?1.【文件】-----【新建虛擬機(jī)】(快捷鍵:Ctrl+N)? ?2. 這里我們選擇【自定義】即可----【下一步】 ?3. 【兼容性】保持默認(rèn)---【下一步】 ?4.【稍后安裝】---【下一步】 ?5. 選擇【Linux】操作系統(tǒng)---【RHEL8】版本---【下一步】 ?6

    2024年02月01日
    瀏覽(118)
  • AlmaLinux 9.2 正式版發(fā)布 - RHEL 兼容免費(fèi)發(fā)行版

    AlmaLinux 9.2 正式版發(fā)布 - RHEL 兼容免費(fèi)發(fā)行版

    AlmaLinux 9.2 正式版發(fā)布 - RHEL 兼容免費(fèi)發(fā)行版 由社區(qū)提供的免費(fèi) Linux 操作系統(tǒng),RHEL 兼容發(fā)行版。 請(qǐng)?jiān)L問原文鏈接:https://sysin.org/blog/almalinux-9/,查看最新版。原創(chuàng)作品,轉(zhuǎn)載請(qǐng)保留出處。 作者主頁:sysin.org 由社區(qū)提供的免費(fèi) Linux 操作系統(tǒng) 一個(gè)開源、社區(qū)擁有和管理、永遠(yuǎn)

    2024年02月05日
    瀏覽(96)
  • 云計(jì)算專業(yè)期末RHEL8.6紅帽網(wǎng)絡(luò)操作系統(tǒng)考試(實(shí)操)

    云計(jì)算專業(yè)期末RHEL8.6紅帽網(wǎng)絡(luò)操作系統(tǒng)考試(實(shí)操)

    本文介紹關(guān)于云計(jì)算專業(yè)期末RHEL8.6紅帽操作系統(tǒng)考試內(nèi)容題目詳解 一般情況下虛擬機(jī)中的系統(tǒng)是已經(jīng)安裝好的,但以防萬一還是加上在虛擬機(jī)中系統(tǒng)安裝的步驟 (后綴為.iso的為鏡像文件,下圖這些文件都為iso鏡像文件) (這里所填的用戶名和密碼在接下來登錄中需要使用

    2024年01月22日
    瀏覽(22)
  • 零基礎(chǔ)都能學(xué)會(huì)的紅帽(RedHat8)RHEL8系統(tǒng)安裝實(shí)戰(zhàn)

    零基礎(chǔ)都能學(xué)會(huì)的紅帽(RedHat8)RHEL8系統(tǒng)安裝實(shí)戰(zhàn)

    本文是應(yīng)一位大佬的提議,建議我寫寫紅帽系列,centos8已經(jīng)不維護(hù)了,centos7 維護(hù)到2024年6月30日, 也就是明年的事情了,所以很多公司估計(jì)會(huì)花錢用紅帽,雖然這種可能性不高,但畢竟遷移到別的系統(tǒng)也是個(gè)大工程。 現(xiàn)在有很多操作系統(tǒng),提供了遷移方案,但用起來還是沒

    2024年02月04日
    瀏覽(20)
  • 231224-Windows+VMware17Pro:RHEL8.8配置+Yum源配置+WiFi無線網(wǎng)卡配置+Docker配置

    231224-Windows+VMware17Pro:RHEL8.8配置+Yum源配置+WiFi無線網(wǎng)卡配置+Docker配置

    直接參考1min視頻操作即可:紅帽最新企業(yè)Linux RHEL 9下載與安裝教程_嗶哩嗶哩_bilibili 通過兩個(gè)鏈接,提前下載并安裝兩個(gè)軟件: 點(diǎn)擊此處,提前下載所需要的RHEL版本 點(diǎn)擊此處,注冊(cè)并下載VMware,可試用再購買 本次測試的是下面紅色方框的版本 2.1 根據(jù)主機(jī)的WiFi網(wǎng)絡(luò)的名稱設(shè)

    2024年01月16日
    瀏覽(55)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包