如何在Ubuntu上搭建apache服务器

1.安装apache2服务器

注意:如果以及安装可以这一步可以忽略

sudo apt install apache2;
sudo apt install apache2; 
sudo apt install apache2;

2、查看是否安装成功

在浏览器输入Ubuntu的IP地址,出现以下情况视为成功
在这里插入图片描述

3.配置apache支持cgi程序

因为apache中的cgi功能需要我们自己去开启,因此我们需要
进入/etc/apache2/mods-enabled目录下
把上一级目录下mods-available(存放apache所支持的功能)内的cgi配置文件拷贝到当前目录下(也可以创建软连接)进行开启;如下(二选一)
3.1.1、复制配置文件

gec@ubuntu:/etc/apache2/mods-enabled$ <span class="token function">sudo</span> <span class="token function">cp</span> <span class="token punctuation">..</span>/mods-available/cgid.conf cgid.conf gec@ubuntu:/etc/apache2/mods-enabled$ <span class="token function">sudo</span> <span class="token function">cp</span> <span class="token punctuation">..</span>/mods-available/cgid.load cgid.load gec@ubuntu:/etc/apache2/mods-enabled$ <span class="token function">sudo</span> <span class="token function">cp</span> <span class="token punctuation">..</span>/mods-available/cgi.load cgi.load
gec@ubuntu:/etc/apache2/mods-enabled$ <span class="token function">sudo</span> <span class="token function">cp</span> <span class="token punctuation">..</span>/mods-available/cgid.conf cgid.conf gec@ubuntu:/etc/apache2/mods-enabled$ <span class="token function">sudo</span> <span class="token function">cp</span> <span class="token punctuation">..</span>/mods-available/cgid.load cgid.load gec@ubuntu:/etc/apache2/mods-enabled$ <span class="token function">sudo</span> <span class="token function">cp</span> <span class="token punctuation">..</span>/mods-available/cgi.load cgi.load 
gec@ubuntu:/etc/apache2/mods-enabled$ sudo cp ../mods-available/cgid.conf cgid.conf gec@ubuntu:/etc/apache2/mods-enabled$ sudo cp ../mods-available/cgid.load cgid.load gec@ubuntu:/etc/apache2/mods-enabled$ sudo cp ../mods-available/cgi.load cgi.load

3.1.2、创建软连接
如果已经复制了配置文件则无需再创建软链接!!

gec@ubuntu:/etc/apache2/mods-enabled$ <span class="token function">sudo</span> <span class="token function">ln</span> -s <span class="token punctuation">..</span>/mods-available/cgid.conf cgid.conf gec@ubuntu:/etc/apache2/mods-enabled$ <span class="token function">sudo</span> <span class="token function">ln</span> -s <span class="token punctuation">..</span>/mods-available/cgid.load cgid.load gec@ubuntu:/etc/apache2/mods-enabled$ <span class="token function">sudo</span> <span class="token function">ln</span> -s <span class="token punctuation">..</span>/mods-available/cgi.load cgi.load
gec@ubuntu:/etc/apache2/mods-enabled$ <span class="token function">sudo</span> <span class="token function">ln</span> -s <span class="token punctuation">..</span>/mods-available/cgid.conf cgid.conf gec@ubuntu:/etc/apache2/mods-enabled$ <span class="token function">sudo</span> <span class="token function">ln</span> -s <span class="token punctuation">..</span>/mods-available/cgid.load cgid.load gec@ubuntu:/etc/apache2/mods-enabled$ <span class="token function">sudo</span> <span class="token function">ln</span> -s <span class="token punctuation">..</span>/mods-available/cgi.load cgi.load 
gec@ubuntu:/etc/apache2/mods-enabled$ sudo ln -s ../mods-available/cgid.conf cgid.conf gec@ubuntu:/etc/apache2/mods-enabled$ sudo ln -s ../mods-available/cgid.load cgid.load gec@ubuntu:/etc/apache2/mods-enabled$ sudo ln -s ../mods-available/cgi.load cgi.load

3.2、然后重启apache服务器

<span class="token function">sudo</span> apachectl restart
 <span class="token function">sudo</span> apachectl restart 
sudo apachectl restart

重启会出现以下错误:
在这里插入图片描述
然后打开/etc/apache2/apache2.conf在文件最前面添加添加ServerName 127.0.0.1再重新启动

sudo vi <span class="token operator">/</span>etc<span class="token operator">/</span>apache2<span class="token operator">/</span>apache2<span class="token punctuation">.</span>conf
sudo vi <span class="token operator">/</span>etc<span class="token operator">/</span>apache2<span class="token operator">/</span>apache2<span class="token punctuation">.</span>conf 
sudo vi /etc/apache2/apache2.conf

在这里插入图片描述

然后去到/etc/apache2/conf-enabled目录下打开serve-cgi-bin.conf文件,里面可以看到我们cgi程序放置的默认目录,若想把cgi程序放在其他地方则可以修改该路径

vim serve<span class="token operator">-</span>cgi<span class="token operator">-</span>bin<span class="token punctuation">.</span>conf
vim serve<span class="token operator">-</span>cgi<span class="token operator">-</span>bin<span class="token punctuation">.</span>conf 
vim serve-cgi-bin.conf

在这里插入图片描述

4、测试

进入/usr/lib/cgi-bin/目录下编写一个c/c++程序

<span class="token macro property">#<span class="token directive keyword">include</span> <span class="token string"><stdio.h></span></span> <span class="token keyword">int</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token keyword">void</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"Content-type:text/html;charset=utf-8\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token punctuation">}</span>
<span class="token macro property">#<span class="token directive keyword">include</span> <span class="token string"><stdio.h></span></span> <span class="token keyword">int</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token keyword">void</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"Content-type:text/html;charset=utf-8\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"hello world\n\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> 
#include <stdio.h> int main(void) { printf("Content-type:text/html;charset=utf-8\n\n"); printf("hello world\n\n"); printf("hello world\n\n"); printf("hello world\n\n"); printf("hello world\n\n"); printf("hello world\n\n"); printf("hello world\n\n"); printf("hello world\n\n"); printf("hello world\n\n"); return 0; }

然后在浏览器中进行访问(注意:需要指定访问的是哪个文件)
在这里插入图片描述
运行结果:
在这里插入图片描述

原文链接:https://blog.csdn.net/takashi77/article/details/109492193

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享