標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 爬蟲 (1) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) Fedora (1) FI (57) File Transfer (1) Firefox (3) FM (2) fourjs (1) Genero (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (4) JavaScript (22) jQuery (6) JSON (1) K3b (1) ldd (1) LED (3) Linux (117) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) OpenSSL (1) Oracle (126) Outlook (3) PDF (6) Perl (60) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (5) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium (3) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) sqlplus (1) SQuirreL SQL Client (1) SSH (2) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (24) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (37) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) VirtualBox (1) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) Xvfb (2) youtube (1) yum (2)

2012年3月11日 星期日

Ubhuntu下安装配置Apache2 Perl cgi-bin

Ubhuntu下安装配置Apache2 Perl cgi-bin

首先安装sudo apt-get install libperl-dev
http://httpd.apache.org/download.cgi#apache22下载httpd
安装方法:./configure  make  make install
这样你的apache2就安装到了/usr/local/apache2下.
cd /usr/local/apache2/bin
sudo ./apachectl start
在地址栏输入127.0.0.1,发现“It works!",页面的内家取决于htdocs/index.html的内容。
任何地方都可以调用apachectl
sudo vim /root/.bashrc
export PATH="$PATH:/usr/local/apache2/bin"
vim ~/.bashrc
export PATH="$PATH:/usr/local/apache2/bin"
设置开机自动启动Apache
在/etc/init.d下建立一个shell文件apache
#!/bin/bash
/usr/local/apache2/bin/apachectl start
$chmod +x apache
在/etc/rc5.d下建立一个指向apache的软链接
$ln -s /etc/init.d/apache S20apache
因为rc(0--6,S).d下的文件是在系统启动后自动执行的嘛,另外rc(0--6,S).d下文件名的命名规则:以S开头是启动,以K开关不是启动。注意rc.d下建立的软件链接指向的文件必须是/etc/init.d下的文件。
最后执行update-rc.d apache defaults
详细内容参加rc5.d下面的README文件。
实际上开机自动启动还有另外一种简单的方式:System==>Preference==>Startup Applications
在/usr/local/apache2/cgi-bin下已经给了个测试程序test-cgi,我们在地址栏是输入127.0.0.1/cgi-bin/test-cgi发现“Internal Server Error",出现这个问题有三种原因:
  1. 找不到脚本解释器。shell的话第一行就用#!/bin/sh,Perl的话第一行就用#!/usr/bin/perl
  2. 脚本语法有误
  3. 权限问题。从浏览器中访问apache服务器文件的用户默认组别是"Nobody",执行sudo chmod 755 test-cgi就解决问题了。
sudo chmod 777 /usr/local/apache2/cgi-bin
在cgi-bin下新建一个文件hello.pl
#!/usr/bin/perl
print "Content-type: text/html";
print "Hello, World.";
$chmod 755 hello.pl
在浏览器地址栏输入http://localhost/cgi-bin/hello.pl测验一下。
下面给一个正式的CGI代码,也是我做的第一个搜索引擎的demo,具有划时代的意义!
#!/usr/bin/perl
use CGI qw(:standard);
use Search::Xapian;
print header;
print start_html(-title=>'ISee Search Engine',-align=>'center');
print start_form,
 textfield('terms'),
 submit('Search'),
 p,
 end_form;
print hr;
if(param()){
 my $db = Search::Xapian::Database->new("/home/orisun/master/db2");
 my $term=param('terms');
 my $enq = $db->enquire($term);
 ##printf "Running query '%s'\n", $enq->get_query()->get_description();
 my @matches = $enq->matches(0, 10);
 print scalar(@matches) . " results found";
 print br;
 foreach my $match ( @matches ) {
     my $doc = $match->get_document();
     printf "ID=%d Percent=%d%%<br>%s", $match->get_docid(), $match->get_percent(), $doc->get_data();
     print p;
 }
}
print end_html;
运行效果:

 
 
彻底删除Apache
首先停止服务:
service httpd stop
apchectl stop
再删除
1、sudo apt-get  --purge remove apache2
2、sudo apt-get --purge remove apache2.2-common
3、sudo apt-get autoremove (此命令会自动卸载PHP)
最后手动删除Apache的所有文件

沒有留言:

張貼留言