Ubuntu16.04配置apache2+CGI

配置apache2

  1. 安装apache2

    sudo ap install apache2
    • 1
    • 1
  2. 检查安装是否成功

    systemctl status apache2
    • 1
    • 1

    如果安装成功的话会出现如下内容:

    ● apache2.service - LSB: Apache2 web server
       Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
      Drop-In: /lib/systemd/system/apache2.service.d
               └─apache2-systemd.conf
       Active: active (running) since 一 2017-05-01 10:44:19 CST; 44s ago
         Docs: man:systemd-sysv-generator(8)
       CGroup: /system.slice/apache2.service
               ├─9732 /usr/sbin/apache2 -k start
               ├─9735 /usr/sbin/apache2 -k start
               └─9736 /usr/sbin/apache2 -k start
    
    501 10:44:18 dong-MS-7817 systemd[1]: Starting LSB: Apache2 web server...
    501 10:44:18 dong-MS-7817 apache2[9710]:  * Starting Apache httpd web server a
    501 10:44:18 dong-MS-7817 apache2[9710]: AH00558: apache2: Could not reliably 
    501 10:44:19 dong-MS-7817 apache2[9710]:  *
    501 10:44:19 dong-MS-7817 systemd[1]: Started LSB: Apache2 web server.
    lines 1-16/16 (END)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在浏览器地址栏输入服务器的IP地址,应该可以看到默认页,如下图所示,说明apache服务器在征程运行。 
    这里写图片描述

  3. 修改网站的根目录为自定义目录 
    apache2在/etc/apache2和/etc/apache2/sites-available两个文件夹下面分别有apache2.conf和000-default.conf两个配置文件,我们需要对这两个文件都进行修改。

    1. 编辑/etc/apache2/apache2.conf这个文件,找到<DDirectory /var/www/>这个选项,把其中的/var/www/修改为新的自定义目录。
    2. 编辑/etc/apache2/sites-available/000-default.conf这个文件,找到"DocumentRoot /var/www/html" 这个选项,把其中的/var/www/html修改为跟上面相同的目录。
    3. 使用命令sudo /etc/init.d/apache2 restart来重启apache服务。
    4. 在浏览器地址栏输入服务器地址,此时显示的是自定义目录下的文件,如下图所示。 
      这里写图片描述

配置CGI

到目前为止,我们只安装了apache和配置了自定义目录,接下来希望可以运行CGI脚本。 
1. 配置apache以允许CGI的执行 
由很多中方法可以实现这个配置,这里我们采用的是ScriptAlias指令,这个指令使Apache允许执行一个特定目录中的CGI程序。当客户端请求此特定目录中的资源时,Apache假定其中所有的文件都是CGI程序并试图运行它。 
在/etc/apache2/apache2.conf文件中添加如下一行:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
  • 1
  • 1

这一行的意思是告诉Apache:任何以/cgi-bin/开头的资源都将映射到/home/dong/public_html/cgi/目录中,且视之为CGI程序。 
2. 导入cgid包 
很多的教程(包括官网)上给出的方法都是在配置文件中添加LoadModule cgid_module modules/mod_cgid.so这样的命令,但是这种方法在我这里会出问题,提示找不到对应的包从而导致apache无法启动。后来发现在/etc/apache2/mods-availiable/文件夹中有cgid.load这个文件,打开这个文件之后发现里面的内容是LoadModule cgid_module /usr/lib/apache2/modules/mod_cgid.so,所以,导入cgid包的正确方法是,在/etc/apache2/apache2.conf文件中添加如下一行:

LoadModule cgid_module /usr/lib/apache2/modules/mod_cgid.so
  • 1
  • 1

接下来进行测试。 
3. 测试cgi是否可以运行 
在自定义的/cgi-bin/文件夹中创建一个测试文件simple1.py,文件中输入如下内容:

#!/usr/bin/python
print 'Content-Type: text/html'
print ''
print '<html>'
print '<h2>CGI Script Output</h2>'
print '<p>This page was generated by a Python CGI script.</p>'
print '</html>'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

用命令chmod 755 simple1.py赋予文件执行权限,然后在浏览器地址栏中输入地址:http://localhost/cgi-bin/simple1.cgi,会出现如下显示结果: 
这里写图片描述 
说明cgi脚本可以执行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值