apache Setting on ubuntu

Ubuntu 18.04 Apache部署实战:从安装到安全加固 Apache HTTP Server 是最主流的开源Web服务器之一,其模块化架构与稳定性能使其长期广泛应用于企业级Web服务交付。理解其在Linux发行版中的服务生命周期管理、防火墙协同机制及配置加载原理,是掌握Web基础设施运维的核心基础。本文聚焦 Ubuntu 18.04 这一典型LTS环境,深入解析 apt包管理、systemctl服务单元控制、ufw防火墙策略配置等关键环节,揭示Apache进程启动、端口监听、请求响应的完整链路,并结合 DocumentRoot 权限控制、VirtualHost 阅读详情

打开服务:sudo a2enmod rewrite

检查是否打开:apache2ctl -M | grep rewrite

重启服务:service apache2 restart


DocumentRoot设置:/etc/apache2/sites-available/000-default.conf

DocumentRoot /home/ubuntu/ExecSearch/public
<Directory "/home/ubuntu/ExecSearch/public">
    AllowOverride All
</Directory>


Ubuntu 20.04 Apache 安装与生产级配置全指南 Apache 是最主流的开源 Web 服务器,其核心价值在于稳定、模块化和深度系统集成。理解其工作原理需从进程模型(MPM)、配置加载机制(如 a2enmod 符号链接体系)和安全框架(AppArmor)三者协同入手。在 Ubuntu 20.04 这一长期支持系统中,Apache 不仅是服务容器,更是与 systemd、logrotate、Certbot 等生态工具紧密耦合的基础设施组件。它广泛应用于 PHP 应用托管、反向代理网关、静态资源分发及教学实验环境。本文聚焦 Ubuntu 20.04 下 Apa 阅读详情

相关推荐

Ubuntu 20.04 快速安装 Apache Web 服务器实战指南

Web 服务器是现代应用交付的基础设施核心,Apache 作为成熟稳定的开源 HTTP 服务器,广泛用于静态托管、反向代理和企业级部署。其工作原理基于模块化架构与多进程/事件模型协同,通过配置文件驱动请求路由、权限控制与日志记录,技术价值体现在高可控性、强兼容性及完善的运维生态。典型应用场景包括内部文档站点、CI/CD 构建产物托管、PHP 应用前置代理等。在 Ubuntu 20.04 系统中,依托 apt 包管理、ufw 防火墙和 systemctl 服务管理构成的‘铁三角’组合,可实现分钟级安全可靠的

weixin_34186128的博客 439

Ubuntu 20.04下Apache自签名SSL证书配置实战

SSL证书是TLS协议中实现服务器身份认证的核心机制,其本质并非加密数据,而是通过数字签名建立可信的身份信封。在开发、测试及内网场景中,自签名证书提供了一种零成本、离线可控的HTTPS启用方案,具备与商业证书同等的加密强度(如RSA-2048或ECDSA),仅缺失第三方CA背书。它广泛应用于Docker微服务通信、Vue/React本地HTTPS开发、Jenkins/GitLab内网管理等场景,有效规避混合内容错误、CI/CD构建失败(如no required ssl certificate was sen

weixin_30781107的博客 711

Ubuntu 20.04 Apache自签名SSL证书生成与深度配置指南

SSL证书是HTTPS通信的信任基石,其本质是一份由私钥签名、包含公钥与身份声明的X.509数字凭证;生成过程涉及密钥对创建、CSR构造、自签名或CA签发等核心步骤,技术价值在于实现端到端加密、服务端身份认证及防篡改保障;典型应用于开发测试环境、内网API网关、CI/CD流水线HTTPS验证等无需公网信任的场景;本文聚焦Ubuntu 20.04平台,基于OpenSSL 1.1.1f和Apache 2.4.41,详解自签名证书的手动构建全流程,覆盖私钥权限控制、Subject Alternative Name

weixin_34401479的博客 434

win7下安装apache-maven以及setting配置

背景:工作中,我们经常需要在win7下搭载java的maven环境 目的:测试常用技能 组网图:不涉及 版本:apache-maven-3.6.3-bin 获取:a.官网 b.来我的网盘吧,链接:https://pan.baidu.com/s/1kM6MeD_YbeUVEWWlj4gMTg 提取码:v7yw 安装步骤: 1、解压apache-maven-3.6.3-bin.zip到D...

zhiyinweini3的博客 908

Ubuntu 20.04 下 Apache 自签名 SSL 证书实战指南

SSL 证书是实现 HTTPS 加密通信的基础技术,其核心原理是通过公钥基础设施(PKI)建立可信身份与加密通道。在开发、测试及内网场景中,自签名证书凭借离线生成、零依赖、完全可控等技术优势,成为替代公网 CA 证书的高效方案。它不提供第三方公信力,但能快速解决本地调试、Docker 容器、Jenkins/Grafana 等内部服务的 TLS 加密需求。结合 Apache 的 mod_ssl 模块与系统原生 openssl 工具链,可在 Ubuntu 20.04 环境中完成从密钥生成、SAN 配置、模块启用

weixin_30338481的博客 358

Ubuntu 20.04下用OpenSSL为Apache配置自签名SSL证书

SSL证书是HTTPS安全通信的基础组件,其核心原理在于公钥基础设施(PKI)支撑下的非对称加密与身份验证。通过OpenSSL生成自签名证书,可直观掌握密钥对创建、X.509证书签发及信任链构建等关键技术环节,避免CA黑盒带来的理解断层。该方案具备零成本、高可控性与强教学价值,广泛适用于本地开发调试、内网服务加密及Apache+Ubuntu环境的HTTPS排障场景。尤其在Ubuntu 20.04系统中,结合其预装OpenSSL 1.1.1f与mod_ssl模块特性,能精准复现并解决ERR_SSL_PROTO

weixin_30307921的博客 361

关于apache-maven中settings.xml的配置说明

一、settings.xml在apache-maven中的配置 1、找到apache-maven的存放位置,找到conf文件夹下的settings.xml,这就是在apache-maven中的位置了,配上一张图: 2、下面说settings.xml的详细配置,先上一张图,看我的配置及说明 &lt;localRepository&gt;Maven本地存储路经&lt;/localRep...

1702

apache-maven-3.6.0-setting.xml已修改

apache-maven-3.6.0,其中setting.xml文件已修改,采用阿里云中央仓库,下载到本地路径“E:\maven\maven-repository”,修改时只要将上面的路径修改成自己的就行。

Maven项目setting.xml配置文件详解

能看懂英文当然更好,地址:配置文件官方说明https://maven.apache.org/settings.htmlMaven项目的setting.xml文件,主要分为两个: 用户的安装: ${user.home}/.m2/settings.xml 当前用户范围的配置文件; Maven安装: maven.conf/settings.xml全局范围配置文件,修改后将影响本机所有的用户配

asdf_1024的博客 2万+

别再纠结高侧低侧了!用INA199/INA219这类集成电流检测芯片,5分钟搞定精准电流测量

本文详细解析了使用INA199/INA219等集成电流检测芯片实现精准电流测量的高效方案。通过对比传统分立元件方案,突出集成芯片在精度、温度稳定性和设计简化方面的优势,并提供硬件设计避坑指南和软件实现最佳实践,帮助开发者快速掌握电流检测技术。

weixin_42685438的博客 471

AI+Xmind自动生成测试用例(思维导图格式)

最后:我是Walker,一个热爱分享编程知识的程序员,希望能够帮助到你!

Think_and_work的博客 2333

apache-maven安装及settings.xml文件设置

1、先去maven官网下载最新版的maven解压即可 http://maven.apache.org/download.cgi 2、配置环境变量 新建环境变量 然后编辑path系统变量,添加%maven_home%\bin; 验证:打开cmd命令窗口运行:mvn –version 出现以下信息说明安装成功 3、设置settings.xml (1)新建repo文件夹,然后找到,添加文件夹的路...

IT_townlet的博客 3334

【SerDes】美信GMSL2-CSI调试心得

美信GMSL2加解串器芯片家族广泛应用于车载和工业视觉系统。文章介绍了MAX96717/MAX96717F加串器和MAX96724/MAX96724R解串器的关键特性,包括支持MIPI CSI-2接口、6Gbps传输速率等功能。提供了基于高通平台的demo系统配置和调试步骤,重点阐述了Link Lock、PCLK检测和Video Lock等关键调试环节,并详细说明了像素模式,隧道模式的工作原理及寄存器配置示例。文中还包含通过I2C读写寄存器的具体操作指令,取流freeze可能原因和解决方法。

qq_38089448的博客 2496

Setting up Hudson on port 80 on a Debian or Ubuntu machine

Setting up Hudson on port 80 on a Debian or Ubuntu machine Setting up Hudson on port 80 on a Debian or Ubuntu machine To my delight I...

125

用友U8库龄分析避坑指南:物料出入库日期计算的5个常见错误

本文深入剖析了在用友U8系统中进行库龄分析时,物料出入库日期计算的五个常见陷阱。从数据源选择、业务类型过滤、计价方式逻辑、期初数据处理到查询性能优化,逐一解析错误根源并提供避坑指南,帮助企业获得准确的库龄数据,有效管理库存与资金风险。

weixin_29209801的博客 456

【应用】OpenClaw玩转有道云笔记

功能名称核心原理实操示例(直接复制可用)实操避坑+补充说明网页剪藏插件自动抓取网页正文、下载图片,通过 API 发送到你的有道云笔记,内联图片避免防盗链失效帮我把这个网页剪藏到云笔记:https://example.com/article1. 避坑:知乎、公众号等需登录的网站,先在浏览器登录再剪藏;2. 原理:自动过滤广告,只留正文;3. Twitter/X 剪藏需额外配置 APIFY_API_TOKEN(见1.2.4)创建笔记。

海兰 716

Ubuntu Apache部署契约:从安装验证到生产调优

Apache HTTP Server是Linux Web服务的基石,其在Ubuntu系统中的运行机制与通用Linux存在显著差异。理解Ubuntu特有的包管理结构、systemd服务模型、UFW防火墙协同逻辑及a2enmod/a2ensite声明式配置体系,是避免‘配置生效却无效’‘服务启动却不可访问’等典型问题的关键。本文聚焦Ubuntu发行版对Apache的深度定制,解析mods-enabled与sites-enabled符号链接机制、MPM进程模型调优、413错误根因(LimitRequestBody

weixin_30319153的博客 461

单细胞转录组数据分析中的基因ID注释转换问题:如何解决才能注释所有的UMIcount数据?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1126

Ubuntu 18.04 Apache SSL 配置深度排障指南

SSL/TLS 是现代 Web 通信的安全基石,其核心在于证书链验证、协议版本协商与加密套件匹配。在 Ubuntu 18.04 这类长期支持但已停止维护的系统中,OpenSSL 1.1.1 与 Apache 2.4.29 的组合存在 TLS 1.3 支持缺失、证书链解析僵化、ACME v2 协议兼容性差等深层限制。这些技术约束导致 iOS/Android WebView 握手失败、Firefox 报错 'error ssl version or'、以及 'no required ssl certificat

447

① Django手把手从零开发个人博客-前言

手把手教你从零开始玩转手把手教你从零开始玩转Django,全面学习并了解django的运行机制、开发全流程及线上部署。Django,全面学习并了解django的运行机制、开发全流程及线上部署。 专栏介绍 本套教程遵循Django的设计思想,开门见山,快速切入主题,拒绝拖沓,在实战中学习每一个知识点,提高学习的趣味性以及个人成就感,并且能快速将所学运用到实际项目中。 将从零手把手带着你一步步完成博客的每一个功能,通过实现博客文章列表页、文章详情页、作者页面等功能来学习和了解django的视图查询模块相关知.

轻编程的博客 514

告别 DIFY 构建卡顿 / 失败!巧用 Makefile 一键构建本地 WEB 镜像,附核心避坑指南

本文详细介绍了DIFY本地源码构建WEB镜像的完整流程,重点解决因官方npm源不稳定导致的构建失败问题。通过修改web/Dockerfile文件启用国内npmmirror镜像源,可大幅提升依赖下载速度和稳定性。在DIFY根目录执行封装好的make build-web命令即可一键完成构建,无需手动编写复杂docker命令。文章还提供了前置环境准备、构建结果验证等实用指导,帮助开发者高效完成DIFY前端二次开发后的镜像构建验证。

2501_93651177的博客 182

Ubuntu 20.04 Apache自签名SSL证书完整实践指南

SSL证书是HTTPS通信的基石,其核心在于PKI体系下的密钥对生成、X.509证书签发与信任链配置。自签名证书虽不依赖公共CA,但严格遵循私钥保护、CSR构造、SAN扩展字段注入及PEM格式兼容等标准流程,具备环境隔离强、调试可控性高、CI/CD可复现等独特技术价值。广泛应用于本地开发、微服务联调、安全审计预验证及内网系统HTTPS化等场景。本文聚焦Ubuntu 20.04原生环境,基于OpenSSL命令行深度解析密钥强度选择、subjectAltName多域名/IP支持、Apache mod_ssl集成

weixin_30315435的博客 481

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Ubuntu 14.04 + Apache 部署 Drupal 7 的底层原理与生产级配置

LAMP 架构是 Web 应用运行的基础范式,其核心在于 Linux、Apache、MySQL 和 PHP 四组件的协同机制。Apache 作为模块化 Web 服务器,通过 mod_rewrite 等扩展实现动态请求路由;PHP 以 SAPI 方式嵌入 Apache 进程,承担逻辑执行;MySQL 提供持久化存储,其 SQL 模式与字符集直接影响应用兼容性。这套组合虽在现代云环境中看似‘过时’,却因稳定性高、文档完备、故障可溯,仍是政企遗留系统、教育平台及国产化适配场景的事实标准。本文聚焦 Drupal 7

weixin_30627341的博客 424

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

深度学习工具包 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")

Ubuntu 20.04 Apache自签名SSL证书配置实战指南

SSL证书是HTTPS通信的基础安全组件,其核心原理在于通过X.509标准构建公钥信任链,结合TLS协议实现加密传输与身份验证。自签名SSL证书虽不依赖公共CA,但能完整支撑本地开发、测试环境及内网服务的HTTPS强制要求,具备零成本、高可控、快速部署的技术价值。在Ubuntu 20.04系统中,该方案需协同OpenSSL 1.1.1f与Apache 2.4.41,严格遵循私钥加密存储、Subject Alternative Name(SAN)扩展声明、mod_ssl模块启用及ssl-cert用户组权限控制

weixin_33851177的博客 424

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Ubuntu 12.04 下 Varnish 3 + Apache 2.2 反向代理实战

反向代理是 Web 架构中实现负载分担、缓存加速与安全隔离的基础技术。其核心原理在于代理服务器接收客户端请求,按策略转发至后端服务并返回响应。Varnish 作为高性能内存缓存代理,结合 Apache 这类传统 Web 服务器,可显著提升静态资源吞吐与动态页面响应效率。在遗留系统维护、等保合规整改、历史漏洞复现及政务系统迁移等场景中,精准还原特定年代技术栈(如 Ubuntu 12.04 + Varnish 3.0.2 + Apache 2.2)具有不可替代的工程价值。本文聚焦真实环境下的源适配、VCL 3.

weixin_30703911的博客 419

Setting up Django on SliceHost with Ubuntu Hardy,

This week I setup Django on a slicehost slice using Ubuntu Hardy for the OS , Postgresql for the db, Apache for serving the django app, and Nginx for serving the media and proxying to apache. F...

ning's blog 167
上一篇: configure: error: Cannot find OpenSSL's <evp.h>
下一篇: php phpize报错
worldzhy
博客等级 码龄16年 156粉丝 231原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值