用了几天时间学习了C++的简单使用,学到最后C++与web的结合,生成了cgi文件后想在浏览器直接浏览,需要apache提供对外能力。
1、安装apache2
sudo apt install apache2
安装完成后查看状态
sudo systemctl status apache2
2、建目录
su root
cd /var/www
mkdir cgi-bin
3、修改配置
cd /etc/apache2/conf-enabled
vi serve-cgi-bin.conf
修改成,指向刚才创建的目录
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 All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
AddHandler cgi-script .cgi
</Directory>
</IfDefine>
</IfModule>
接着返回上一层,进入sites-enabled目录,修改000-default.conf中的DocumentRoot值,指向步骤2创建的目录
DocumentRoot /var/www/cgi-bin
4、创建软链接
cd /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/cgi.load cgi.load
5、重启apache2
sudo /etc/init.d/apache2 restart
6、编写C++测试代码
#include <iostream>
using namespace std;
int main ()
{
cout << "Content-type:text/html\r\n\r\n";
cout << "<html>\n";
cout << "<head>\n";
cout << "<title>Hello World - 第一个 CGI 程序</title>\n";
cout << "</head>\n";
cout << "<body>\n";
cout << "<h2>Hello World! 这是我的第一个 CGI 程序</h2>\n";
cout << "</body>\n";
cout << "</html>\n";
return 0;
}
保存为cgi
g++ one.cpp -o one.cgi
将one.cgi放到 /var/www/cgi-bin