使用CGIHTTPServer搭建简单网站
如何快速搭建web网站?这个问题对于我这样的小白来说简直就是一脸懵逼毫无头绪。在学习python的过程接触到了 CGI 编程,至于CGI是什么?怎么运行的?这我就不道来了,但是它可以让你很方便的搭建起简单的web网站。好了不啰嗦了,废话一千遍,不如动手实践实践。
一、前提准备
搭建好虚拟机CentOS7 环境,本实例准备环境如下:
- VMware Workstation Pro 14 虚拟机
- CentOS7-x86_64-Minimal
进入CentOS后,确认网络环境是否正常(使用桥接模式,确保与物理主机在同网段内)
ip addr验证IP配置是否正确
若ip配置显示为 0.0.0.0 则使用cat /etc/sysconfig/network-scripts/ifcfgens33查看网络配置情况。若正常则无需以下操作vi /etc/sysconfig/network-scripts/ifcfg-ens33修改为下图状态后,重启系统或 使用命令
systemctl restart network.service重启网络服务,使修改生效

- 若上述情况后网络还是不能访问,则需要查看物理主机:我的电脑->管理->服务和应用程序->服务->VMware DHCP Service 和 VMware NAT Service 是否启动。若无则启动服务
注: 上述的ifcfg-ens33 文件,不同网卡文件名不同。
二、搭建web网站
- 首先当前目录下,命令行执行
python -m CGIHTTPServer 8888(系统已默认安装python2.7)。然后物理主机浏览器中访问<前提准备> 中 ip:8888 如: http://192.168.1.104:8888 - 若步骤1中出现"无法访问此网站" 的情况,可如下操作: (防火墙设置相关命令)
firewall-cmd --state查看防火墙的状态systemctl stop firewalld.service关闭防火墙或者将 8888 端口添加到防火墙开启端口列表中python -m CGIHTTPServer 8888启动端口8888 的 CGI HTTP 服务

- 当前路径下创建 cgi-bin 目录,且在该目录下创建 index.sh 脚本. 操作以及脚本内容如下:

#!/bin/bash
echo "Content-Type:text/html "
# 空行,告诉服务结束头部
echo ""
echo "Hello World! This is a simple web server."
- 现在可在物理主机访问 http://192.168.1.104:8888/cgi-bin/index.sh 如果显示下图则说明 web 网站已经搭建成功

注:CGI程序可以是Python,shell 等脚本。
- 脚本必须放置 cgi-bin目录下,且授予可写执行权限,否则会出现 Error code 403. CGI script is not executable ('/cgi-bin/aa.sh'). 错误
- 不要进入cgi-bin 目录下启动CGI HTTP 服务,否则访问上述网址时,会直接将 index.sh 当做文件下载
- 若防火墙未关闭,且在cgi-bin 目录下启动服务,则会出现 Error code 404. No such CGI script ('/cgi-bin/index.sh'). 错误
使用CGIHTTPServer搭建简单网站的更多相关文章
- ASP.NET MVC 搭建简单网站 --1.前端页面布局和基本样式实现
学技术这件事儿本来就是学习现有的东西,然后变成自己的,本文当然也是借鉴的别人的东西,写出来作为一个对知识的巩固. 1.网站用的是MVC模式,新建一个MVC项目,建立一个APP1Controller, ...
- 使用码云或GitHub搭建简单的个人网站
视频链接:https://www.bilibili.com/video/av64294697 码云: 1.新建一个仓库 路径名会影响你的个人网站的网址(自行修改),开源(公开),其他默认 ...
- 如何申请https证书、搭建https网站
如何申请https证书.搭建https网站 随着国内搜索引擎巨头百度启用全站https加密服务,全国掀起了网站https加密浪潮.越来越多的站点希望通过部署https证书来解决“第三方”对用户隐私的嗅 ...
- Windows Azure免费空间如何搭建PHP网站/数据库、域名绑定
7月份,阿象为大伙介绍了中国版Windows Azure如何建站.自定义远程虚拟机,最高可选四核.28G内存的服务器,相信不少站长.开发者用户大呼过瘾.不过Azure建站系统仅支持SQL数据库,并不支 ...
- 拿nodejs快速搭建简单Oauth认证和restful API server攻略
拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...
- GitHub上搭建个人网站
大致如下步骤: 1.注册Git账号 2.创建SSH keys 3.新建repository --- 4.设置网站 5.clone库到本地 6.提交.上传 7.预览 本教程默认你了解GitHub的基础之 ...
- 从零开始用 Flask 搭建一个网站(一)
前言 笔者之前未接触过 Python,只是略懂一点前端,所以说从零开始也相差无几吧.Flask 是一个轻量级的基于 Python 的框架,但是扩展性非常良好(Github 上 22000 多个 sta ...
- 从零开始用 Flask 搭建一个网站(三)
从零开始用 Flask 搭建一个网站(二) 介绍了有关于数据库的运用,接下来我们在完善一下数据在前端以及前端到后端之间的交互.本节涉及到前端,因此也会讲解一下 jinja2 模板.jQuery.aja ...
- Github+Hexo,搭建专属网站
前言 记得从大二开始,就一直想搭个专属网站,当时使劲抠页面[前端页面是从QQ空间抠的,现在想抠估计没这么容易了],写代码,忙活半天才把程序弄好. 可惜最终项目还是没上线,因为当时有两问题绕不开 需要购 ...
随机推荐
- dubbo-源码阅读之容器启动
dubbo Main 例子 public class Start { public static void main(String[] args) throws Exception { com.ali ...
- rabbitmq AmqpClient 使用Topic 交换机投递与接收消息,C++代码示例
// strUri = "amqp://guest:guest@192.168.30.11:8820/test" // strUri = "amqp://[帐户名]:[密 ...
- Largest Submatrix 3
Largest Submatrix 3 给出一个\(n\times m\)的网格图,第i行第j列上的格子有数字\(a[i][j]\),显然,你可以从中找到一个子矩阵,保证子矩阵中的数字互不相同,求子矩 ...
- vue 本地环境API代理设置和解决跨域
写一个config.js文件,作为项目地址的配置. //项目域名地址 const url = 'https://exaple.com'; let ROOT; //由于封装的axios请求中,会将ROO ...
- ElasticSearch---初识
1.概述 1.1 ElasticSearch是一个 基于Lucene 的 搜索服务器: 1.2 ElasticSearch 提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful ...
- 【JavaWeb项目】一个众筹网站的开发(八)后台页面详细设置
一.user.jsp改造 删除引入菜单 抽取导航栏 nav-bar.jsp,删除引入导航栏 删除引入main.jsp的到好烂 数据库里添加url 报错,url不对 没有/ url正确 action=& ...
- 影响Acorn for Mac图像打印质量的因素有什么?怎样处理这些因素才能得到打印效果最佳的图像?
Acorn for Mac是Mac OS平台上一款比较不错的图像处理软件.acorn mac版用起来都很像神器 Photoshop,是的,它的设计目标就是成为 Photoshop 的轻量替代者,拥有所 ...
- Java——类之间的关系
3.7 类之间的关系 3.7.1 泛化关系 类和类之间的继承关系及接口与接口之间的继承关系. 3.7.2 实现关系 类对接口的实现. 3.7.3 关联关系 类与类之间的连接,一个类可以知道另一个类的属 ...
- 【LeetCode 21】合并两个有序链表
题目链接 [题解] 就是归并排序的一趟合并操作. 新建个链表加在上面就好.(用原来的链表的头结点也没问题) 加个头结点会比较好操作一点. 返回的时候返回头结点的next域就行 [代码] /** * D ...
- NX二次开发-Block UI C++界面Enumeration(枚举)控件的获取(持续补充)
NX9+VS2012 public: void SetBlockUIShow(); void EnumInt::SetBlockUIShow() { //获取枚举控件 PropertyList* En ...