Apache+LNMP搭建部署

  1. 
    |<p>1\.</p><p>**LAMP概述**</p>| | :- | ||<p>a.</p><p>**什么是LAMP**</p>|
    目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境
    
    ||<p>b.</p><p>**构成组件**</p>| | :- | :- |
    Linux、Apache、MySQL、PHP/Perl/Python
    
    ||<p>c.</p><p>**LAMP的优势**</p>| | :- | :- | 成本低廉
    
    可定制、易于开发
    
    方便易用、安全和稳定
    
    |<p>2\.</p><p>**搭建源码包Apache**</p>| | :- |
    ||<p>a.</p><p>**解包,配置,编译,安装**</p>| ||1||<p>[root@www ~]# rpm -e
    httpd --nodeps //卸载rpm软件包 --nodeps是强制卸载忽略依赖 生</p><p>产环境不建议此操作
    可以使用yum remove 来卸载</p>| 2 [root@www ~]# yum install -y
    apr-util-devel pcre-devel make gcc\* //安装依赖软件包
    
    3 [root@www ~]# systemctl stop firewalld //关闭防火墙
    
    4 [root@www ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/
    //解包httpd源码包到指定目录
    
    5 [root@www ~]# cd /usr/src/httpd-2.4.25/ //切换到已解包的httpd目录
    
    6
    
    ||7||<p>[root@www httpd-2.4.25]# ./configure
    --prefix=/usr/local/httpd --enable-so --enable-</p><p>rewrite --enable-charset-lite --enable-cgi && make && make install</p>| | :- | :- | :- | :- | 8 ##配置,编译,安装
    
    ||<p>b.</p><p>**优化Apache**</p>| | :- | :- |
    ||<p>i.</p><p>**优化路径**</p>| 1 [root@www ~]# ln -s
    /usr/local/httpd/bin/\* /usr/local/bin/ ##优化路径
    
    2 [root@www ~]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl
    
    ||3||<p>lrwxrwxrwx. 1 root root 30 527 20:21
    /usr/local/bin/apachectl
    -></p><p>/usr/local/httpd/bin/apachectl</p>| | :- | :- | :- | :- | ||4||<p>lrwxrwxrwx. 1 root root 26 527 20:21 /usr/local/bin/httpd
    -></p><p>/usr/local/httpd/bin/httpd</p>| ||<p>ii.</p><p>**添加系统服务**</p>|
    
    
    
    
    <a name="br2"></a>1 [root@www ~]# vim
    /lib/systemd/system/httpd.service ##创建httpd系统配置文件
    
    2 [Unit] ##进行单元类型控制
    
    3 Description=The Apache HTTP Server ##说明是什么服务
    
    4 After=network.target ##启动之前需要先启动网络服务就依赖于网络
    
    5 [Service] ##定义服务的一些具体运行参数的设置
    
    6 Type=forking ##以后台进程的方式运行这个服务
    
    7 PIDFile=/usr/local/httpd/logs/httpd.pid ##运行时的进程ID存放路径
    
    8 ExecStart=/usr/local/bin/apachectl $OPTIONS ##执行开启服务动作的时执行后面的的动作
    
    9 ExecReload=/bin/kill -HUP $MAINPID ##重新载入服务配置文件时执行后面的动作
    
    10 KillMode=process ##当终止进程时,它会终止主程序(即可以通过管理进程进行控制)
    
    11 Restart=on-failure ##当服务非正常退出的时候会自动重启服务
    
    12 RetartSec=42s ##重启服务等待超时时间(如果超过了就无法启动)
    
    13 [Install] ##定义运行级别
    
    14 WantedBy=graphical.target ##运行级别在5(既图形界面)
    
    15 最小化则是 WantedBy=multi-user.target
    
    ||16||<p>[root@www bin]# systemctl enable httpd.service
    ##设置为开机自启动(前提配置好相应的系统配</p><p>置文件)</p>| | :- | :- | :- | :- | ||17||<p>Created symlink from
    /etc/systemd/system/multi-user.target.wants/httpd.service
    to</p><p>/usr/lib/systemd/system/httpd.service. ##创建软链接文件</p>| iii.
    
    **优化主配置文件**
    
    1 [root@www~]# vim /usr/local/httpd/conf/httpd.conf
    
    ||2||<p>PidFile logs/httpd.pid ##设置用于保存 httpd
    进程号(PID)的文件,默认保存地址为</p><p>logs/httpd.pid,logs 目录位于 Apache
    的服务器根目录下</p>| | :- | :- | :- | :- | 3 AddDefaultCharset UTF-8
    ##设置站点中的网页默认使用的字符集编码,如 UTF-8、gb2312等
    
    ||4||<p>DirectoryIndex index.html index.php
    ##设置网站的默认索引页(首页),可以设置多个首页文件,</p><p>以空格分开,默认的首页文件为 index.html</p>| | :- | :- | :- | :- | 5
    
    Include conf/extra/httpd-default.conf ##包含另一个配置文件的内容,可以实现将一些特殊功能的配
    置放到一个单
    
    6
    
    独的文件中,再使用 Include 配置项将其包含到 httpd.conf 文件中,这样便于独立进行配置功能的维护 而不影响主配置文件
    
    7 [root@www conf]# systemctl restart httpd.service ##重启httpd服务
    
    8
    
    3\.
    
    **安装源码包mysql**
    
    a.
    
    **安装依赖包cmake和其他依赖包**
    
    i.
    
    **解包,配置,编译,安装**
    
    
    
    
    <a name="br3"></a>1 [root@www lamp]# tar zxf cmake-2.8.6.tar.gz -C
    /usr/src/ ##解包cmake到指定目录
    
    2 [root@www lamp]# cd /usr/src/cmake-2.8.6 ##切换到解压cmake的目录
    
    3 [root@www cmake-2.8.6]# ./configure && gmake && gmake install
    ##编译,配置,安装一起执行
    
    4 [root@www cmake-2.8.6]# echo $? ##查看是否安装成功
    
    5 0 ## 0就是成功
    
    ||6||<p>[root@www cmake-2.8.6]# yum install -y ncurses-devel
    libaio-devel gcc gcc-c++ glibc</p><p>autoconf openssl
    openssl-devel</p><p>##安装依赖包 注意必须是安装MySQL之前安装</p>| | :- | :- | :- |
    :- | ||<p>b.</p><p>**创建mysql组,和用户**</p>| 1 [root@www cmake-2.8.6]#
    groupadd mysql ##创建myssql组
    
    ||2||<p>[root@www cmake-2.8.6]# useradd -M -s /sbin/nologin -g mysql
    mysql ##创建mysql用户 -</p><p>M 不建立宿住目录 -s 指定登录的shell -g 指定基本组</p>| | :-
    | :- | :- | :- | 3
    
    ||<p>c.</p><p>**解包**</p>| | :- | :- | 1 [root@www lamp]# tar zxf
    mysql-5.6.36.tar.gz -C /usr/src/ ##解压到指定的目录
    
    ||<p>d.</p><p>**编译配置安装**</p>| | :- | :- | 1 [root@www lamp]# cd
    /usr/src/mysql-5.6.36/
    
    ||2||<p>[root@www mysql-5.6.36]# cmake
    -DCMAKE\_INSTALL\_PREFIX=/usr/local/mysql -</p><p>DSYSCONFDIR=/etc -DDEFAULT\_CHARSET=utf8 -DDEFAULT\_COLLATION=utf8\_general\_ci -</p><p>DWITH\_EXTRA\_CHARSETS=all && make && make install</p>| | :- | :- | :- | :- | 3 cmake 指定编译工具为cmake
    
    4 -DCMAKE\_INSTALL\_PREFIX=/usr/local/mysql 指定预安装目录为
    /usr/local/mysql
    
    5 -DSYSCONFDIR=/etc 指定生成的主配置文件存放目录
    
    6 -DDEFAULT\_CHARSET=utf8 指定默认的字符集格式
    
    7 -DDEFAULT\_CHARSET=utf8
    
    ||8||<p>-DDEFAULT\_COLLATION=utf8\_general\_ci
    指定默认使用的字符集校验规则:utf8\_general\_ci 是适用</p><p>于 UTF-8 字符集的通用规则</p>| |
    :- | :- | :- | :- | 9 -DWITH\_EXTRA\_CHARSETS=all 安装所有扩展字符集
    
    10 make && make install 编译,安装
    
    -DCMAKE\_INSTALL\_PREFIX= 指定安装路径目录为:
    
    -DSYSCONFDIR= 指定生成的主配置文件存放目录:
    
    -DDEFAULT\_CHARSET=utf8 指定默认的字符集格式为:
    
    
    
    
    <a name="br4"></a>-DDEFAULT\_COLLATION=utf8\_general\_ci
    指定数据库语言校验规则:
    
    -DWITH\_EXTRA\_CHARSETS=all 安装所有扩展字符集
    
    ||<p>e.</p><p>**安装后调整**</p>| | :- | :- | ||1||<p>[root@www
    mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysql/
    ##将生成mysql的主目的</p><p>属主和属组设置为MySQL -R 递归</p>| 2 [root@www mysql-5.6.36]# rm -rf /etc/my.cnf ##删除原来的配置文件
    
    ||3||<p>[root@www mysql-5.6.36]# cp support-files/my-default.cnf
    /etc/my.cnf ##复制源码里面的</p><p>配置到/etc/下并改名为my.cnf</p>| | :- | :- | :-
    | :- | ||4||<p>[root@www mysql-5.6.36]#
    /usr/local/mysql/scripts/mysql\_install\_db --user=mysql
    --</p><p>basedir=/usr/local/mysql --datadir=/usr/local/mysql/data</p>| ||5||<p>##初始化数据库 --user=mysql 指定初始化数据库的用户为mysql --</p><p>basedir=/usr/local/mysql
    指定MySQL的刚刚安装的目录为/usr/local/mysql</p>| 6
    --datadir=/usr/local/mysql/dat 指定刚刚安装MySQL存放的数据目录/usr/local/mysql/data/
    
    7 [root@www mysql-5.6.36]# echo $? ##查看是否初始化成功
    
    8 0
    
    ||9||<p>[root@www mysql-5.6.36]# echo
    "PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
    ##将</p><p>MySQL的脚本和命令追加到系统命令的搜索路径 ##全局变量</p>| | :- | :- | :- | :- | 10 [root@www mysql-5.6.36]# . /etc/profile ##重新加载环境变量
    
    ||<p>f.</p><p>**配置启动MySQL服务**</p>| | :- | :- | ||1||<p>[root@www
    mysql-5.6.36]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
    ##拷贝</p><p>启动脚本到开机自检的目录下并改名为mysqld</p>| 2 [root@www mysql-5.6.36]# chmod +x /etc/rc.d/init.d/mysqld ##给脚本添加可执行权限
    
    3 [root@www mysql-5.6.36]# chkconfig --add mysqld ##添加为系统服务
    
    4 [root@node01 mysql-5.6.36]# systemctl enable mysqld ##添加为系统开机自启
    
    5 [root@www mysql-5.6.36]# systemctl is-enabled mysqld
    ##查看是否已经设置为开机自启
    
    6 mysqld.service is not a native service, redirecting to
    /sbin/chkconfig.
    
    7 Executing /sbin/chkconfig mysqld --level=5
    
    8 enabled
    
    9
    
    10 [root@www mysql-5.6.36]# /etc/init.d/mysqld start
    ##开机MySQL服务或者使用systemctl
    
    11 Starting MySQL.Logging to '/usr/local/mysql/data/www.kgc.cn.err'.
    
    12 SUCCESS!
    
    |13||<p>[root@www mysql-5.6.36]# netstat -anptu|grep mysql ##查看开启的端口
    3306端口</p><p>10713PID号</p>| | :- | :- | :- | |14||<p>tcp6 0 0
    :::3306 :::\* LISTEN</p><p>10713/mysqld</p>|
    
    
    
    
    <a name="br5"></a>15
    
    ||<p>g.</p><p>**登录MySQL服务并设置密码**</p>| | :- | :- | 1 [root@www
    mysql-5.6.36]# mysql -u root -p ##登录MySQL数据库 -u 用户名 -p 密码
    
    2 Enter password: 密码默认为空回车即可
    
    3 mysql> show databases; ##查看数据库列表
    
    4 +--------------------+
    
    5 | Database |
    
    6 +--------------------+
    
    7 | information\_schema |
    
    8 | mysql |
    
    9 | performance\_schema |
    
    10 | test |
    
    11 +--------------------+
    
    12 4 rows in set (0.00 sec)
    
    13 mysql> set password for root@localhost=password('pwd123');
    ##在数据库内设置密码
    
    14 Query OK, 0 rows affected (0.00 sec)
    
    15 ##mysql> set password for 用户名@localhost = password('新密码'); 数据库内设置
    
    16 mysql> flush privileges; ##刷新权限列表
    
    17 Query OK, 0 rows affected (0.00 sec)
    
    18
    
    19 mysql> exit ##退出数据库
    
    20 Bye
    
    21 [root@www mysql-5.6.36]# mysql -u root -p ##再次登录需要输入密码
    
    22 Enter password:
    
    23 [root@www mysql-5.6.36]# mysql -uroot -ppwd123 ##直接输入密码登录
    
    |<p>4\.</p><p>**安装PHP源码包**</p>| | :- | 1 [root@www mysql-5.6.36]#
    yum -y remove php php-cli php-ldap php-common php-mysql
    
    2 删除PHP的rpm相关依赖包
    
    3 [root@www mysql-5.6.36]# yum -y install zlib zlib-devel libxml2
    libxml2-devel
    
    4 安装PHP源码包的依赖包
    
    ||<p>a.</p><p>**安装源码包扩展工具库**</p>| | :- | :- |
    ||<p>i.</p><p>**数据加密工具libmcrypt、mhash、mcrypt**</p>|
    
    
    
    
    <a name="br6"></a>ii.
    
    **安装libmcrpyt**
    
    1 [root@www lamp]# tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src/ ##解包
    
    2 [root@www lamp]# cd /usr/src/libmcrypt-2.5.8/ ##切换到解包的目录
    
    3
    
    4 [root@www libmcrypt-2.5.8]# ./configure && make && make install
    ##配置,编译,安装
    
    5 [root@www libmcrypt-2.5.8]# echo $? ##查看是否成功
    
    6 0
    
    7 [root@www libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.\*
    /usr/src/ ##优化路径
    
    iii.
    
    **安装mhash**
    
    1 [root@www lamp]# tar zxf mhash-0.9.9.9.tar.gz -C /usr/src/ ##解包
    
    2 [root@www lamp]# cd /usr/src/mhash-0.9.9.9/ ##切换到解包的目录
    
    3 [root@www mhash-0.9.9.9]# ./configure && make && make install
    ##配置,编译,安装
    
    4 [root@www mhash-0.9.9.9]# echo $? ##查看是否安装成功
    
    5 0
    
    6 [root@www mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash\* /usr/lib
    ##优化路径
    
    7
    
    iv.
    
    **安装mcrypt**
    
    1 [root@www lamp]# tar zxf mcrypt-2.6.8.tar.gz -C /usr/src/ ##解包
    
    2 [root@www lamp]# cd /usr/src/mcrypt-2.6.8/ ##切换到解包的目录
    
    3 [root@www mcrypt-2.6.8]# export
    LD\_LIBRARY\_PATH=/usr/local/lib:$LD\_LIBRARY\_PATH
    
    4 定义一个全局变量以方便查找libmcrpyt包,不定义则会无法配置
    
    5 [root@www mcrypt-2.6.8]# ./configure && make && make install
    ##配置,编译,安装
    
    6 [root@www mcrypt-2.6.8]# echo $? ##查看是否成功
    
    7 0
    
    v.
    
    **安装PHP**
    
    1 [root@www lamp]# tar zxf php-5.5.38.tar.gz -C /usr/src/ ##解包
    
    2
    
    [root@node01 php-5.5.38]# ./configure --prefix=/usr/local/php5
    --with-mcrypt --with- apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with- mysqli=/usr/local/mysql/bin/mysql\_config
    --with-config-file-path=/usr/local/php5 -- enable-mbstring && make && make install
    
    3 --prefix=/usr/local/php5 指定安装的路径
    
    
    
    
    <a name="br7"></a>4 --with-mcrypt 加载新的的模块既刚刚安装的扩展工具(数据加密工具)
    
    5
    
    --with-apxs2=/usr/local/httpd/bin/apxs 设置 Apache HTTP Server 提供的 apxs 模块支持程序 的文件位置
    
    6 --with-mysql=/usr/local/mysql 指定MySQL的安装目录(添加 MySQL 扩展支持)
    
    ||7||<p>--with-mysqli=/usr/local/mysql/bin/mysql\_config
    指定MySQL的配置文件(支持客户机连接数据</p><p>库的模块)</p>| | :- | :- | :- | :- | 8
    ---with-config-file-path=/usr/local/php5 指定存放PHP主配置文件的存放目录
    
    9 --enable-mbstring 启用多字符集模式,以便支持中文等代码
    
    10 --with 是添加新的模块 --enable 是启用模块
    
    11 [root@www php-5.5.38]# echo $? ##查看是否安装成功
    
    12 0
    
    b.
    
    **PHP配置调整**
    
    i.
    
    **添加优化模块**
    
    **添加 ZendGuardLoader 优化模块 为了进一步提高 PHP 程序的执行效率,优化页面加载速度,可以为 PHP 添**
    
    **加 Zend 公司开发的ZendGuardLoader优化模块。若需要加密PHP代码以限制未经授权的分发, 还可以购买**
    
    **该公司的 ZendGuard 软件。添加 ZendGuardLoader 模块支持的过程如下所 述。 首先将下载的**
    
    **ZendGuardLoader 包释放,并将其中 php-5.3.x 目录下的模块文件 复制到 PHP 程序的模块文件夹**
    
    ||1||<p>[root@www lamp]# tar zxf
    zend-loader-php5.5-linux-x86\_64\_update1.tar.gz -C
    /root</p><p>##解包</p>| | :- | :- | :- | :- | 2
    
    [root@www lamp]# cd /root/zend-loader-php5.5-linux-x86\_64/ ##切换到
    指定解压目录
    
    3
    
    [root@www zend-loader-php5.5-linux-x86\_64]# ls ##查看所有的 优化文件
    
    4 opcache.so README.txt ZendGuardLoader.so
    
    5
    
    [root@www zend-loader-php5.5-linux-x86\_64]# cp ZendGuardLoader.so
    /usr/local/php5/lib/php/ ##将优化文件复制到PHP的安装目录
    
    ii.
    
    **复制PHP主配置和主配置文件调整**
    
    **通过修改 php.ini 文件中的配置内容,可以控制 PHP 网页的执行特性,如是否允许用户上传文件、设**
    
    **置上传文件的大小限制、设置默认使用的字符集、加载额外的扩展模块等。如果没有特别要求,可以**
    
    **直接沿用默认配置,不做任何修改**
    
    ||1||<p>` `[root@www zend-loader-php5.5-linux-x86\_64]# cp
    /usr/src/php-5.5.38/php.ini-</p><p>development
    /usr/local/php5/php.ini</p>| | :- | :- | :- | :- | 2
    
    安装好 PHP 软件包以后,服务器并不会自动创建 php.ini 配置文件,但在源码目录下提供了两个样例配
    置文件,分别对应于开发环境、生产环境
    
    3 usr/src/php-5.5.38/php.ini-development //开发版样例文件,用于学习、测试
    
    
    
    
    <a name="br8"></a>4 /usr/src/php-5.5.38/php.ini-production
    //生产版样例文件,用于实际运营
    
    5 [root@www ~]# vim /usr/local/php5/php.ini
    
    ||6||<p>zend\_exteension=/usr/local/php5/lib/php/ZendGuardLoader.so
    ##指定刚刚的解压的优</p><p>化模块路径 添加到897行后面</p>| | :- | :- | :- | :- | 7 zend\_loader.enable=1 ##开启优化模块
    
    8 ##记得留一个空行
    
    ||9||<p>` `680 default\_charset = "UTF-8" ##开启默认字符集格</p><p>680</p>| | :- | :- | :- | :- | ||10||<p>` `783 file\_uploads = On
    ##允许通过 PHP 网页</p><p>上传文件 783</p>| ||11||<p>` `792 upload\_max\_filesize = 2M ##允许上传的文件大小</p><p>限制 792</p>| ||12||<p>`
    `795 max\_file\_uploads = 20 ##每个 HTTP 最多允</p><p>许请求上传的文件数 795</p>|
    ||13||<p>` `660 post\_max\_size = 8M ##每次通过表单</p><p>post 提交的数据量限制
    660</p>| 14
    
    202 short\_open\_tag = On ##允许识别 PHP 短语 法标记,<?…?> 20215
    
    16 873 extension=php\_mysqli.dll ##启用 MySQL 支持
    
    17 912 date.timezone = Asia/Shanghai ##更改时区
    
    18
    
    5\.
    
    **httpd.conf配置调整**
    
    a.**要使 httpd 服务器支持 PHP 页面解析功能,需通过 LoadModule 配置项加载 PHP**
    
    **程序的模块文件,并通过 AddType 配置项添加对“.php”类型网页文件的支持。除此以外,**
    
    **还应修改 DirectoryIndex 配置行,添加 index.php 配置项,以识别常见的 PHP 首页文**
    
    ****
    
    1 [root@www ~]# vim /usr/local/httpd/conf/httpd.conf ##编辑httpd主配置文件
    
    2 161 LoadModule php5\_module modules/libphp5.so ##安装PHP之后会生成此配置项
    1613 399 AddType application/x-httpd-php .php ##添加此内容,支持PHP解析 3994 261 DirectoryIndex index.html index.php ##添加默认网页index.php
    
    5 [root@www ~]# httpd -t ##检查语法格式
    
    6 Syntax OK
    
    7 [root@www ~]# systemctl restart httpd.service ##重启服务
    
    6\.
    
    **测试**
    
    a.
    
    **创建静态测试网页**
    
    
    
    
    <a name="br9"></a>1 [root@www ~]# echo "<h1>This is html page</h1>">
    /usr/local/httpd/htdocs/test1.html
    
    ||<p>b.</p><p>**创建PHP测试网页**</p>| | :- | :- | 1 [root@www ~]# vim
    /usr/local/httpd/htdocs/test2.php
    
    2 <?php ##加php是长格式不加既是短格式
    
    3 phpinfo(); ##输入PHP的默认网页
    
    4 ?>
    
    ||<p>c.</p><p>**创建连接数据库的测试动态网页**</p>| | :- | :- | 1 [root@www ~]#
    vim /usr/local/httpd/htdocs/test3.php ##创建测试网页
    
    2 <?php
    
    3 $link=mysqli\_connect('localhost','root','pwd123');
    
    4 if($link) echo "The connetion is sucessfull!!";
    
    5 mysqli\_close($link);
    
    6 ?>
    
    7 ~
    
    8 $link 创建一个连接对象,对象名称为link
    
    9 mysqli\_connect 调用一个函数就之前的模块
    
    10 ('localhost','root','pwd123'); localhost 本地数据库 root 用户名 pwd123 密码
    
    11 if($link) 使用if语句判断$link连接对象是否成功 成功则输出后面的字
    
    12 mysqli\_close($link); 断开连接无论是否连接成功
    
    
    3 phpinfo(); ##输入PHP的默认网页
    
    4 ?>
    
    ||<p>c.</p><p>**创建连接数据库的测试动态网页**</p>| | :- | :- | 1 [root@www ~]#
    vim /usr/local/httpd/htdocs/test3.php ##创建测试网页
    
    2 <?php
    
    3 $link=mysqli\_connect('localhost','root','pwd123');
    
    4 if($link) echo "The connetion is sucessfull!!";
    
    5 mysqli\_close($link);
    
    6 ?>
    
    7 ~
    
    8 $link 创建一个连接对象,对象名称为link
    
    9 mysqli\_connect 调用一个函数就之前的模块
    
    10 ('localhost','root','pwd123'); localhost 本地数据库 root 用户名 pwd123 密码
    
    11 if($link) 使用if语句判断$link连接对象是否成功 成功则输出后面的字
    
    12 mysqli\_close($link); 断开连接无论是否连接成功 undefined ```
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值