Apache2.4源码安装与配置

这篇具有很好参考价值的文章主要介绍了Apache2.4源码安装与配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境准备

这些包要提前安装,否则httpd编译安装时候会报错

openssl-devel pcre-devel expat-devel libtool gcc libxml2-devel


[root@node01 ~]# yum install openssl-devel pcre-devel expat-devel libtool gcc* libxml2-devel -y

下载源码、解压缩、软连接

1、wget下载

[root@node01 ~]# wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.gz
--2023-07-20 12:49:02--  https://downloads.apache.org/httpd/httpd-2.4.57.tar.gz
Resolving downloads.apache.org (downloads.apache.org)... 135.181.214.104, 88.99.95.219, 2a01:4f9:3a:2c57::2, ...
Connecting to downloads.apache.org (downloads.apache.org)|135.181.214.104|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9773385 (9.3M) [application/x-gzip]
Saving to: ‘httpd-2.4.57.tar.gz’

100%[===========================================================>] 9,773,385   3.50MB/s   in 2.7s   

2023-07-20 12:49:05 (3.50 MB/s) - ‘httpd-2.4.57.tar.gz’ saved [9773385/9773385]


2、解压缩
[root@node01 ~]# tar -zxf httpd-2.4.57.tar.gz -C /usr/local/cluster/

3、软连接
[root@node01 ~]# ln -s /usr/local/cluster/httpd-2.4.57/ /usr/local/cluster/httpd

编译安装需要两个依赖包

1、下载依赖包apr
[root@node01 ~]# wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz
--2023-07-20 16:43:32--  https://downloads.apache.org/apr/apr-1.7.4.tar.gz
Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 135.181.214.104, 2a01:4f9:3a:2c57::2, ...
Connecting to downloads.apache.org (downloads.apache.org)|88.99.95.219|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1122147 (1.1M) [application/x-gzip]
Saving to: ‘apr-1.7.4.tar.gz’

100%[===========================================================>] 1,122,147    933KB/s   in 1.2s   

2023-07-20 16:43:34 (933 KB/s) - ‘apr-1.7.4.tar.gz’ saved [1122147/1122147]

2、下载依赖包apr-util
[root@node01 ~]# wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz
--2023-07-20 16:45:01--  https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz
Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 135.181.214.104, 2a01:4f8:10a:201a::2, ...
Connecting to downloads.apache.org (downloads.apache.org)|88.99.95.219|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 556623 (544K) [application/x-gzip]
Saving to: ‘apr-util-1.6.3.tar.gz’

100%[===========================================================>] 556,623      476KB/s   in 1.1s   

2023-07-20 16:45:03 (476 KB/s) - ‘apr-util-1.6.3.tar.gz’ saved [556623/556623]


[root@node01 ~]# ll -h apr*
-rw-r--r-- 1 root root 1.1M Apr 16 21:07 apr-1.7.4.tar.gz
-rw-r--r-- 1 root root 544K Feb  2 03:06 apr-util-1.6.3.tar.gz

编译安装apr

1、解压缩、创建软链接
[root@node01 ~]# tar -zxf apr-1.7.4.tar.gz -C /usr/local/cluster/
[root@node01 ~]# ln -s /usr/local/cluster/apr-1.7.4/ /usr/local/cluster/apr
[root@node01 ~]# cd /usr/local/cluster/apr


2、第一次编译报错
[root@node01 apr]# ./configure --prefix=/usr/local/apr

rm: cannot remove 'libtoolT': No such file or directory

修改文件configure,注释$RM "$cfgfile"

[root@node01 apr]# vim configure
#    $RM "$cfgfile"


3、再次编译成功
[root@node01 apr]# ./configure --prefix=/usr/local/apr
。。。
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/apr.h
config.status: creating build/apr_rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating apr-1-config
config.status: creating apr.pc
config.status: creating test/Makefile
config.status: creating test/internal/Makefile
config.status: creating include/arch/unix/apr_private.h
config.status: executing libtool commands
config.status: executing default commands
config.status: include/apr.h is unchanged
config.status: include/arch/unix/apr_private.h is unchanged

4、执行make && make install
[root@node01 apr]# make && make install
。。。
----------------------------------------------------------------------
/usr/bin/install -c -m 644 apr.exp /usr/local/apr/lib/apr.exp
/usr/bin/install -c -m 644 apr.pc /usr/local/apr/lib/pkgconfig/apr-1.pc
for f in libtool shlibtool; do \
    if test -f ${f}; then /usr/bin/install -c -m 755 ${f} /usr/local/apr/build-1; fi; \
done
/usr/bin/install -c -m 755 /usr/local/cluster/apr/build/mkdir.sh /usr/local/apr/build-1
for f in make_exports.awk make_var_export.awk; do \
    /usr/bin/install -c -m 644 /usr/local/cluster/apr/build/${f} /usr/local/apr/build-1; \
done
/usr/bin/install -c -m 644 build/apr_rules.out /usr/local/apr/build-1/apr_rules.mk
/usr/bin/install -c -m 755 apr-config.out /usr/local/apr/bin/apr-1-config

编译安装apr-util

1、解压缩、创建软链接
[root@node01 ~]# tar -zxf apr-util-1.6.3.tar.gz -C /usr/local/cluster/
[root@node01 ~]# ln -s /usr/local/cluster/apr-util-1.6.3/ /usr/local/cluster/apr-util
[root@node01 ~]# cd /usr/local/cluster/apr-util

2、编译需要指定apr的目录 --with-apr=/usr/local/apr
[root@node01 apr-util]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
。。。
configure: creating ./config.status
config.status: creating Makefile
config.status: creating export_vars.sh
config.status: creating build/pkg/pkginfo
config.status: creating apr-util.pc
config.status: creating apu-1-config
config.status: creating include/private/apu_select_dbm.h
config.status: creating include/apr_ldap.h
config.status: creating include/apu.h
config.status: creating include/apu_want.h
config.status: creating test/Makefile
config.status: creating include/private/apu_config.h
config.status: executing default commands

3、执行make && make install
[root@node01 apr-util]# make && make install


报错提示需要安装expat包
xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
 #include <expat.h>
                   ^
compilation terminated.
make[1]: *** [xml/apr_xml.lo] Error 1
make[1]: Leaving directory `/usr/local/cluster/apr-util-1.6.3'
make: *** [all-recursive] Error 1

[root@node01 apr-util]# yum install expat-devel -y

4、再次执行成功
[root@node01 apr-util]# make && make install
 
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/usr/bin/install -c -m 644 aprutil.exp /usr/local/apr-util/lib
/usr/bin/install -c -m 755 apu-config.out /usr/local/apr-util/bin/apu-1-config

编译安装httpd

1、解压缩、创建软链接
[root@node01 ~]# tar -zxf httpd-2.4.57.tar.gz -C /usr/local/cluster/
[root@node01 ~]# ln -s /usr/local/cluster/httpd-2.4.57/ /usr/local/cluster/httpd
[root@node01 ~]# cd /usr/local/cluster/httpd

2、第一次编译报错
[root@node01 httpd]# ./configure --prefix=/usr/local/httpd --enable-so --enable-ssl --enable-cgi --enable--rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most  --enable-mpms-shared=all --with-mpm=prefork

报错需要pcre包
checking for pcre-config... no
configure: error: pcre(2)-config for libpcre not found. PCRE is required and available from http://pcre.org/

[root@node01 httpd]# yum install pcre-devel -y

3、再次执行成功
[root@node01 httpd]# ./configure --prefix=/usr/local/httpd --enable-so --enable-ssl --enable-cgi --enable--rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most  --enable-mpms-shared=all --with-mpm=prefork

checking for OpenSSL version >= 0.9.8a... FAILED
configure: WARNING: OpenSSL version is too old
no
checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures



4、提示OpenSSL版本过旧,升级OpenSSL
[root@node01 httpd]# yum install openssl-devel -y


5、再次编译成功
[root@node01 httpd]# ./configure --prefix=/usr/local/httpd --enable-so --enable-ssl --enable-cgi --enable--rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most  --enable-mpms-shared=all --with-mpm=prefork 

configure: summary of build options:

    Server Version: 2.4.57
    Install prefix: /usr/local/httpd
    C compiler:     gcc -std=gnu11
    CFLAGS:          -g -O2 -pthread  
    CPPFLAGS:        -DLINUX -D_REENTRANT -D_GNU_SOURCE  
    LDFLAGS:           
    LIBS:             
    C preprocessor: gcc -std=gnu11 -E


6、执行make && make install报错
[root@node01 httpd]# make && make install

报错
/usr/local/apr/build-1/libtool --silent --mode=link gcc -std=gnu11  -g -O2 -pthread         -o htpasswd  htpasswd.lo passwd_common.lo      /usr/local/apr-util/lib/libaprutil-1.la /usr/local/apr/lib/libapr-1.la -lrt -lcrypt -lpthread -ldl -lcrypt
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_GetErrorCode'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetEntityDeclHandler'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ParserCreate'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetCharacterDataHandler'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ParserFree'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetUserData'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_StopParser'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_Parse'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ErrorString'
/usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetElementHandler'
collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] Error 1
make[2]: Leaving directory `/usr/local/cluster/httpd-2.4.57/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/cluster/httpd-2.4.57/support'
make: *** [all-recursive] Error 1


安装libtool依赖包
[root@node01 httpd]# yum install libtool -y

安装libxml2-devel依赖包
[root@node01 httpd]# yum install libxml2-devel -y




7、因为没有提前安装依赖包,需要重新编译安装apr-util,最后再重新编译安装httpd
参考文档https://my.oschina.net/LuCastiel/blog/1590706


8、删除apr-util安装目录,并重新编译安装
[root@node01 httpd]# rm -rf /usr/local/apr-util/
[root@node01 httpd]# cd /usr/local/cluster/apr-util

9、这一步很重要,必须清除之前配置时的缓存
[root@node01 apr-util]# make clean


10、再次重新编译安装apr-util
[root@node01 apr-util]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@node01 apr-util]# make && make install

11、重新编译安装httpd
[root@node01 apr-util]# cd /usr/local/cluster/httpd
[root@node01 httpd]# make clean
[root@node01 httpd]# ./configure --prefix=/usr/local/httpd --enable-so --enable-ssl --enable-cgi --enable--rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most  --enable-mpms-shared=all --with-mpm=prefork 
configure: summary of build options:

    Server Version: 2.4.57
    Install prefix: /usr/local/httpd
    C compiler:     gcc -std=gnu11
    CFLAGS:          -g -O2 -pthread  
    CPPFLAGS:        -DLINUX -D_REENTRANT -D_GNU_SOURCE  
    LDFLAGS:           
    LIBS:             
    C preprocessor: gcc -std=gnu11 -E

12、再次执行make && make instal成功
[root@node01 httpd]# make && make instal
。。。
make[4]: Entering directory `/usr/local/cluster/httpd-2.4.57/modules/mappers'
make[4]: Nothing to be done for `local-shared-build'.
make[4]: Leaving directory `/usr/local/cluster/httpd-2.4.57/modules/mappers'
make[3]: Leaving directory `/usr/local/cluster/httpd-2.4.57/modules/mappers'
make[2]: Leaving directory `/usr/local/cluster/httpd-2.4.57/modules'
make[2]: Entering directory `/usr/local/cluster/httpd-2.4.57/support'
make[2]: Leaving directory `/usr/local/cluster/httpd-2.4.57/support'
Installing configuration files
mkdir /usr/local/httpd/conf
mkdir /usr/local/httpd/conf/extra
mkdir /usr/local/httpd/conf/original
mkdir /usr/local/httpd/conf/original/extra
Installing HTML documents
mkdir /usr/local/httpd/htdocs
Installing error documents
mkdir /usr/local/httpd/error
Installing icons
mkdir /usr/local/httpd/icons
mkdir /usr/local/httpd/logs
Installing CGIs
mkdir /usr/local/httpd/cgi-bin
Installing header files
mkdir /usr/local/httpd/include
Installing build system files
mkdir /usr/local/httpd/build
Installing man pages and online manual
mkdir /usr/local/httpd/man
mkdir /usr/local/httpd/man/man1
mkdir /usr/local/httpd/man/man8
mkdir /usr/local/httpd/manual
make[1]: Leaving directory `/usr/local/cluster/httpd-2.4.57'

启动httpd服务


1、查看httpd位置
[root@node01 httpd]# whereis httpd
httpd: /usr/local/httpd


2、启动httpd服务
[root@node01 ~]# cd /usr/local/httpd/bin

[root@node01 bin]# ./apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.6.101. Set the 'ServerName' directive globally to suppress this message
httpd (pid 548) already running

httpd已经运行
[root@node01 bin]# netstat -anp |grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      548/httpd 

[root@node01 bin]# ./apachectl stop
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.6.101. Set the 'ServerName' directive globally to suppress this message


3、修改配置文件
[root@node01 conf]# pwd
/usr/local/httpd/conf
[root@node01 conf]# vim httpd.conf
ServerName 192.168.6.101:80

[root@node01 bin]# ./apachectl stop
[root@node01 bin]# ./apachectl start
[root@node01 bin]# ps -ef |grep httpd
root       3236      1  0 18:52 ?        00:00:00 /usr/local/httpd/bin/httpd -k start
daemon     3237   3236  0 18:52 ?        00:00:00 /usr/local/httpd/bin/httpd -k start
daemon     3238   3236  0 18:52 ?        00:00:00 /usr/local/httpd/bin/httpd -k start
daemon     3239   3236  0 18:52 ?        00:00:00 /usr/local/httpd/bin/httpd -k start
daemon     3240   3236  0 18:52 ?        00:00:00 /usr/local/httpd/bin/httpd -k start
daemon     3241   3236  0 18:52 ?        00:00:00 /usr/local/httpd/bin/httpd -k start
root       3352   1706  0 18:52 pts/0    00:00:00 grep --color=auto httpd

4、查看httpd端口
[root@node01 bin]# netstat -anp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      3236/httpd    


配置systemctl管理服务

1、关闭httpd服务
[root@node01 ~]# /usr/local/httpd/bin/apachectl stop
[root@node01 ~]# ps -ef | grep httpd
root       7168  21465  0 13:12 pts/1    00:00:02 /usr/bin/python /usr/bin/yum list httpd
root      20985   7945  0 13:26 pts/3    00:00:00 grep --color=auto httpd


2、创建配置文件
[root@node01 ~]# vim /usr/lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)

[Service]
Type=forking
ExecStart=/usr/local/httpd/bin/apachectl start
ExecReload=/usr/local/httpd/bin/apachectl graceful
ExecStop=/usr/local/httpd/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target

3、使用systemctl启动httpd服务
[root@node01 ~]# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)

使用systemctl启动httpd

[root@node01 ~]# systemctl start httpd
[root@node01 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-08-11 13:32:10 CST; 6s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 27528 ExecStart=/usr/local/httpd/bin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 27531 (httpd)
   CGroup: /system.slice/httpd.service
           ├─27531 /usr/local/httpd/bin/httpd -k start
           ├─27532 /usr/local/httpd/bin/httpd -k start
           ├─27533 /usr/local/httpd/bin/httpd -k start
           ├─27534 /usr/local/httpd/bin/httpd -k start
           ├─27535 /usr/local/httpd/bin/httpd -k start
           └─27536 /usr/local/httpd/bin/httpd -k start

Aug 11 13:32:10 node01 systemd[1]: Starting The Apache HTTP Server...
Aug 11 13:32:10 node01 systemd[1]: Started The Apache HTTP Server.

4、设置开机自启
[root@node01 ~]# systemctl enable httpd

Apache2.4源码安装与配置,Linux,apache,linux文章来源地址https://www.toymoban.com/news/detail-638292.html

到了这里,关于Apache2.4源码安装与配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux:http服务(Apache 2.4.57)源码编译——配置网站 || 入门到入土

    目录 1.下载源码包 2.配置httpd运行环境 3.编译源码包安装apache软件 4.优化执行路径 5.添加httpd系统服务 #正文 1.httpd服务器的基本配置 2.Linux命令行访问网站 3. 网站日志 4.控制网站访问  5.创建用户认证数据库 #构建虚拟web主机 1.构建虚拟主机——基于域名 2.构建虚拟主机——基

    2024年02月15日
    浏览(41)
  • apache2配置文件 Require all granted是什么意思

    修改apache2的配置文件 /etc/apache2/apache2.conf,需要增加网站代码的路径,下列配置是什么意思呢 Options - 如果设置了这个选项,表示禁用了指定的功能,这里的 \\\"Indexes\\\" 表示禁用目录列表功能,即当用户访问一个目录时,不会显示该目录下的文件列表。 FollowSymLinks - 如果设置了这

    2024年02月11日
    浏览(45)
  • 第一章 Linux系统服务:Apache安装及配置应用

    1.1http与html 1.2浏览器访问网站的过程 1.3HTTP工作机制 1.4版本 1.5HTTP方法 1.6.http状态码 1.7请求报文 1.8 响应报文 1.Apache基础知识 2.Apache配置文件位置 1.LAMP平台概述 2.LAMP各组件主要作用 3.构建LAMP平台顺序 1. prefork模式(默认模式) 2. worker模式 3. event模式 1.1http与html HTTP:为解决

    2024年02月02日
    浏览(44)
  • linux Apache服务配置

    首先恢复虚拟机1、虚拟机2快照,重新准备环境,还原为初始状态,也就是刚刚安装好虚拟机的状态: 虚拟机1-单网卡-仅主机模式-192.168.100.3-Web服务器 虚拟机2-单网卡-仅主机模式-192.168.100.4-Linux客户端 物理机(windows系统宿主机)-Windows客户端 两台虚拟机保证本地yum源配好!!

    2024年02月06日
    浏览(31)
  • Apache2-XXE漏洞渗透

    Apache2 Ubuntu Default Page 是一个包含xxe漏洞的页面,如何找到和利用xxe漏洞,并找到flag呢? 首先进行信息收集,nmap是我们的常用工具 靶机地址10.40.2.116 ,可正常访问 在kali中扫描靶机开放端口等信息 可观察到只有80端口开放,没有利用价值 再用dirb扫描目标隐藏文件 dirb http:/

    2024年02月05日
    浏览(56)
  • Linux 安装 Apache Kafka

    下载kafka,下载地址,只是使用的话下载 Binary 版本就行。 解压 -C : 指定解压目录 需要安装并且启动 Zookeeper 进入Kafka目录,启动kafka,启动后日志参考下图 停止kafka 如果你以后台方式启动 Kafka,并且在启动时使用了 nohup : 使用 ps 命令查找 Kafka 进程的 PID: ps aux | grep kafka 使

    2024年01月17日
    浏览(33)
  • 配置与管理Apache服务器(linux)

    1、安装Apache服务软件 # yum install -y httpd 2、启动Apache服务 # systemctl start httpd systemctl的其它选项 start:启动 stop:停止 restart:重启 enable:设置开机自动启动 disable:禁用服务,从开机启动项把服务移除 status:查看服务状态 3、关闭selinux #setenforce 0 4、关闭防火墙 # systemctl stop

    2024年02月09日
    浏览(66)
  • Linux之Web服务器配置(Apache)

    摘要: Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可

    2024年02月03日
    浏览(55)
  • FRPC+PHP+MYSQL+APACHE2=个人网站

    应用背景有公网需求,但是又不想去买又贵又低配置的服务器,然后方案就应运而生 frp/README_zh.md at dev · fatedier/frp (github.com) 在这里, FRPC作为内网穿透服务, PHP+MYSQL+APACHE2,作为网站搭建,具体细节不细讲, 但是在我的/var/www/html下面 linaro@Hinlink:/var/www/html$ tree -L 1 . ├── 404.html ├─

    2024年04月25日
    浏览(35)
  • Ubuntu:使用apache2部署Vue开发的网站

    作者:CSDN @ _乐多_ 本文记录了Vue项目打包到部署到ubuntu系统的全部步骤。 一、代码打包 首先,确保您已经在本地开发环境中成功开发和测试了Vue项目。然后,执行以下命令来构建生产版本的Vue应用:

    2024年02月06日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包