记录deepin配置apache+cgi

本文记录了在Deepin系统中安装Apache并配置运行CGI程序的步骤,包括Apache的安装、CGI包下载及安装、VSCode与CGI的配合,以及Apache运行CGI文件的配置。在配置过程中,遇到的依赖问题、权限不足问题以及模块加载问题都得到了解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.apache 安装

直接从源下的,apt-get install apache2

2.cgi 包下载

最开始是 wget gnu 上的最新版本,然后提示缺少依赖包( autoheader\perl 之类的),就继续下依赖包,但是导进去貌似把二进制文件弄乱了...结果没法 make ,然后下了个2014年的版本,就没有依赖包的问题.

3.cgi 和 vscode 配合(有问题)

下完了之后放在了 /usr/include/c++ 目录下,和其他的cpp头文件放一块.在 vscode 中就可以找到包了,但是 make 的时候没法自动找到,改了 target.json 也不可以(可能没改对),得手动用g++ -lcgicc才可以编译成功.

4.apache 运行 .cgi 文件的配置

apache 默认运行 cgi 目录为 /var/www/cgi-bin ,为了能通过网页上访问 cgi-bin 上的 cgi 文件,要进行两个配置文件的配置+1个加载apache 的 cgi 模块的操作.

1)配置访问 cgi 目录的虚拟站点(能够让网页找到此目录,以及执行 cgi 文件)

配置代码:


<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options ExecCGI
   Order allow,deny
   Allow from all
</Directory>
AddHandler cgi-script .cgi .pl

2)在 /etc/apache2/sites-available 中添加我们自定义的站点配置文件信息( cgi.conf )

光配置了上面的,还不可以成功访问,会出现权限不足的问题.还需要在 /etc/apache2/sites-available 里面添加关于我们新增加的虚拟站点的访问信息.新建一配置文件 cgi.conf ,配置如下(我是 copy 了 apache 的一份原生配置然后照着它改的):

<VirtualHost *:80>
        ServerName www.cgi.com
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/cgi-bin
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

3)加载 apache 的 cgi 模块

刚开始配置要不就是提示找不到页面,要不就是找到了但是是直接下载cgi文件而不是运行的情况.后来发现是没有加载 apche 的 cgi模块,无法运行,执行命令:

sudo a2enmod cgi

后,然后重启服务,就可以通过在网页上访问来运行 cgi 程序了.

4)例子

我在/var/www/cgi-bin 下写了一个cpp文件,代码如下:

#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;
}

然后编译生成了可执行文件,把可执行文件改名为 cpp.cgi (以cgi后缀结尾的文件),接着在网页上访问此文件即可得到结果.

访问站点 www.cgi.com/cpp.cgi,网页就会出现hello world了.

 

总结:网上找解决方法有时候真的像大海捞针,每个人的方法都不同,要自己尝试成功后,再去理解配置的每一步,这样下次遇到类似的问题时才会有参考,而不是随便配好了就完事了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值