配置apache2
-
安装apache2
sudo ap install apache2
- 1
- 1
-
检查安装是否成功
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 5月 01 10:44:18 dong-MS-7817 systemd[1]: Starting LSB: Apache2 web server... 5月 01 10:44:18 dong-MS-7817 apache2[9710]: * Starting Apache httpd web server a 5月 01 10:44:18 dong-MS-7817 apache2[9710]: AH00558: apache2: Could not reliably 5月 01 10:44:19 dong-MS-7817 apache2[9710]: * 5月 01 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服务器在征程运行。
-
修改网站的根目录为自定义目录
apache2在/etc/apache2和/etc/apache2/sites-available两个文件夹下面分别有apache2.conf和000-default.conf两个配置文件,我们需要对这两个文件都进行修改。- 编辑/etc/apache2/apache2.conf这个文件,找到<DDirectory /var/www/>这个选项,把其中的/var/www/修改为新的自定义目录。
- 编辑/etc/apache2/sites-available/000-default.conf这个文件,找到"DocumentRoot /var/www/html" 这个选项,把其中的/var/www/html修改为跟上面相同的目录。
- 使用命令
sudo /etc/init.d/apache2 restart
来重启apache服务。 - 在浏览器地址栏输入服务器地址,此时显示的是自定义目录下的文件,如下图所示。
配置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脚本可以执行。