ubuntu 16 + nginx 配置SSL

Ubuntu 16.04 下 Nginx Server Blocks 虚拟主机配置实战指南 Nginx 虚拟主机(Server Blocks)是实现多站点托管的核心机制,其原理基于 HTTP 请求头中的 Host 字段匹配 server_name 指令,并通过 include 机制动态加载独立配置文件。该技术具备轻量、高效、无状态等工程优势,广泛应用于静态网站托管、Vue/React 单页应用部署及 PHP 后端服务集成等场景。在 Ubuntu 16.04 这一特定环境中,由于默认不创建 sites-available 目录、init 系统差异及 OpenSSL/ACME 兼容性限制,Server 阅读详情

可以参考这篇文章。

https://www.jianshu.com/p/b47d862bceeb

https://blog.youkuaiyun.com/m0_38025747/article/details/80602651

在配置过程中,续订时报错:

Certbot提供的证书期限为90天,执行此命令可自动续订证书。

第一,遇到的问题

sudo certbot renew –dry-run 报错如下

Attempting to renew cert (mynamedomain.com) from /etc/letsencrypt/renewal/mynamedomain.com.conf produced an unexpected error: Failed authorization procedure. mynamedomain.com (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://mynamedomain.com/.well-known/acme-challenge/6hsJIxPvl2zX0YiZuYMExyAn_yyOdbDZirx_fk-1AFc: "\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n  <title>Page not". Skipping.
All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/mynamedomain.com/fullchain.pem (failure)

解决办法:

依次运行:

# service nginx stop

# certbot --force-renewal

# certbot certonly

# certbot renew --dry-run

# service nginx start

 

第一,遇到的新的问题

在执行# service nginx start 重启时,报错如下:

Active: failed (Result: exit-code) since Fri 2018-10-12 17:46:00 UTC; 16s ago

Failed to start A high performance web server and a reverse proxy server.

解决办法:

将与之相关的端口都关闭,再重启ok

 

命令:

#sudo certbot --nginx -d mydomain.com

#sudo certbot renew --dry-run

#service nginx stop

#certbot --force-renewal

#certbot renew --dry-run

#sudo fuser -k 80/tcp 

#sudo fuser -k 443/tcp

#sudo fuser -k 8000/tcp

#service nginx start 或 systemctl restart  nginx.service

#systemctl status  nginx.service

最后再启动网站

uwsgi --ini myweb.ini

 

ArcGIS Pro中文帮助离线包安装指南:版本匹配与操作详解 本文详细指导如何为ArcGIS Pro安装中文帮助离线包,解决在线帮助访问不畅的问题。核心在于确保软件版本与离线包的精确匹配,并提供了从版本查看、离线包获取、安装步骤到软件内配置的完整操作流程。文中重点强调了版本匹配的重要性,并分享了高效使用本地帮助搜索及管理多版本帮助的实用技巧。 阅读详情

相关推荐

功能安全入门:手把手教你用IEC 62380标准计算芯片失效率(附SN 29500对比)

本文深入解析了IEC 62380标准在芯片失效率计算中的应用,对比了SN 29500的差异,并提供了实战案例和避坑指南。通过详细的参数获取方法和分步计算演示,帮助功能安全工程师准确评估芯片可靠性,确保设计符合安全要求。特别适合汽车电子和工业控制领域的专业人士参考。

weixin_30363981的博客 313

使用 let's encrypt, certbot 生成 https 证书常见问题

sudo certbot certonly --cert-name example.com 1.Problem binding to port 80: Could not bind to IPv4 or IPv6. 停止nginx等服务, Refer to Letencrypt renewal fails: Could not bind to IPv4 or IPv6… Skipping 2.Fa...

逐月 3878

解决用VScode写中文注释,Vivado打开之后是乱码的方法

这样就解决了中文注释乱码的问题,此外如果使用notepad++写verilog代码的话直接在notepad++上面将编码格式改为ANSI格式即可,更加方便快捷,所以此方法仅针对习惯用VScode写Verilog的同学,如果有其他好办法的话欢迎评论区补充。首先,VScode中的中文默认编码格式是UTF-8,然后Vivado的编码格式是vivado 默认的应该是ANSI编码格式,刚开始我先按照网上说明的,将VScode中的编码格式改为GBK格式(点击右下角->点击通过编码保存)。

weixin_50573305的博客 5809

letsencrypt生成证书错误 urn:acme:error:connection :: The server could not connect to the client to verify

外面太阳依然很大,也许我的错对人类会有所贡献。 如果letsencrypt 生成证书或者更新证书时报如下错误: Failed authorization procedure. xxx.com (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the do...

TheSilentNight的博客 4411

【机器人开发】四足机械狗(并联结构)URDF建模与Simscape仿真全流程解析

本文详细解析了四足机械狗(并联结构)从URDF建模到Simscape仿真的全流程开发。内容涵盖SolidWorks建模要点、URDF文件导出与优化、Matlab/Simscape环境搭建,以及并联机构特有的运动控制和步态规划实现,为机器人开发者提供了一套完整的解决方案。

weixin_30642561的博客 527

MuJoCo新手必看:5分钟搞定你的第一个机器人仿真(附Python代码)

本文为零基础新手提供了一份详尽的MuJoCo物理仿真引擎入门指南。从环境搭建、MJCF模型文件解析,到编写Python控制代码,手把手教你5分钟内创建并运行第一个机器人仿真。内容涵盖双摆模型控制与自定义四轮小车构建,帮助你快速掌握这一高性能开源工具,迈出机器人学与强化学习仿真的第一步。

weixin_29032489的博客 654

更新letsencrypt免费ssl证书时遇到的问题

linux下运行命令 ./certbot-auto renew更新Let’s Encrypt安全证书时抛出以下错误: Attempting to renew cert (wlsf.tpsion.com) from /etc/letsencrypt/renewal/wlsf.tpsion.com.conf produced an unexpected error: Failed authoriza...

竹杖芒鞋轻胜马 5912

kali设置安装burpsuite中文版

工具:通过网盘分享的文件:Burpsuite 链接:提取码: jay1。

m0_74786138的博客 5202

let's encrypt 生成证书时,404 not found的错误

今天在服务器上为另一个域名添加ssl,结果出现了http://xxx/.well-known/… 404 not found的错误 [root@fungli myxhs]# sudo certbot certonly --webroot -w /webser/www/myxhs -d xxx.xxx.cn -m xxxx@outlook.com --agree-tos Saving debug ...

静下心来写代码 8332

LLC 谐振变换器开发设计1

本文档详细介绍了基于DSP28335的LLC谐振变换器开发设计。系统采用频率调制(FM)控制方式,实现高效率、高功率密度的隔离型DC/DC变换。文档阐述了LLC拓扑结构和工作原理,给出了谐振频率、品质因数等关键参数的计算公式。硬件设计包括功率器件选型和采样电路实现,软件部分提供了DSP28335的核心控制算法和代码示例,涵盖频率转换、PI控制和PWM生成。系统还设计了启动策略和保护机制,确保可靠运行。该设计实现了主开关零电压开通和低纹波输出特性。

328

地平线旭日X3开发板--使用Opencv显示CSI摄像头例程

但是从libsrcampy获取的摄像头图像格式是NV12,无法直接在opencv上显示或者处理,调试过程发现旭日派无法直接用opencv的VideoCapture()调用CSI摄像头,需要使用opencv来做开发的小伙伴可以做个参考,效果如下图所示。需要使用libsrcampy库来获取CSI摄像头图像,为了能够使用opencv的API来处理图像,需要增加NV12转化成bgr像素格式的函数。opencv显示图像.png。

bingdund的博客 541

Ubuntu Nginx 配置 SSL 证书

在 Ubuntu 中安装 Nginx 服务;启动 Nginx 服务并设置为开机时自动启动;验证一下 Nginx 服务的当前状态;从云服务提供商处下载适用 Nginx 的 SSL 证书文件;以管理员身份下载证书文件;开始编辑配置文件;动态服务配置;静态服务配置;检测配置文件的有效性, 并且重启 Nginx 服务;

咖啡花园 2710

光伏微电网蓄电池储能控制系统设计及动态性能分析

本文构建了光伏微电网蓄电池储能控制系统的完整理论体系。在系统架构方面,提出了基于直流母线电压平衡的多时间尺度能量管理理论,建立了光伏发电单元的二阶物理模型和MPPT动态跟踪算法。针对蓄电池系统,设计了融合二阶RC等效电路与扩展卡尔曼滤波的SOC估计方法,误差控制在3%以内。双向DC-DC变换器采用状态空间平均建模方法,推导了小信号传递函数,为闭环控制提供理论基础。该体系实现了从瞬时功率平衡到长期能量调度的多层级协同控制,为微电网稳定运行提供了系统的解决方案。

AI的内部世界的博客 191

ubuntu 16.04 配置ssl

Let's Encrypt 的服务相信很多人都知道了,我个人认为这是最好的免费 SSL 服务。下面内容即使如何在自己的网站上使用 Let's Encrypt 实现 SSL. 前提条件 自己拥有一个域名,备案了的域名最好。 Ubuntu 16.04 的服务器,你可以到腾讯云或者阿里云购买这样的云主机。 将域名自己解析到你的 Ubuntu 16.04 的云主机 ip;注...

weixin_30478619的博客 537

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ubuntu下nginx配置https

本配置为ubuntu16.04下配置 一、安装nginx,执行命令 apt install nginx 二、搜索nginx目录,执行命令 find / -name “nginx” -print,结果如下 可以看到执行启动文件为/usr/sbin/nginx,配置文件目录为/etc/nginx,日志目录为/var/log/nginx 三、拷贝证书到配置文件目录为/etc/nginx下,本人命名为nginx.pem, nginx.key 四、配置nginx.conf,同时兼容80的http和443的https

zhulin40的专栏 1104

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

https 自签名SSL证书

介绍 TLS或称传输层安全性,及其前身SSL(代表安全套接字层)是用于将正常流量包装在受保护的加密包装中的Web协议。 使用这种技术,服务器可以在服务器和客户端之间安全地发送流量,而不会被外部各方拦截。证书系统还可以帮助用户验证他们正在连接的站点的身份。 在本教程中,我们将向您展示如何设置自签名SSL证书,以便与Ubuntu 16.04服务器上的Nginx Web服务器一起使用。 注意:自...

weixin_30763397的博客 324

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

腾讯云网站备案 域名解析 SSL证书申请 Ubuntu16.04下为Nginx服务器配置SSL证书

在腾讯云购买一个域名 搭建一个网站, 将域名解析到该网站的服务器, 在服务器上配置nginx指向该网站的端口. 在腾讯云SSL证书管理页面为该域名申请一个SSL证书, 一般5分钟验证申请成功. 将SSL证书中Ngix版本的1_www.domain.com_bundle.crt和2_www.onclick.ac.cn.key保存到/etc/nginx 编辑/etc/nginx/nginx.conf...

tonydandelion2014的博客 421

如何在 Ubuntu 16.04 上为 Nginx 创建自签名 SSL 证书

TLS,即传输层安全,及其前身SSL,即安全套接字层,是用于将普通流量包装在受保护的加密包装中的网络协议。使用这项技术,服务器可以在服务器和客户端之间安全地发送流量,而不会被外部方拦截。证书系统还帮助用户验证他们正在连接的站点的身份。在本指南中,您将学习如何为 Ubuntu 18.04 上的 Apache Web 服务器设置自签名 SSL 证书。

rubys007的博客 2097

linux contenos下nginx配置ssl证书实现https访问

原文地址:https://www.cnblogs.com/tianhei/p/7726505.html 本文主要是记录一下nginx配置ssl的方式 一,环境说明 服务器系统:ubuntu16.04LTS 服务器IP地址:47.89.12.99 域名:bjubi.com 二,域名解析到服务器 在阿里云控制台-产品与服务-云解析DNS-找到需要解析的域名点“解析”,进入解析页面后选择【...

liqi_q的博客 985

Ubuntu 16.04 上的 NGINX Web 服务器!

Let’s Encrypt 是互联网安全研究组织 (ISRG) 提供的免费证书认证机构。它提供了一种轻松自动的方式来获取免费的 SSL/TLS 证书 - 这是在 Web 服务器上启用加密和 HTTPS 流量的必要步骤。获取和安装证书的大多数步骤可以通过使用名为 Certbot 的工具进行自动化。

oqqSSH的博客 1248

ubuntu nginx 配置 https 证书

转载 https://blog.csdn.net/m0_38025747/article/details/80602651   1、nginx 安装配置 就不在这说了 2、申请SSL证书并进行配置      点击Get Started  或直接访问Certbot官网     其中Software为服务器类型,System为服务器上系统类型。 我使用的是Ubuntu 16...

YuYan_wang 500

阿里云 nginx配置ssl证书实现https访问

转自:https://www.cnblogs.com/onetwo/p/10369644.html 一,环境说明 服务器系统:ubuntu16.04LTS 服务器IP地址:47.89.12.99 域名:bjubi.com 二,域名解析到服务器 在阿里云控制台-产品与服务-云解析DNS-找到需要解析的域名点“解析”,进入解析页面后选择【添加解析】按钮会弹出如下页面: 主机记录这里选择@,记录值就是服务器ip地址,确认。 三,申请ca证书 在阿里云控制台-产品与服务-安全(云盾)-CA证书服务(数据安全),点

will0411的博客 1481

如何在 Ubuntu 16.04 上使用 Node-RED 连接你的物联网设备

Node-RED 是物联网的交换机板,是一个可视化工具,帮助您将喜爱的应用程序、网站和硬件连接在一起,实现新的有用功能。Node-RED 往往被比作 IFTTT 或已经停止运营的 Yahoo Pipes,但 Node-RED 拥有更强大、更灵活的界面,以及一个庞大的开源社区,创建节点与各种应用程序和服务进行交互。在本教程中,我们将安装 Node.js 和 Node-RED,从 Let’s Encrypt 获取 SSL 证书,并使用 Nginx 处理 Node-RED 的安全连接。

rubys007的博客 3062

使用certbot自动申请续期SSL证书(Ubuntu)

##介绍 我们通过Certbot自动化完成SSL证书注册和配置文件修改步骤,从而在Web服务器上启用加密的HTTPS。目前,获取和安装证书的整个过程在Apache和Nginx上都是完全自动化的。 在本教程中,您将使用Certbot在Ubuntu 16.04上获取Nginx的Let’s Encrypt免费SSL证书,并将证书设置为自动续...

larpland的博客 3653

nginx配置ssl证书实现https访问

转载:https://www.cnblogs.com/tianhei/p/7726505.html 一,环境说明 服务器系统:ubuntu16.04LTS 服务器IP地址:47.89.12.99 域名:bjubi.com 二,域名解析到服务器 在阿里云控制台-产品与服务-云解析DNS-找到需要解析的域名点“解析”,进入解析页面后选择【添加解析】按钮会弹出如下页面: 主机...

weixin_30412013的博客 65
上一篇: Django admin后台管理无样式,报错找不到css
下一篇: django ubuntu QQ邮件无法发送
flyingool
博客等级 码龄15年 44粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值