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.loadgec@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.loadgec@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.loadgec@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.loadgec@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 restartsudo 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>confsudo vi <span class="token operator">/</span>etc<span class="token operator">/</span>apache2<span class="token operator">/</span>apache2<span class="token punctuation">.</span>confsudo 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>confvim serve<span class="token operator">-</span>cgi<span class="token operator">-</span>bin<span class="token punctuation">.</span>confvim 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
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END