如何快速搭建web网站?这个问题对于我这样的小白来说简直就是一脸懵逼毫无头绪。在学习python的过程接触到了 CGI 编程,至于CGI是什么?怎么运行的?这我就不道来了,但是它可以让你很方便的搭建起简单的web网站。好了不啰嗦了,废话一千遍,不如动手实践实践。

一、前提准备

  1. 搭建好虚拟机CentOS7 环境,本实例准备环境如下:

    • VMware Workstation Pro 14 虚拟机
    • CentOS7-x86_64-Minimal
  2. 进入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网站

  1. 首先当前目录下,命令行执行 python -m CGIHTTPServer 8888 (系统已默认安装python2.7)。然后物理主机浏览器中访问<前提准备> 中 ip:8888 如: http://192.168.1.104:8888
  2. 若步骤1中出现"无法访问此网站" 的情况,可如下操作: (防火墙设置相关命令)
    • firewall-cmd --state 查看防火墙的状态
    • systemctl stop firewalld.service 关闭防火墙或者将 8888 端口添加到防火墙开启端口列表中
    • python -m CGIHTTPServer 8888 启动端口8888 的 CGI HTTP 服务

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

#!/bin/bash
echo "Content-Type:text/html "
# 空行,告诉服务结束头部
echo "" echo "Hello World! This is a simple web server."
  1. 现在可在物理主机访问 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搭建简单网站的更多相关文章

  1. ASP.NET MVC 搭建简单网站 --1.前端页面布局和基本样式实现

    学技术这件事儿本来就是学习现有的东西,然后变成自己的,本文当然也是借鉴的别人的东西,写出来作为一个对知识的巩固.  1.网站用的是MVC模式,新建一个MVC项目,建立一个APP1Controller, ...

  2. 使用码云或GitHub搭建简单的个人网站

    视频链接:https://www.bilibili.com/video/av64294697 码云: 1.新建一个仓库      ​ 路径名会影响你的个人网站的网址(自行修改),开源(公开),其他默认 ...

  3. 如何申请https证书、搭建https网站

    如何申请https证书.搭建https网站 随着国内搜索引擎巨头百度启用全站https加密服务,全国掀起了网站https加密浪潮.越来越多的站点希望通过部署https证书来解决“第三方”对用户隐私的嗅 ...

  4. Windows Azure免费空间如何搭建PHP网站/数据库、域名绑定

    7月份,阿象为大伙介绍了中国版Windows Azure如何建站.自定义远程虚拟机,最高可选四核.28G内存的服务器,相信不少站长.开发者用户大呼过瘾.不过Azure建站系统仅支持SQL数据库,并不支 ...

  5. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  6. GitHub上搭建个人网站

    大致如下步骤: 1.注册Git账号 2.创建SSH keys 3.新建repository --- 4.设置网站 5.clone库到本地 6.提交.上传 7.预览 本教程默认你了解GitHub的基础之 ...

  7. 从零开始用 Flask 搭建一个网站(一)

    前言 笔者之前未接触过 Python,只是略懂一点前端,所以说从零开始也相差无几吧.Flask 是一个轻量级的基于 Python 的框架,但是扩展性非常良好(Github 上 22000 多个 sta ...

  8. 从零开始用 Flask 搭建一个网站(三)

    从零开始用 Flask 搭建一个网站(二) 介绍了有关于数据库的运用,接下来我们在完善一下数据在前端以及前端到后端之间的交互.本节涉及到前端,因此也会讲解一下 jinja2 模板.jQuery.aja ...

  9. Github+Hexo,搭建专属网站

    前言 记得从大二开始,就一直想搭个专属网站,当时使劲抠页面[前端页面是从QQ空间抠的,现在想抠估计没这么容易了],写代码,忙活半天才把程序弄好. 可惜最终项目还是没上线,因为当时有两问题绕不开 需要购 ...

随机推荐

  1. Copying Books

    Copying Books 给出一个长度为m的序列\(\{a_i\}\),将其划分成k个区间,求区间和的最大值的最小值对应的方案,多种方案,则按从左到右的区间长度尽可能小(也就是从左到右区间长度构成的 ...

  2. 正规式α向有限自动机M的转换

    [注:这一节是在学习东南大学廖力老师的公开课时,所记录的一些知识点截屏,谢谢廖力老师的辛劳付出] 引入3条正规式分裂规则来分裂α,所得到的是NFA  M(因为包含ε弧,之后进行确定化就是所需要求得DF ...

  3. CentOS下MYSQL数据库的安装

    关于在Centos系统下安装MYSQL数据库,网络上资料有很多,在此主要感谢该文章的博主:http://www.cnblogs.com/zhoulf/archive/2013/01/25/zhoulf ...

  4. obj.offsetHeight与obj.style.height $(obj).height()与$(obj).css('height')

    相同:都可以获取obj的高度区别:(1)obj.offsetHeight可以获取外部.内嵌和内联中定义的高,而obj.style.height只能获取内联中定义的高:(2)obj.offsetHeig ...

  5. J2EE学习篇之--Struts2技术详解

    前面说到了Struts1的相关知识,下面来说一下Struts2的相关知识,我们知道现在Struts2使用的比Struts1多,Struts2已经替代Struts1成为主流的框架了... 摘要 Stru ...

  6. elementUI表格行的点击事件,点击表格,拿到当前行的数据

    1.绑定事件 2.定义事件 3.点击表格某行的时候,拿到数据]

  7. (转)OpenFire源码学习之十一:连接管理(下)

    转:http://blog.csdn.net/huwenfeng_2011/article/details/43416523 下面是下部分 C2S 1.当有客户端进行连接时根据Mina框架的模式首先调 ...

  8. 超好用的thinkphp5.0/thinkphp5.1分页插件!详细使用步骤(内附代码)

    效果 tp5.0使用方法 page下载地址:进入下载页面 提取码:s75k 1,把page文件夹整个目录复制到 目录extend下 2,修改默认配置 app/config.php 把里面的 'pagi ...

  9. eclipse spring boot 项目出现java.lang.ClassCastException 解决方法

    问题 eclipse spring boot 项目出现java.lang.ClassCastException 解决方法: 重新生成项目

  10. delphi基础篇之数据类型之二:2.字符串类型

    2.字符串类型 2.1.ShortStringShortString 又称为短字符串(相对的,Ansistring.widestring.unicodestring 称为长字符串),其实质上是一个编译 ...