Linux 下使用Docker 安装 LNMP环境以及项目搭建 超详细

一、安装docker

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

uname -r #查看你当前的内核版本

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

yum update

3、卸载旧版本(如果安装过旧版本的话)

yum remove docker docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

5、设置yum源

	# 建议设置成第一个  第二个太慢了
	yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
	yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
	#设置完以后再执行如下命令
	yum makecache fast

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

7、安装docker

	#由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
	yum install docker-ce.x86_64

安装过程报错了:
在这里插入图片描述
分析原因
看上面的内容,说的是containerd.io >= 1.2.2-3 ,意思就是 containerd.io 的版本必须大于等于 1.2.2-3

解决方案:
降低docker 的版本或者更新 containerd.io 的版本

wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install -y containerd.io-1.2.6-3.3.el7.x86_64.rpm

然后回到第7步骤 输入

yum install docker-ce.x86_64

8、启动并加入开机启动

systemctl start docker
systemctl enable docker

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

10、查看docker列表

docker images

11、修改配置文件 可以参考链接:daemon.json详解

1. vi /etc/docker/daemon.json //如果没有新建该文件 
2. 添加以下内容
	{
        "registry-mirrors": [""],
        "live-restore":true
	}
3. 保存退出

12、常用命令

#查看所有镜像
docker images 
#查看所有容器			
docker ps -a 	
#查看运行中的容器		
docker ps 		
#删除容器		
docker rm 容器id	  
#删除镜像  	
docker rmi 镜像id			
#停止容器、同理还有start  restart status
docker stop 容器id/容器名	
#进入容器
docker exec -it 容器名 /bin/bash
#创建容器但是不启动
docker create 
#创建容器并启动
docker run
#重命名
docker rename 
#查看容器日志
docker logs 容器名

以上安装docker 内容完毕,接下来通过运行环境.


二、docker安装php

先安装php比较好,因为后面安装nginx的时候,需要两个容器关联。

1.查找Docker Hub上的php镜像

docker search php

2.拉取官方的镜像

docker pull php:7.4-fpm #指定版本号

3.创建php容器

#虚拟机下新建文件夹
mkdir /usr/local/php7.4
#启动php容器
docker run -p 9000:9000 --name php -d php:7.4-fpm
#拷贝配置文件
docker cp 0850901bc597:/etc/php/7.4/fpm/php.ini /usr/local/php7.4/php.ini
#停止、删除容器
docker stop php
docker rm b2009f54cf34
#正式部署  (这里如果宿主机没有/var/www目录的话  需要新建一下)
docker run -p 9000:9000 --name php -v /var/www:/var/www/html -v /usr/local/php7.4/php.ini:/etc/php/7.4/fpm/php.ini -d php:7.4-fpm
第一个-v php容器和宿主机共享目录
第二个-v 映射配置文件

PHP容器中安装composer

容器中安装composer才可以执行php artisan、composer install等命令

安装步骤:

1.docker exec -it cb6c1fe83bff(php容器ID) bash
2.php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
3.php composer-setup.php
4.php -r "unlink('composer-setup.php');"
5.mv composer.phar /usr/local/bin/composer

PHP容器中安装扩展(以GD库为例)

apt update	#更新软件源
apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev	#安装依赖库
docker-php-source extract #解压源码
cd /usr/src/php/ext/gd  #gd源码文件夹

**这里不适用于php7.4!!
docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2   #准备编译

**php7.4要用以下的编译方法!!
docker-php-ext-configure gd --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/include/freetype2

docker-php-ext-install gd	#安装并启用gd库
php -m	#查看是否安装成功

php容器中安装redis扩展
redis-5.3.7

1. 宿主机下载安装包  这里下载的是5.3.7,之前下载了一个5.0的没有安装成功。
2. 解压	tar -zxvf redis-5.3.7.tgz 
3. 复制文件到容器里
4. docker cp ./redis-5.3.7/* php:/usr/src/php/ext/redis   # php代表容器名 (如果没有此目录 记得去容器里新建一个)
5. 进入容器
6. docker exec -it php /bin/bash
7. cd /usr/src/php/ext/redis
8. 安装命令
9. docker-php-ext-install redis
10.查看php扩展  php -m 

三、docker安装nginx

1.搜索可用的nginx

docker search nginx

2.拉取官方的镜像

docker pull nginx

3.创建并运行容器,并拷贝nginx的默认配置文件。

#创建并运行容器
docker run --name nginx -p 80:80 -d nginx
#在虚拟机创建以下几个目录
mkdir /var/www
mkdir /usr/local/nginx
mkdir /usr/local/nginx/conf
mkdir /usr/local/nginx/conf/conf.d
mkdir /usr/local/nginx/logs
#拷贝nginx默认配置文件  docker ps 命令可以看到容器id(b2009f54cf34 容器id)
docker cp b2009f54cf34:/usr/share/nginx/html/index.html /var/www/index.html
docker cp b2009f54cf34:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf
docker cp b2009f54cf34:/etc/nginx/conf.d/default.conf /usr/local/nginx/conf/conf.d/default.conf
#先停止容器,再删除容器
docker stop b2009f54cf34
docker rm b2009f54cf34
#删除所有容器--谨慎使用!!!
docker rm `docker ps -a -q`

4.正式部署nginx

docker images 可以查看已经下载的镜像。
刚才删除的是启动后的docker容器,并没有删除pull下来的镜像,所以可以直接运行以下命令,再去启动一个nginx容器。
docker run --name nginx -p 80:80 -v /var/www:/usr/share/nginx/html \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/logs:/var/log/nginx -d --link php:php nginx

# 第一个-v 是将容器内nginx的html目录共享到宿主机(虚拟机)的www目录下
# 第二、三个-v是将容器内nginx的配置文件共享到宿主机的指定目录下(刚创建的)
# 第四个-v是将容器内的日志文件共享到宿主机指定目录下
# --link php:php 这个很重要!!! 关联php容器

--name 这里是别名,使用docker ps 会最后显示names
-p  80:80    第一个80是服务器的端口,第二个80是docker容器端口,
-d 要运行的容器名称 这里是nginx
-v 虚拟机位置:容器位置   做映射

nginx配置示例

server {
    listen       8083;
    listen  [::]:8083;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html/laravel-hand-touch/public;
        index index.php index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        fastcgi_pass   php:9000; # 这里很重要!  前面php容器名再加9000
        fastcgi_index  index.php;
        
        #这里路径直接用的项目所在的路径 改成/scripts$fastcgi_script_name;应该也好使。但是没试
        fastcgi_param  SCRIPT_FILENAME  /var/www/html/laravel-hand-touch/public$fastcgi_script_name; 
        
        include        fastcgi_params;
    }
}

此时,nginx安装完成

通过 docker ps -a 查看所有容器。
通过 netstat -nltp 可以查看到80 端口已经启动。

此刻访问虚拟机的IP,nginx 正常运行起来


四、docker安装mysql

docker安装mysql
1.查找镜像:

docker search mysql

也可以去官网查看镜像tag,选择自己需要的版本,否则会下载最新版本:https://hub.docker.com/_/mysql/

2.下载镜像(如上一步,可以指定想要的版本,不指定则为最新版):

docker pull mysql

3.通过镜像创建容器并运行:

docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
	
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

此时,用navicat for mysql连接mysql发现报错:Client does not support authentication protocol requested by server。。。
解决方案

1.进入容器
 docker exec -it mysql /bin/bash
2.进入mysql,并且更换数据库
 mysql -uroot -p   #密码123456
 use mysql;
3.开启远程访问权限
 GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;
4.更改密码加密方式
 ALTER USER 'root'@'%' IDENTIFIED BY 'root123456' PASSWORD EXPIRE NEVER; 
5.更新用户密码
 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123456'; 
6.刷新权限
 FLUSH PRIVILEGES; 

以上是MySQL安装的全过程,目前的环境搭建已经全部完成了。

四-1 因为我项目中用到了redis,所以还需要安装redis容器
docker searech redis
docker pull redis
mkdir /usr/local/redis && mkdir /usr/local/redis/data
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name redis -v /usr/local/redis/myredis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data -d redis redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass 123456

--restart=always 总是开机启动
-p 6379:63796379端口挂载出去
-d redis 表示后台启动redis
–appendonly yes 开启redis 持久化
–requirepass 123456设置密码

五、docker安装Jenkins

1.安装Jenkins docker镜像网站

1. docker search jenkins
2. docker pull jekins/jenkins   //如果想拉取指定版本   可以去https://hub.docker.com/   搜索docker,点击Tag 下载所需要的版本。
3. 注意!! 这里docker search jenkins的列表中虽然第一个的star最多,但是已经是老版本,不需要。我们就执行上一步的命令即可。

2.安装java环境
1. jdk8_linux百度网盘下载地址 提取码:80ku
2. 官网下载地址 – 不推荐。下载的比网盘慢,并且还得注册Oracle账号。

1. 将下载的tar.gz压缩包上传到/usr/local文件夹下。---这里我下载的是jdk-8u351-linux-x64.tar.gz版本
2. 执行解压命令  tar -zxvf jdk-8u351-linux-x64.tar.gz
3. 配置环境变量 
	1. vi /etc/profile
	2. 在文件最下面填写以下内容
		export JAVA_HOME=/usr/local/jdk1.8.0_351
		export JRE_HOME=${JAVA_HOME}/jre
		export PATH=$PATH:$JAVA_HOME/bin
		export CLASSPATH=.:$JAVA_HOME/lib/toos.jar:$JAVA_HOME/lib/dt.jar
	3. source /etc/profile    使配置文件生效
	4. java -version 验证是否配置成功

3.安装maven环境
下载maven安装包 官方地址 网盘地址 提取码:g54r 这里下载的是3.8.6版本

1.将压缩包上传至/usr/local文件夹下
2.执行命令 tar -zxvf  apache-maven-3.8.6-bin.tar.gz 解压
3.再去执行命令  vi /etc/profile
4.在文件最下面的PATH路径中添加 :/usr/local/apache-maven-3.8.6/bin
5.source /etc/profile    使配置文件生效
6.mvn -version 验证maven是否生效

4.启动Jenkins容器

1. docker images # 查看已拉取的镜像
2. 启动Jenkins容器
 	创建Jenkins映射的地址    
 	mkdir /usr/local/jenkins
 	chmod -R 777 /usr/local/jenkins
 	docker run -dit -uroot -p 8080:8080 -p 50000:50000 -v /usr/local/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /usr/local/apache-maven-3.8.6:/usr/local/maven -v /var/www:/opt/file -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai --name jenkins jenkins/jenkins
 	** 注意这里执行的不是exec命令,没必要在后面加上/bin/bash  反正我加上这个参数是启动不了 **
3.参数解释
	# -p 8080:8080 第一个8080指的是服务器的8080端口,第二个指的是容器内的8080端口。意思是将容器内Jenkins默认的8080端口(第二个)映射到服务器中的8080端口(第一个)上。
	# -p 50000:50000  将镜像中的50000端口映射到服务器的50000端口上。后面的是镜像端口,前面第一个是服务器的端口,也就是ip:访问的端口
 	# -v /usr/local/jenkins:/var/jenkins_home  将容器内Jenkins默认的/var/jenkins_home工作空间映射到自己服务器新建的目录中(/usr/local/jenkins)
 	# -v /var/www:/opt/file 将容器中的/opt/file映射到宿主机/var/www文件夹中  (以便用nginx部署的时候指向到这里)
 	# -d 后台运行   -it不知道啥意思 好像是一直保持后台
 	# -uroot	设置操作权限root,镜像中默认的操作权限是jenkins
 	# -v /usr/local/apache-maven-3.8.6:/usr/local/maven    将镜像中的maven目录映射到服务器刚安装的maven目录
 	# jenkins/jenkins   这里对应的是docker images命令中拉取的Jenkins名。如果拉取的是指定版本,记得带上版本号(:版本号)

此外还可以配置镜像加速:

1. cd /usr/loca/jenkins
2. vi hudson.model.UpdateCenter.xml
3.  将 url 修改为 清华大学官方镜像:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

5.访问 服务器ip:8080即可访问到Jenkins。

在服务器/usr/local/jenkins/secrets/initialAdminPassword文件中可以看到默认的admin密码。

至此Jenkins安装成功。


jenkins中配置gitee地址。
1.首先在系统管理-插件管理中下载gitee插件。然后重启jenkins容器。
2.在系统管理-系统配置中配置gitee地址和个人令牌。
3.新建项目-选择gitee,然后选择git-输入仓库链接和用户名密码即可。
在这里插入图片描述

六、将本地的laravel项目在虚拟机环境中跑起来。
  1. 首先我本地有一个码云上的项目。我下载到了G:\phpstudy_pro\WWW\personal目录下。码云地址

  2. 然后进行virtual的挂载设置,将phpstudy下的www目录挂载到虚拟机根目录下的www目录中。我本地很多项目,所以都会加载到。如图
    在这里插入图片描述

  3. 执行如下命令

    # 现在是把windows上的项目挂载到了虚拟机的/share目录中。
    # 但是如果在nginx中直接绑定项目的public目录会报错,因为/share没有执行权限。
    # 这时候需要在/home/user_account/目录下,也就是你自己创建的账户目录下新建share文件目录。
    # 然后将Windows共享的目录挂载到这个目录就可以了。
    
    #执行如下代码
    cd /home/zlsn
    mkdir share
    mount -t vboxsf www /home/zlsn/share
    
    #注意!!其中www是Windows的目录名,我这里是phpstudy中的www目录。
    /home/zlsn/share是虚拟机的目录路径,zlsn是我的虚拟机账户
    挂载之后就可以访问了
    
  4. 修改docker中的nginx映射文件

    # 1.查看nginx映射关系
    docker inspect -f "{{.Mounts}}" nginx
    # 2.下面将宿主机挂载的目录从/www变更为/home/zlsn/share,容器中对应的目录不变/usr/share/nginx/html。步骤如下:
    # 3.查看nginx的容器id
    docker ps     (我这里的nginx容器id为423dee110622)
    # 4.关闭docker容器
    docker stop nginx
    # 5.停止docker服务
    systemctl stop docker
    # 6.修改docker配置文件  --注意config.v2.json有两个地方需要修改!
    cd /var/lib/docker/containers/423dee110622开头的文件
    将文件config.v2.json和hostconfig.json中的"Source"/nginx更改为/home/zlsn/share
    # 7.开启docker服务
    systemctl start docker
    # 8.启动nginx容器
    docker start nginx
    # 9.再次查看,此时已经修改成功
    docker inspect -f "{{.Mounts}}" nginx
    #10.php的映射关系也要改一下
    

    注意,修改完以后的映射关系如下

    # 查看nginx的映射关系
    docker inspect -f "{{.Mounts}}" nginx
    映射关系如下
    [{bind  /home/zlsn/share /usr/share/nginx/html   true rprivate} {bind  /usr/local/nginx/logs /var/log/nginx   true rprivate} {bind  /usr/local/nginx/conf /etc/nginx/conf   true rprivate} {bind  /usr/local/nginx/conf/conf.d /etc/nginx/conf.d   true rprivate}]
    
    # 查看php的映射关系
    docker inspect -f "{{.Mounts}}" php
    映射关系如下
    [{bind  /usr/local/php/php.ini /etc/php/7.4/fpm/php.ini   true rprivate} {bind  /home/zlsn/share /usr/share/nginx/html   true rprivate}]
    
    
  5. 修改nginx配置文件

    # 进入配置目录
    cd /usr/local/nginx/conf/conf.d
    # 修改配置
    vim test.conf
    # 写入如下代码
    
    
    server {
        listen       80;
        listen  [::]:80;
        server_name  www.cremb.com;
        root   /usr/share/nginx/html/personal/CRMEB-Min/src/crmeb/public;
        location / {
            index index.php index.html index.htm;
            autoindex  off;
    
            if (!-e $request_filename) {
                rewrite  ^(.*)$  /index.php?s=/$1  last;
                break;
            }
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
        location ~ \.php$ {
            fastcgi_pass   172.17.02:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^(.+\.php)(.*)$;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            #fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
            include        fastcgi_params;
        }
    
    }
    #windows本地host文件中加入,即可在本地访问此网址。
    虚拟机ip    www.cremb.com
    

    windows本地访问www.cremb.com 即可成功。

七、几个小知识

1.配置多站点
目前想到的办法是这样:多映射几个端口到宿主机,然后访问宿主机某个端口的时候,自然就访问到nginx容器中的对应端口了!
如下

docker run --name nginx -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 -p 8085:8085 -v /var/www:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d -v /usr/local/nginx/logs:/var/log/nginx -d nginx

容器中安装vim

apt-get update
apt-get install vim

cat << EOF > /root/.vimrc
:set encoding=utf-8
:set fileencodings=ucs-bom,utf-8,cp936
:set fileencoding=gb2312
:set termencoding=utf-8
EOF

查看php容器IP

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' php

注意事项

1.php的内网IP要配置到nginx中的配置文件里。
2.php的映射目录要替换掉$document

配置swap
如果服务器的配置不高,可以选择配置一下swap

1. free -h 查看内存配置情况。一般是没有配置swap的
2. 运行df -h,查看硬盘空间使用情况,确保有足够的空间
3. 配置命令:dd if=/dev/zero of=/var/swap bs=1M count=5120    解释:if 表示infile,of表示outfile,bs=1M代表增加的模块大小是1M,count=5120代表模块个数5120,也就是5G空间
4. 以下命令启用swap  
5. mkswap /var/swap
6. mkswap -f /var/swap
7. swapon /var/swap
8. 再次运行free -m 查看是否已经启用swap
9. 设置swap文件永久有效
10. vi /etc/fstab    &&  文件中添加上如下内容:/var/swap swap swap defaults 0 0
10.取消swap  swapoff /var/swap   &&     rm -rf /var/swap 

运行laravel项目如果报错Failed to clear cache. Make sure you have the appropriate permissions.

在storage/framework/cache目录下新建data文件夹就好了

八、 一些报错
  1. WARNING: bridge-nf-call-iptables is disabled解决
  2. laravel项目报错 could not find driver解决方法

    docker exec -it php /bin/bash
    docker-php-ext-install pdo pdo_mysql

九、 参考文章
  1. docker启动jenkins(centos)
  2. Docker安装Jenkins
  3. Linux 下使用Docker 安装 LNMP环境 超详细
  4. CentOS 配置Swap
  5. Docker PHP容器安装composer
  6. Docker为PHP安装gd扩展
  7. docker搭建nginx+php环境
  8. Docker安装MySQL并使用Navicat连接
  9. Docker中php安装redis扩展
  10. 史上最详细Docker安装Redis (含每一步的图解)实战
  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Docker安装LNMPLinux + Nginx + MySQL + PHP),你可以按照以下步骤进行操作: 1. 首先,确保你已经安装DockerDocker Compose。你可以使用以下命令来安装它们: - 引用中的命令可以用于Debian、Ubuntu等操作系统安装Docker。 - 引用中的命令可以安装Docker Compose。 2. 创建一个文件夹,用于存放你的LNMP项目。你可以使用以下命令来创建一个名为"lnmp"的文件夹: - `mkdir lnmp` 3. 进入到"lnmp"文件夹中: - `cd lnmp` 4. 创建一个docker-compose.yml文件,并使用你喜欢的编辑器编辑该文件: - `touch docker-compose.yml` - `vi docker-compose.yml` 5. 在docker-compose.yml文件中,定义你的LNMP服务配置。以下是一个示例配置: ``` version: '3' services: web: image: nginx:latest ports: - 80:80 volumes: - ./html:/usr/share/nginx/html links: - php php: image: php:latest volumes: - ./html:/var/www/html db: image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=your_password volumes: - ./data:/var/lib/mysql ``` 6. 保存并退出docker-compose.yml文件。 7. 使用以下命令启动你的LNMP服务: - `docker-compose up -d` 8. 等待一段时间,直到所有容器都成功启动。 现在,你已经成功安装LNMP,并可以通过访问 http://localhost 来访问你的Web应用程序。请注意,这只是一个基本的示例配置,你可以根据自己的需求进行修改和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Docker安装lnmp](https://blog.csdn.net/a18827547638/article/details/121615557)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Docker 搭建 LNMP 环境](https://blog.csdn.net/qq_32109909/article/details/124428870)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值