Ubuntu下配置Apache以及搭載CGI

在Windows下本身下載應用過Apache,在Linux下也用到了服務器,就選擇了Apache。Apache的安裝在Ubuntu下異常簡單。html

1. 上網下載自動包安裝web

sudo apt-get install apache2

2. 訪問網址嘗試安裝是否成功apache

www.127.0.0.1 or http://localhost

成功的話將會出現Apache的歡迎頁面vim

3. 啓動Apache瀏覽器

/etc/init.d/apache2 start 

4. 重啓Apache服務器

/etc/init.d/apache2 restart

5. 中止Apacheide

/etc/init.d/apache2 stop

好了,服務器搭好了接下來就能夠跑程序了~測試

6. Web文檔的根目錄ui

在/etc/apache2/sites-available/000-default.conf有說明spa

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
/var/www

7. 配置CGI

在Web文檔的根目錄下新建cgi-bin目錄,即/var/www/cgi-bin/。cgi代碼均放置於該目錄下。

固然該目錄也能夠本身定義,不得不說的是,CGI的配置參考了不少資料確實坑道了本身,因爲如今Ubuntu的版本和Apache的版本,變化是有點的。

apache2.conf    conf-enabled  magic           mods-enabled  sites-available
conf-available  envvars       mods-available  ports.conf    sites-enabled

這是/etc/apache2目錄下的全部文件和文件夾。其中較爲關注的主要有available和enabled,其中咱們配置的CGI並無被包含在enabled內,並且enabled中的

文件均爲avaliable中的連接。

1 ls -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
2 ls -s /etc/apache2/mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load

打開這兩個文件實際上是導入了

1 LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
2 LoadModule cgid_module /usr/lib/apache2/modules/mod_cgid.so

一樣地,在/etc/apache2/sites-enabled中打開的連接也是available中的sites-available的000-defalut.conf。

主要的配置都在/etc/apache2/conf-enabled中,該目錄以下所示。

charset.conf                other-vhosts-access-log.conf  serve-cgi-bin.conf
localized-error-pages.conf  security.conf

能夠看到CGI的配置就在serve-cgi-bin.conf這個文件中。

打開該文件,即可以看到

 1 <IfModule mod_alias.c>
 2     <IfModule mod_cgi.c>
 3         Define ENABLE_USR_LIB_CGI_BIN
 4     </IfModule>
 5 
 6     <IfModule mod_cgid.c>
 7         Define ENABLE_USR_LIB_CGI_BIN
 8     </IfModule>
 9 
10     <IfDefine ENABLE_USR_LIB_CGI_BIN>
11         ScriptAlias /cgi-bin/ /var/www/cgi-bin/
12         <Directory "/var/www/cgi-bin">
13             AllowOverride None
14             Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
15             Require all granted
16             AddHandler cgi-script .cgi .pl 
17         </Directory>
18     </IfDefine>
19 </IfModule>
20 
21 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

其中/var/www/cgi-bin能夠改成本身的cgi-bin路徑名,其中Module mod_cgid.c和Module mod_cgi.c正是咱們以前導入cgi.load和cgid.load的緣由。

其實避免錯誤的話,能夠將全部的available文件導入至enabled文件夾中~~~。

8. 配置這個完了,就該嘗試一下了吧>.<

8.1 在/var/www/cgi-bin中新建文件HelloWorld.c

鍵入以下代碼:

 1 /**
 2  * CGI測試程序
 3  */
 4 
 5 #include "stdio.h"
 6 
 7 int main(int argc, char* argv[])
 8 {
 9         printf("Context-Type:text/html\n\n"); //這個必須得有
10         printf("Hello,World!\n");
11         return 0;
12 }

8.2 編譯源文件

1 sudo gcc -o HelloWorld.cgi HelloWorld.c

8.3 打開瀏覽器測試輸出

http://localhost/cgi-bin/HelloWorld.cgi

終於出現了!!!

Hello,World!

結束了,寫在博客上,防止之後忘記。

相關文章
相關標籤/搜索