zoukankan      html  css  js  c++  java
  • Ubuntu下配置Apache以及搭载CGI

    在Windows下自己下载应用过Apache,在Linux下也用到了服务器,就选择了Apache。Apache的安装在Ubuntu下异常简单。

    1. 上网下载自动包安装

    sudo apt-get install apache2

    2. 访问网址尝试安装是否成功

    www.127.0.0.1 or http://localhost

    成功的话将会出现Apache的欢迎页面

    3. 启动Apache

    /etc/init.d/apache2 start 

    4. 重启Apache

    /etc/init.d/apache2 restart

    5. 停止Apache

    /etc/init.d/apache2 stop

    好了,服务器搭好了接下来就可以跑程序了~

    6. Web文档的根目录

    在/etc/apache2/sites-available/000-default.conf有说明

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    /var/www

    7. 配置CGI

    在Web文档的根目录下新建cgi-bin目录,即/var/www/cgi-bin/。cgi代码均放置于该目录下。

    当然该目录也可以自己定义,不得不说的是,CGI的配置参考了很多资料确实坑道了自己,由于现在Ubuntu的版本和Apache的版本,变化是有点的。

    apache2.conf    conf-enabled  magic           mods-enabled  sites-available
    conf-available  envvars       mods-available  ports.conf    sites-enabled

    这是/etc/apache2目录下的所有文件和文件夹。其中较为关注的主要有available和enabled,其中我们配置的CGI并没有被包含在enabled内,而且enabled中的

    文件均为avaliable中的链接。

    1 ls -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
    2 ls -s /etc/apache2/mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load

    打开这两个文件其实是导入了

    1 LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
    2 LoadModule cgid_module /usr/lib/apache2/modules/mod_cgid.so

    同样地,在/etc/apache2/sites-enabled中打开的链接也是available中的sites-available的000-defalut.conf。

    主要的配置都在/etc/apache2/conf-enabled中,该目录如下所示。

    charset.conf                other-vhosts-access-log.conf  serve-cgi-bin.conf
    localized-error-pages.conf  security.conf

    可以看到CGI的配置就在serve-cgi-bin.conf这个文件中。

    打开该文件,便可以看到

     1 <IfModule mod_alias.c>
     2     <IfModule mod_cgi.c>
     3         Define ENABLE_USR_LIB_CGI_BIN
     4     </IfModule>
     5 
     6     <IfModule mod_cgid.c>
     7         Define ENABLE_USR_LIB_CGI_BIN
     8     </IfModule>
     9 
    10     <IfDefine ENABLE_USR_LIB_CGI_BIN>
    11         ScriptAlias /cgi-bin/ /var/www/cgi-bin/
    12         <Directory "/var/www/cgi-bin">
    13             AllowOverride None
    14             Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    15             Require all granted
    16             AddHandler cgi-script .cgi .pl 
    17         </Directory>
    18     </IfDefine>
    19 </IfModule>
    20 
    21 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

    其中/var/www/cgi-bin可以改为自己的cgi-bin路径名,其中Module mod_cgid.c和Module mod_cgi.c正是我们之前导入cgi.load和cgid.load的原因。

    其实避免错误的话,可以将所有的available文件导入至enabled文件夹中~~~。

    8. 配置这个完了,就该尝试一下了吧>.<

    8.1 在/var/www/cgi-bin中新建文件HelloWorld.c

    键入如下代码:

     1 /**
     2  * CGI测试程序
     3  */
     4 
     5 #include "stdio.h"
     6 
     7 int main(int argc, char* argv[])
     8 {
     9         printf("Context-Type:text/html
    
    "); //这个必须得有
    10         printf("Hello,World!
    ");
    11         return 0;
    12 }

    8.2 编译源文件

    1 sudo gcc -o HelloWorld.cgi HelloWorld.c

    8.3 打开浏览器测试输出

    http://localhost/cgi-bin/HelloWorld.cgi

    终于出现了!!!

    Hello,World!

    结束了,写在博客上,防止以后忘记。

  • 相关阅读:
    samba 服务搭建
    lock
    dev GridControl FilterCriteria
    dev GridControl Column 背景色
    Microsoft NLayerApp案例理论与实践
    DDD
    .Net架构师-开闭原则
    .Net架构师-面向对象的设计原则
    .Net架构师-详解面向对象
    .Net架构师-面向过程和面向对象
  • 原文地址:https://www.cnblogs.com/chenguanfu/p/4412340.html
Copyright © 2011-2022 走看看