6. webserver环境搭建

6.1 webserver环境搭建

http.tar.gz是用C语言编程的一个简单版webserver。

  1. 把http.tar.gz拷贝到Linux环境中:
  2. 解压压缩包:
  3. 进入解压后的目录,终端敲make编译代码:
  4. 如果是RedHat环境,需要额外配置一下防火墙:

  5. root用户启动或关闭web服务:
  6. 环境测试
    a)必须root用户先启动web服务:

    b)查看web服务器所在机器的ip:

    c)打开能平同web服务器(192.168.31.143)机器的浏览器,网址输入192.168.31.143:

6.2 网页版HelloWorld

  1. 重新打开一个终端,进入web服务器所在目录:
  2. 通过vi新建hello.c文件,内容写如下代码:
#include <stdio.h>int main()
{printf("hello world\n");return 0;
}
  1. 退出保存hello.c后,通过gcc编译代码,可执行程序的后缀名(扩展名)一定是cgi:
  • gcc是编译命令,放最开始位置
  • -o参数后面一定是可执行程序名字
  1. 测试网页版helloworld,在浏览器输入:192.168.31.143/hello.cgi
  2. 显示中文乱码解决方法
    Linux默认采用的编码格式是UTF-8,浏览器显示默认采用的编码格式是GBK,在浏览器中直接设置utf-8编码或者通过代码指定浏览器为utf-8编码。
    a) 直接设置浏览器编码

    b) 通过代码指定浏览器为utf-8编码,代码中加上头部元素信息:
<head>
<meta http - equiv = "content-type" content = "text/html;charset=utf-8">
< / head>
#include <stdio.h>int main()
{printf("<head>");printf("<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">");printf("</head>");printf("<html>");printf("测试\n");printf("</html>");return 0;
}

速读原著-UnixLinux基础(六)相关推荐

  1. 速读原著-UnixLinux基础(七)

    7. ADB 7.1 ADB简介 ADB的全称为Android Debug Bridge,就是起到调试桥的作用,作为一名开发者倒是常用到这个工具. 借助ADB工具,我们可以管理设备或手机模拟器的状态. ...

  2. 图书速读:《第六病室》

    文章转自:图书速读:<第六病室> 关于作者 契诃夫是享誉世界的短篇小说大师,他的小说短小精悍,简练朴素,语言明快生动,极富于音乐节奏感,且寓意深刻. 关于本书 契诃夫一生创作了上千篇中短篇 ...

  3. 《机器学习》理论——速读学习1 基础知识

    <机器学习>理论--速读学习1 基础知识 该系列文章系个人读书笔记及总结性内容,任何组织和个人不得转载进行商业活动! Time: 2021-12-05 学习目标:我需要了解神经网络除了工程 ...

  4. 速读原著-黑客入门(黑客的分类和行为)

    一. 黑客的分类和行为 以我的理解,"黑客"大体上应该分为"正"."邪"两类,正派客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完 ...

  5. 速读原著-TCP/IP(BOOTP示例)

    第16章 BOOTP:引导程序协议 16.3 一个例子 让我们看一个用 B O O T P引导一个X终端的例子.图 1 6 - 3显示了t c p d u m p的输出结果(例中客户名为p r o t ...

  6. 速读原著-Android应用开发入门教程(Android中建立工程)

    2.4 Android中建立工程 2.4.1. 建立工程 Android 的 SDK 环境安装完成后,就可以在 SDK 中建立工程并进行调试了. 建立 Android 工程步骤如下: 选择" ...

  7. 速读原著-TCP/IP(UDP首部)

    第11章 UDP:用户数据报协议 11.2 UDP首部 U D P首部的各字段如图11 - 2所示. 端口号表示发送进程和接收进程.在图 1 - 8中,我们画出了 T C P和U D P用目的端口号来 ...

  8. 速读原著-TCP/IP(tcpdump的输出)

    A.4 tcpdump的输出 t c p d u m p的输出是"原始的".在本书中包含它的输出时,我们对它进行了修改以便阅读.首先,它总是输出它正在监听的网络接口的名字.我们把这 ...

  9. 速读原著-Java20年: 转角遇到GO

    Java 20 年:转角遇到 Go 1995 年,横空出世的 Java 语言以其颠覆式的特性迅速获得了开发者的关注.跨平台.垃圾回收.面向对象,这在当时都是不可思议的事情,而 Java 却完美地在一门 ...

  10. 速读原著-TCP/IP(BOOTP 的分组格式)

    第16章 BOOTP:引导程序协议 16.2 BOOTP 的分组格式 BOOTP 请求和应答均被封装在U D P数据报中,如图1 6 - 1所示. 图1 6 - 2显示了长度为3 0 0字节的B O ...

最新文章

  1. SQL Update 语句中使用别名
  2. windbg !htrace 学习总结
  3. mariadb mysql 配置文件_MariaDB/MySQL配置文件my.cnf解读
  4. Ubuntu中NS2安装详细教程
  5. android计算器弹窗,android实现简易计算器
  6. Latex可能遇到的一些问题
  7. MongoDB中MapReduce介绍与使用
  8. BSM:左手业务,右手IT
  9. 计算机领域国际会议分类及排名
  10. Valid Palindrome LeetCode Java
  11. 智能平台管理接口 (IPMI)
  12. LoadRunner的Apache的监控
  13. 电脑装服务器系统没有网卡驱动,安装win10系统后没有网卡驱动的解决方法
  14. bios 昂达h61c_Onda昂达主板BIOS,ONDA昂达H61N全固版(ver 3.00)主板BIOS 3.02版,主板BIOS,硬件驱动下载...
  15. matlab实现图像的拼接,MATLAB实现图像拼接算法(求助)
  16. 病毒变种--C语言练习
  17. 附加:在在下部分区/县(数据表)
  18. clr 80004005
  19. linux alarm函数clock,linux c之alarm函数的使用,定时器的实现
  20. oracle 查询时间段内的天,ORACLE任意时间段内所有天数日期查询

热门文章

  1. android 编辑框失去焦点,关于android:editText并没有失去焦点
  2. Java 拾遗补阙 ----- 继承私有属性
  3. android 剪贴板增强工具,ClipX - 超级实用的小巧剪贴板增强工具
  4. oracle用nas还是本地存储,为什么大家都在用NAS网络存储?
  5. java坦克大战互相碰撞_加强版坦克大战(java版)
  6. 利用牛顿迭代法求平方根
  7. 06.第七章、成本管理
  8. [爬虫笔记02] Scrapy爬取阳光问政平台
  9. 【计算机基础】HTTP 超文本传输协议
  10. solidworks电气元件3d库_丨部件库丨西门子3RV6电机保护开关