记从0开始搭建一个LAMP环境

记从0开始搭建一个LAMP环境

0x00:前言

众所周知,我们平时浏览的的网站是假设在在服务器上的基础上的,目前市面上以Linux平台的服务器居多,其中LAMP架构是目前业界流行的服务环境,即Linux+Apache+MySQL+PHP的组合技术:使用开源免费,强大安全的Linux操作系统,稳定的Apache作网页服务器,高效的MySQL作数据库,PHP作为开发语言,这四项技术均为开源免费的技术,不仅免费、高效、扩展性强而且资源消耗低,而且有大量的相关资料可以用以参考,有效降低出错率,避免损失。

这里需要首先讲一下我们的LAMP工作原理

浏览器发送http request请求到服务器(Apache),服务器响应并处理Web请求,将一些静态资源(CSS、图片、视频等)保存服务器上。将PHP脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序),PHP-FPM不做处理。然后PHP-FPM调用PHP解析器进程,PHP解析器解析PHP脚本信息。PHP解析器进程可以启动多个,进行并发执行。将解析后的脚本返回到PHP-FPM,PHP-FPM再通过fast-cgi的形式将脚本信息传送给Nginx。服务器再通过Http response的形式传送给浏览器,浏览器再进行解析与渲染,最后进行呈现。

今天我们要做的就是如何从零开始搭建一个LAMP环境,并且能够访问它。

0x01:从零开始搭建LAMP环境之Linux搭建

这里我们为了不浪费服务器资源,选择在本地使用虚拟机来搭建一个LAMP环境,一切均部署在本地。

使用VMWare Workstation(外部操作)

使用本地PC环境的VMWare Workstation软件进行实操练习,镜像使用占有率较高的CentOS-7-x86_64-DVD-1511.iso。

这里我们首先新建一个虚拟机,为了方便大家能看到后续Linux的具体安装,这里将采用手动安装方式,对于技术水平有限的朋友,可以选择第二个选项(安装程序光盘映像文件),将会自动启用简易安装。这里我们选择第三个选项(稍后安装操作系统)。

image-20220815095711668

点击下一步后,在客户机操作系统这里选择Linux,随后在下面的版本中从下拉框中选取CentOS7 64位(你需要安装的系统版本,可根据自己的需求改变

image-20220815095739747

在接下来的一步中,分别输入你想给系统取的名称,和系统的安装位置,这里建议选择剩余空间较大的磁盘,不要使用默认路径C盘。

image-20220815100157457

磁盘容量使用默认即可,Linux系统不会占用太大的空间,虚拟磁盘选项可以使用默认选项,看个人喜好。

image-20220815100236828

在接下来的一步中我们需要对Linux的硬件环境做一个小调整,这里我们点击自定义硬件,进入硬件设置。

image-20220815100414078

这里我们为了LAMP环境的可用性,需要将我们的配置提升一下,默认的配置很可能对于之后的搭建服务过程造成卡顿

首先需要调整的是内存,我们调整为4GB,然后处理器选择2个,最重要的一步(很重要),我们需要在CD驱动器这里将默认的使用物理驱动器更改为使用ISO映像文件,如图中箭头所指,单击 浏览 选择我们的centos的文件路径,然后这一步最上面的启动时连接复选项要注意勾选,否则开机将无法连接到CD驱动器。

image-20220815100728234

全部设置完成后,点击关闭,并完成虚拟机创建。

image-20220815101314890

这里我们可以从虚拟机软件的左侧菜单中找到我们刚刚安装成功的虚拟机,然后我们点击 开启虚拟机

Linux安装 (内部操作)

注:从这一步开始,我们的操作将全部被输入到虚拟机,如果在虚拟机中发现需要返回真机但无法操作,请使用ctrl+alt的快捷键来将操作重新输出到真机。

这里是进入了我们的ISO安装文件,直接默认情况下键入回车,即可选择第一选项Install CentOS 7

image-20220815101525059

语言选择

默认英语即可,英语不太好的建议将语言切换为中文,这里我们使用英语版(能够减少后续出现问题时搜索报错中文的搜索结果可能较少的情况,且英语版本有时候能够避免很多不必要的麻烦)。

image-20220815101949069

磁盘分区

往下滑动,单击“INSTALLATIONDESTINATION”按钮进行分区,如图所示。

image-20220815102329819

选择磁盘并选中“I willconfigure partitioning”单选按钮,单击左上角“Done”按钮,进行手动分区

image-20220815102548810

单击“Click here to create them automatically”按钮自动创建分区,如下图,分区完成后我们点击Done即可。

image-20220815102756306

单击“Accept Changes”按钮保存修改

image-20220815102939484

真实环境中少有安装GUI的Linux,如果对于GUI有要求的朋友可以在"SOFTWARE SELECTION"中选择GUI安装,这里我们就采用默认设置的最小安装(mini install),然后单击“Begin Installation”按钮开始安装。

image-20220815103202502

设置用户和密码

进入下一步单击“ROOT PASSWORD”按钮设置root密码,设置密码为kelansi(设置你自己能记住的密码),这里如果我们的密码较弱,会被系统提示密码强度不够,所以我们需要单击两次“Done”按钮保存退出。

image-20220815103523734

这里我们直接单击右下角,"finish configuration"完成安装,等待加载完成后再单击“Reboot”按钮重启系统,不再创建新用户,如图所示。

image-20220815103707018

image-20220815103936163

登录

重启完成后我们的Linux就算是安装完成,这里启动后可能会需要选择引导项,直接回车就好。

image-20220815104024918

经过一阵狂拽酷炫的代码飘过,我们终于能够一睹Linux系统的真容了

image-20220815104139541

输入我们的用户名和密码

输入用户名后需回车,这时候才能输入密码,输入密码时不显示密码为Linux系统安全不显示,所以不必担心自己没输上密码,输入完成后回车即可,如果密码错误,重新输入即可。

这里我们成功的以root用户登入了我们的Linux。

image-20220815104214678

正式完成了Linux的安装。

0x02:从零开始搭建LAMP环境之Apache搭建

从这里开始就进入到软件安装的环节了,我们为了提升效率,避免麻烦,这里建议大家使用第三方软件来操作,如xshell,crt等,这里我们以xshell为例来配置如何通过xshell来连接我们的Linux,其中最后一步的配置xshell操作可以不做,直接使用在虚拟机内部操作Linux,不过建议还是使用第三方软件,多几部操作弄完了以后,安装环境那就是一把梭。

通过xshell连接Linux

查看网卡信息

这里我们登入Linux后,输入命令

ip a

得到如下图的结果,有两个网卡信息,其中第一个为本地回环,第二个就是我们所需要的网卡信息,将这个eno记录下来,它将与我们的下一步操作有关

image-20220815111555221

设置网卡NAT模式和关闭DHCP

这里我们需要配置一下虚拟机,我们单击虚拟机最上方的菜单栏中的“编辑”,然后选择’虚拟网络编辑器‘,如图

image-20220815111906254

这里需要以管理员权限来更改设置,单击它

这里可以看到我们的NAT模式对应的网卡名称是VMnet8

image-20220815112022551

然后这里选择我们的NAT网卡,注:若之前在虚拟机搭建linux时网卡的选项没有设置NAT模式,则需要去虚拟机中将网卡设置更改为NAT模式

选中我们的NAT网卡后,如果我们开启了DHCP动态IP分配则需要关闭这个选项,否则将可能导致我们的IP不断变化,可能每次都需要重新配置xshell。

image-20220815112147051

更改真机VMnet网卡配置

接下来我们需要查看一下本地的虚拟网卡的IP地址,打开我们的网络和Internet设置,然后单击“更改适配器选项”

image-20220815112755007

找到与我们NAT网卡对应的虚拟网卡的名称,比如我这里是NAT配置的是VMnet8,我们右击它,然后右击,在弹出菜单中单击“属性”

image-20220815112924407

双击该选项 IPV4 我们进入配置一下

image-20220815114002492

这里我们勾选“使用下面的IP地址”,然后根据我们前面的步骤中虚拟网络编辑器中VMnet8的子网IP和子网掩码填入,注:这里的IP地址不能直接填写虚拟网络编辑器的IP地址,而应该将最后的一段的数字更改为1~254之间的数字。

这里我们将最后一位更改为了10,子网掩码照抄。

image-20220815114440949

image-20220815114217172

配置Linux网络文件

然后我们回到linux,先进入网卡文件的目录,这里我们可以在输入路径的时候使用Linux的TAB来对补全命令(即输入前几个字母后,使用tab来补全剩余命令或路径)

cd /etc/sysconfig/network-scripts

这里我们一眼就看到了之前我们查询到那个网卡名称,通常为en******************,后面的数字每个人的不一样,根据ip a命令可以查询到自己的

image-20220815115026958

这里我们使用vi命令来编辑一下它的配置,注意,你需要将ifcfg-en后的东西替换成你本机自己的!这里的文件名只是我电脑上的,执行后可以发现我们进入了vi文件编辑模式,左下角即为我们编辑的文件名称,出现的内容就是我们这个配置文件的内容。

vi /etc/sysconfig/network-scripts/ifcfg-eno16777736

image-20220815115424709

我们在vi编辑模式下,按一下“i”键即可进入输入模式,这时候左下角会出现INSERT,表示我们进入了编辑模式

这里我们对配置文件做一下修改

将BOOTPROTO=dhcp改为BOOTPROTO=static 使用静态模式,防止由于dhcp分配地址导致ip地址变化

将ONBOOT=no改为ONBOOT=yes 此为网卡开机启动

添加 IPADDR=192.168.163.100(设置虚拟机ip地址,注意网段要和网卡的网段相同,也就是ip地址的第三位要相同,例子的为163,ip最后一位设置在hdcp分配的范围内就行,这里设置为100,注意不要和网关地址和网段地址一样)

添加 PREFIX=24  (设置子网掩码)

添加 GATEWAY=192.168.163.2  (设置网关地址,根据刚刚查到的编辑,网关一般最后一位为2)

添加 DNS1=114.114.114.114(设置dns)

image-20220815121032080

下图为查询网关地址的步骤,打开虚拟网络编辑器,选中我们的NAT模式网卡,点击NAT设置,弹出来的信息可以得知我们的网关IP为192.168.163.2

image-20220815120702496

image-20220815120721772

编辑完成我们通过ESC键退出编辑模式,然后输入“:”键,可以发现最下方可以输入命令了,我们输入wq,然后执行就完成了保存并退出的操作。

image-20220815121517140

然后我们需要重启一下网卡服务来刷新一下配置,输入以下命令

service network restart

image-20220815122012352

然后使用ip a命令查看我们的网卡信息,发现已经变成我们配置好的IP地址了

配置xshell

我们打开xshell,新建一个会话

image-20220815122250686

名称这里我们就叫LAMP环境吧,根据你自己喜好,然后协议选择SSH,主机这里需要输入我们刚才Linux的IP地址,端口号使用22(SSH)

image-20220815122416046

然后我们在左侧菜单中选择“用户身份验证”,配置一下,可以避免我们以后每次登录都重新输入用户名密码,这里我们用户名输入root,密码还是kelansi(你自己设定的),配置完成后单击确定

image-20220815122814016

然后我们回到会话,选中我们要连接的服务器LAMP环境,单击连接按钮

image-20220815122917987

然后会出现一个SSH警告,我们点击接受并保存,这样我们以后就不用每次都重新登录了

image-20220815122942539

可以发现此时我们已经连接到Linux内部了,大功告成,这将对我们后续配置其他服务有极大的帮助(方便)

image-20220815123129795

先来改个主机名,可以发现发现xshell可以直接复制粘贴命令,是不是非常的方便。

hostnamectl set-hostname  Kelansi(更改的主机名)

image-20220815123614124

image-20220815123841543

安装Apach

安装Apach及相关依赖,提供http服务
yum -y install httpd

-y选项为对所有询问都回答yes,避免我们重复操作

image-20220815124044476

image-20220815124143127

出现complete即为安装完成

然后来安装相关依赖,输入以下命令

yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql

image-20220815124408096

image-20220815124419171

出现complete即为安装完成。

重启Apach服务

键入以下命令重启Apache服务

systemctl restart httpd.service

image-20220815140351195

0x03:从零开始搭建LAMP环境之PHP搭建

安装Php环境及相关依赖

安装php 我们输入如下命令

yum -y install php

image-20220815124931332

image-20220815124910146

安装php相关组件

我们输入如下命令,将fpm等组件安装一下

yum -y install php-fpm yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-devel

image-20220815125214895

image-20220815125232388

出现complete即为安装完成

0x04:从零开始搭建LAMP环境之安装Mysql数据库(PS:此为mariadb)

众所周知,在SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险,很多大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB的怀抱。

也由于yum安装库里没有直接可以用的mysql-server的安装包,我们也决定使用mariadb来替代mysql(增强型的替代品)

安装mariadb

我们输入如下命令,来安装mariadb

yum -y install mariadb

image-20220815130402420

image-20220815130408838

出现complete即为安装完成

安装mariadb服务

遇到问题

接下来我们输入如下命令,但却好像遇到了点问题

yum -y install mariadb-service

image-20220815131317195

这里我们发现在我们的几个源里居然找不到可用的包,华为云扣一分

寻求解决办法

接下来就该祭出我们无敌的百度大法了,作为安全行业从业者,对于信息搜集以及解决问题的办法应该是基本功

根据https://downloads.mariadb.org/mariadb/repositories 的说明,我们输入我们的系统信息,我们得知阿里云有可用的包,我们尝试一下这个解决办法。

image-20220815131724327

这里我们使用如下命令来新建一个mariadb的源

vi /etc/yum.repos.d/MariaDB.repo

image-20220815132516783

这里我们老办法,输入i进入编辑模式,然后将官网给出的配置信息输入进去(此处如果使用xshell可以直接复制粘贴,现在知道明白为啥要用xshell之类的软件了吧),然后我们完成输入后按esc,键入:wq 来保存并退出

# MariaDB 10.4 CentOS repository list - created 2022-08-15 05:27 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.4/centos7-amd64
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

image-20220815132037221

然后我们使用以下命令来更新一下yum源

yum clean all

image-20220815132844409

山重水复疑无路,柳暗花明又一村

再次使用之前的命令

yum -y install mariadb-service

image-20220815133538224

image-20220815133551530

出现complete即为安装完成。

注:后续笔者发现yum -y install mariadb-server可以直接完成安装,不知是否为重新配置了yum源的缘故。

安装其他服务

我们输入以下命令来安装

yum -y install php-mysqlyum -y install mysql-connector-odbc libdbi-dbd-mysql mysql-devel

image-20220815134303447

image-20220815134319334

出现complete即为安装完成。

为mariadb创建开启自启动

我们键入如下命令来创建开机自启动Mariadb服务

systemctl enable mariadb.service

image-20220815134433417

启动MariaDB

键入如下命令来启动MariaDB服务

systemctl start mariadb.service

使用以下命令来查看MariaDB的开启状态

service mariadb status

image-20220815135131760

初始化数据库,为数据库创建初始的用户名和密码

我们键入如下步骤来完成初始设置

mysql_secure_installation

image-20220815135624231

接下来有很长的设置过程

我们根据自己的实际情况来进行一些设置

# 注:运行结果用 ··· 代替
Enter current password for root (enter for none):  # 输入root(mysql)的密码,初次安装默认没有,直接回车 
 ... 
Switch to unix_socket authentication [Y/n] n # 是否切换到unix套接字身份验证[Y/n] 可以直接回车
 ... 
Change the root password? [Y/n] y #是否设置root用户密码			这里我重新设置了
New password: # 新密码
Re-enter new password:  # 再次输入密码
 ... 
Remove anonymous users? [Y/n] y # 是否删除匿名用户,建议删除
 ... 
Disallow root login remotely? [Y/n] n # 是否禁止root远程登录,建议开启
 ... 
Remove test database and access to it? [Y/n] n # 是否删除test数据库,可以保留
...
Reload privilege tables now? [Y/n] y # 是否重新加载权限表,也可以直接回车
 ... 
Thanks for using MariaDB! # 看到这句话证明设置成功

image-20220815135723875

image-20220815135757496

重启mariadb服务

键入以下命令重启mariadb服务

systemctl restart mariadb.service

重启Apach服务

键入以下命令重启Apache服务

systemctl restart httpd.service

image-20220815140356696

至此,LAMP环境的搭建步骤就结束了。

0x05:验证

我们进入/var/www/html目录下

输入以下命令

vi /var/www/html/info.php

我们在vi编辑模式下,按一下“i”键即可进入输入模式,这时候左下角会出现INSERT,表示我们进入了编辑模式

编写以下代码

<?php 
    phpinfo();
?>

然后我们完成输入后按esc,键入:wq 来保存并退出

再遭失败

image-20220815141454180

然后我们去到真机浏览器,输入我们的IP:192.168.163.100

兴高采烈的打开浏览器,输入网址进去

image-20220815143052231

image-20220815143145384

发现apche和php的服务页都不能访问,这里我排查了很久的问题,大概有快二十分钟,不断检查各种lamp的各种服务是否配置错误,安装有遗漏或失败等,也修改了部分配置文件,发现怎么弄怎么不好使,此时就像热锅上的蚂蚁,很着急,正准备找人去问问会是什么情况,小小的大脑飞速旋转,突然想起来以前做实验的时候防火墙没关,怎么ping都ping不通,但是此前我已经测试了真机能够ping通虚拟机的Linux

image-20220815143537003

也查询了防火墙状态,是inactive

image-20220815143941164

成功解决

很纳闷,明明防火墙是关着的,难道是我其他地方有问题,但自己还是鬼使神差的输入了systemctl stop firewalld.service,想着试一试

image-20220815143916115

Apache能正常访问了

image-20220815144053758

php也能正常访问了,离谱,到最后我也不知道这是个什么原因

image-20220815144025841

解决问题的能力的确是一种需要学习的能力

0x06:验证php能否访问mysql

这里我们写一个php小程序来测试一下mysql是否成功的连接到了php上

<?php
//通过php测试能够连接mysql
	header("Content-type:text/html;charset=utf8");
	$con = mysqli_connect('localhost','kelansi','kelansi');

	if ($con) {
		echo '数据库能够正常连接';
	}else{
		die('连接失败,错误原因:' . mysqli_error());
	}
?>

image-20220815163454842

这里其实可以用xftp直接把文件传上去,但是我们内容不多,就直接复制粘贴吧

这里我们键入以下命令新建php文件

vi /var/www/html/mysqlTest.php

image-20220815145947769

我们在vi编辑模式下,按一下“i”键即可进入输入模式,这时候左下角会出现INSERT,表示我们进入了编辑模式

输入php代码后保存

完成输入后按esc,键入:wq 来保存并退出

image-20220815163711345

我们去浏览器访问一下看看能否正常连接

image-20220815164600678

这里发现能够正常连接,LAMP环境的所有组件都没有问题,验证完成。

0x07:补充

这里有时候可能会出现centos系统需要动手配置yum源的情况,此次安装我并没有手动配置yum源,这里将个人之前的学习笔记贴出,当遇到yum源问题无法使用时,可直接去编辑系统内自带的yum源,将以下内容替换进去并保存即可。

CentOS7 配置CentOS-Base.repo文件内容

文件位置:/etc/yum.repos.d/CentOS-Base.repo

二选一替换

1、中科大(参考地址:http://mirrors.ustc.edu.cn/help/centos.html#)

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
 
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
#released updates
[updates]
name=CentOS-$releasever - Updates
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=https://mirrors.ustc.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

2、清华源

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
 
[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

修改完成后执行:

yum clean all
rm -rf  /var/cache/yum/
yum makecache

0x08:后记

本文到这里就结束了,其实除了本文中明显讲出的两个问题,还遇见了其他不少问题,不过解决起来相对简单,就没有再写入,LAMP的环境搭建并不难,当下有各种脚本和一键式部署能够快速完成,但是如果真的手动去搭建这样一个环境,犹豫大家各自的环境都不同,所以难免会出现各种各样的错误,而在这个过程中,如何去提高自己查找错误并解决问题的能力尤为关键。

整个搭建过程其实耗时其实并不长,大时候其实用来在写本篇文章了,但其中最耗时的是排查问题并解决问题,能否在一次又一次失败后镇定下来去再一次尝试去对问题发起进攻。

By:moye
2022/8/15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值