- A+
所属分类:菜鸟笔记
尝试让apache运行cgi程序
环境ubuntu 18.04参考链接: https://www.cnblogs.com/pengdonglin137/articles/6830091.html
安装apache2
apt install apache2
* 如果之前装了apache需要完全卸载干净 *
修改配置文件
- Apache的配置文件位于
/etc/apahce2
下 - 其中
./apache2.conf
是主配置文件,其中Include了其它几个配置文件
> 注意很多配置文件目录分为xxx-enable
和xxx-available
,前者目录下都是指向后者的软连接,便于运维而已。
./apache2.conf
一般而言没啥可改的,可以看看里面Include了哪些配置文件
./ports.conf
- 监听端口号,注意需要和后续配置的内容吻合
例子:
Listen 8080
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
./conf-available/serve-cgi-bin.conf
- 这步主要目的是指明cgi文件的目录,按照约定俗成一般是
/var/www/cgi-bin
- 首先
mkdir
创建这个目录,然后把提前准备好的CGI程序改名为index.cgi
放进去,完整路径就是/var/www/cgi-bin/index.cgi
于是把其中相应内容修改如下:
<IfModule mod_alias.c>
<IfModule mod_cgi.c>
Define ENABLE_USR_LIB_CGI_BIN
</IfModule>
<IfModule mod_cgid.c>
Define ENABLE_USR_LIB_CGI_BIN
</IfModule>
//重点关注这项
<IfDefine ENABLE_USR_LIB_CGI_BIN>
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
</Directory>
</IfDefine>
</IfModule>
这个配置文件指明了所有对/cgi-bin/
虚拟路径的访问都将被映射到/var/www/cgi-bin/
。比如http://hostname:port/ 和 http://hostname:port/cgi-bin/index.cgi 都是一个效果。知道原理即可,实际环境需要根据具体需求来设置。
./mods-available/cgi*
主要涉及以下三个文件:
- ./mods-available/cgid.conf
- ./mods-available/cgid.load
- ./mods-available/cgi.load
这三个中只要修改./mods-available/cgi.load
,目的是指明几种cgi文件后缀,可以是shell脚本,python脚本或者c/c++程序。理论上而言只要是有标准输入输出就行。
如下:
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
AddHandler cgi-script .cgi .pl .py .pyc .sh
修改完后要做软连接到./mods-enable
,我也没注意是不是默认没有软连接,但是做一下总无妨:
ln -s /etc/apache2/mods-available/cgid.conf /etc/apache2/mods-enabled/cgid.conf
ln -s /etc/apache2/mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load
ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
./sites-available/000-default.conf
- 这步比较简单主要是配置默认站点的相关信息
- 端口(要和之前设置的监听端口一样)
- ServerName(按照实际需要设置,默认是注释掉的)
例如:
<VirtualHost *:8080>
ServerName arm.eqqie.cn
ServerAdmin root@arm.eqqie.cn
DocumentRoot /var/www/cgi-bin
ErrorLog {APACHE_LOG_DIR}/error.log
CustomLog{APACHE_LOG_DIR}/access.log combined
ErrorLog {APACHE_LOG_DIR}/error.log
CustomLog{APACHE_LOG_DIR}/access.log combined
</VirtualHost>
- 这里省略了部分注释内容,有需要的可以自行配置 *
重启服务
/etc/init.d/apache2 restart
或/etc/init.d/apache2ctl restart
用其他方式启动容易报错
检查效果
直接访问
2020年9月21日 下午4:45 沙发
配置Apache支持CGI | 赤道企鹅的博客
[url=http://www.g79kc972xzo8084s225homltbh39eh10s.org/]ugpwxvpeod[/url]
gpwxvpeod http://www.g79kc972xzo8084s225homltbh39eh10s.org/
agpwxvpeod