用于做网站的软件,dedecms源码,速成美站,网站建设全流程图配置Apache支持CGI 根据以下步骤配置#xff0c;实现Apache支持CGI 安装Apache#xff1a; 可参照文章#xff1a; Ubuntu安装Apache教程。执行以下命令#xff0c;修改Apache2配置文件000-default.conf#xff1a;
sudo vim /etc/apache2/sites-enabled/000-default.con…
配置Apache支持CGI 根据以下步骤配置实现Apache支持CGI 安装Apache 可参照文章 Ubuntu安装Apache教程。执行以下命令修改Apache2配置文件000-default.conf
sudo vim /etc/apache2/sites-enabled/000-default.conf将标注行取消注释并更新保存
执行以下命令修改Apache2配置文件serve-cgi-bin.conf
sudo vim /etc/apache2/conf-available/serve-cgi-bin.confIfModule mod_alias.cIfModule mod_cgi.cDefine ENABLE_USR_LIB_CGI_BIN/IfModuleIfModule mod_cgid.cDefine ENABLE_USR_LIB_CGI_BIN/IfModuleIfDefine ENABLE_USR_LIB_CGI_BIN##ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ (注释掉默认的)ScriptAlias /cgi-bin/ /var/www/html/cgi-bin/##Directory /usr/lib/cgi-bin (注释掉默认的)Directory /var/www/html/cgi-bin/AllowOverride NoneOptions ExecCGI -MultiViews SymLinksIfOwnerMatchRequire all grantedAddHandler cgi-script cgi/Directory/IfDefine
/IfModule 将ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 替换成ScriptAlias /cgi-bin/ /var/www/html/cgi-bin/ 将/usr/lib/cgi-bin 替换成/var/www/html/cgi-bin/ 并在/Directory 中添加AddHandler cgi-script cgi 并更新保存。
执行以下命令修改Apache2配置文件cgid.load
sudo vim /etc/apache2/mods-available/cgid.loadAddHandler cgi-script .cgi .pl .py .sh插入红色标注代码 AddHandler cgi-script .cgi .pl .py .sh 。 并更新保存
执行以下命令创建一个cgid.load的链接文件
sudo ln -s /etc/apache2/mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load执行以下命令重启Apache服务
sudo /etc/init.d/apache2 restart执行以下命令新建cgi-bin文件夹
sudo mkdir /var/www/html/cgi-bin/进行/var/www/html/cgi-bin/ 目录下 创建CGI测试程序测试CGI程序运行环境 1新建一个文件 helloworld.c , 并输入下述内容
#includestdio.h
int main(){printf(Content-Type: text/html\n\n);printf(hello world);printf(第一个apache2配置下的cgi运行程序);return 0;}2执行以下命令编译源文件
sudo gcc /var/www/html/cgi-bin/helloworld.c -o /var/www/html/cgi-bin/hello2.cgi注意执行这一步需要安装gcc依赖包。 执行成功后 在当前目录下生成一个hello2.cgi的目标文件。 /var/www/html/cgi-bin/hello2.cgi其中hello2.cgi为生产目标文件名可以带后缀可以不带后缀带后缀作以提示功能告诉使用者这是一个编译后的cgi文件。 3执行以下命令修改文件权限如果可以直接执行第四步 并成功输出结果可以说明文件权限是默认配置好的可以不进行其他配置为什么设置文件权限和Linux的权限管理有关可查看下方链接
sudo chmod 755 /var/www/html/cgi-bin/hello2.cgi4在/var/www/html/cgi-bin/目录下执行以下命令编译源文件
./hello2.cgi终端输出打印结果
页面测试 浏览器输入网址http://localhost/cgi-bin/hello2.cgi (localhost可替换成服务器的IP) 在页面可以看到如下内容表明CGI环境配置成功。 因为字符集问题所以中文变成了乱码但是只要页面加载成功说明我们CGI环境配置成功。 注意如果通过非root用户启动apache2, 执行 /var/www/html/cgi-bin 目录下的sh文件失败则修改 envvars 文件执行命令sudo vim /etc/apache2/envvars, 将原标记处 www-data 修改为当前执行的用户及其对应的用户组保存后执行命令/etc/init.d/apache2 restart 重启apache2。重启成功后再去浏览器输入地址访问即可。 envvars文件默认配置如上图所示如果 1-9步骤 均无 报错。则可忽略第十步骤。 相关链接
1.Linux系统Linux中ln命令用法 2.Ubuntu安装Apache教程 3.GCC编译器介绍 4.为什么CGI程序的权限必须是755