| 配置个C++ CGI环境真是要给人整死,所幸终于解决了~ 环境:ubuntu-server 20.04 LTS 卸载apache2(要保留网页文件的不要 rm -rf /var/www) apt autoremove apache2
rm -rf /etc/apache2
rm -rf /var/www
dpkg -P apache2
 1.安装apache2root用户: apt update
apt install apache2
 安装成功后应该会自启动,没启动的话 systemctl start apache2
 浏览器输入localhost访问,这里用域名访问了,总之会出现下面的页面,说明安装成功。
  2.建立软链接 
 首先“ cd /etc/apache2 ” 进入到apache2的目录里输入ls查看可以看到这两个文件夹 ” mods-enabled “ 和 ” mods-available “
 其中 ” mods-enabled “ 为常用的(也就是默认开启的), ” mods-available “为不常用的(也就是默认不开启)
 (引自 Ubuntu16.04下Apache2的CGI简单配置)
 对三个文件:cgid.conf、cgid.load、cgi.load 建立软链接cd /etc/apache2
ln  -s  mods-available/cgid.conf  mods-enabled/cgid.conf
ln  -s  mods-available/cgid.load  mods-enabled/cgid.load
ln  -s  mods-available/cgi.load  mods-enabled/cgi.load
 3.开放端口看个人需求,这里以开放端口6000为例,在Listen 80下面加上Listen 6000 cd /etc/apache2
vim ports.conf
  重启apache2
 systemctl restart apache2
 据说也要改sites-enabled中配置文件的端口,但是没改也能用,搞不懂。 4.开启支持cgia2enmode cgi
systemctl restart apache2
 5.编写测试CGI默认cgi路径为usr/lib/cgi-bin cd /usr/lib/cgi-bin
vim 1.cpp
 #include <iostream>
using namespace std;
int main(void)
{
        cout << "Content-type:text/html\r\n\r\n";
        cout << "succeed" << endl;
}
 g++ 1.cpp -o 1.cgi
chmod 755 1.cgi
 注意,按照规范,CGI的标准输出要写Head信息(这里用Content-type),具体另行查询。否则页面会500错误
 
  浏览器访问 成功执行了CGI程序
 一次性配置apt update
apt install apache2
cd /etc/apache2
ln  -s  mods-available/cgid.conf  mods-enabled/cgid.conf
ln  -s  mods-available/cgid.load  mods-enabled/cgid.load
ln  -s  mods-available/cgi.load  mods-enabled/cgi.load
a2enmode cgi
systemctl restart apache2
 我解决了,你解决了吗?  
 参考博客:Ubuntu16.04下Apache2的CGI简单配置 |