RSS

How to install Tomcat 6 on Ubuntu 10.04/Debian


Apache Tomcat is a free and open source software implementation for JavaServlets, providing support for Java Server Pages (JSP). Many popular web-based applications use servlets. You may choose to run Tomcat with either Sun’s Java implementation or the OpenJDK implementation of Java.

Because Tomcat version 6 was included in Ubuntu 10.04, installing a working Tomcat server is reasonably straightforward. However, before we can start installing Tomcat itself, we must first install Java.

 

Install tomcat 6 in ubuntu 9.04

sudo apt-get install tomcat6 tomcat6-admin tomcat6-common tomcat6-user tomcat6-docs tomcat6-examples

Start tomcat server

sudo /etc/init.d/tomcat6 start

Stop tomcat server

sudo /etc/init.d/tomcat6 stop

Restart tomcat server

sudo /etc/init.d/tomcat6 restart

Get tomcat server status

sudo /etc/init.d/tomcat6 status

After installation type http://localhost:8080 or http://serverip:8080/examples/servlets/ in your browser.Now you should see tomcat welcome page

* To enable admin web based features add the following lines to your /etc/tomcat6/tomcat-user.xml

<role rolename="manager"/>
<role rolename="admin"/>
<user name="admin" password="secret_password" roles="manager,admin"/>

* you should be able to see your manage page here http://your_ip_goes_here:8080/manager/html

* log in with the name and password you just set in /etc/tomcat6/tomcat-users.xml

* ls /var/lib/tomcat6 directory.

* you should see these directories conf, logs, webapps, work

* webapps is where your servlets will go ( or at least a xml file that points to them )

* as a test download this war file http://simple.souther.us/SimpleServlet.war

* then use the tomcat management page and select war file to deploy ( in the deploy section) to upload this file to your server

* optionally just wget http://simple.souther.us/SimpleServlet.war directly to the webapps folder

* tomcat should recognize the war file and expand it with everything you need

* browse to http://serverip:8080/SimpleServlet/

Change tomcat server to run on port 80

If you want to Change tomcat server to run on port 80 follow this procedure

You need to edit the /etc/tomcat6/server.xml file

nano /etc/tomcat6/server.xml

Now replace the part that says Connector port=”8080? with Connector port=”80?

Save and exit the file

Restart tomcat server with the following command

sudo /etc/init.d/tomcat6 restart
 

Nhãn: ,

Trình soạn thảo VI trong Linux


Trình soạn thảo vi

Nội dung : Giới thiệu trình soạn thảo vi , cung cấp một số kiến thức cơ sở để có
thể soạn thảo được văn bản hay chương trình .

I. Khởi động vi :

1. Giới thiệu :
Vi (video interactif) là chương trình sọan thảo văn bản theo  trang màn hình :
– Màn hình được xem như một cửa sổ mở trên tập tin .
– Có khả năng di chuyển con trỏ đến bất kì vị trí nào trên màn hình .
– Cửa sổ có thể di chuyển tự do trên tập tin .
Phần lớn các phím dùng độc lập hoặc kết hợp với phím Shift và Ctrl để tạo ra các lệnh của vi . Khi một lệnh bị gõ sai, vi báo hiệu bằng cách nháy màn hình, kêu còi hay thông báo lỗi .
Chương trình vi được xây dựng từ chương trình soạn thảo dòng ex .Các lệnh của ex có thể được gọi khi có dấu “:” ở dòng cuối màn hình .

2. Khởi động vi :

Ta có thể gọi vi với tên tập tin văn bản :
$vi tên_tập tin
Cửa sổ soạn thảo sẽ được mở tại đầu tập tin . Nếu tập tin chưa tồn tại,nó sẽ được tạo bởi lệnh ghi . Dòng cuối cùng trên màn hình được dùng cho những công việc sau :
– Vào các lệnh .
– Thống kê .
– Báo lỗi .
Khi ta chỉ muốn xem nội dung một tập tin đã có trên đĩa , dùng lệnh :
$view tên_tập tin
Để thóat trình xem, nhấn phím ESC gõ :q! nhấn phím Enter

3.Thoát khỏi vi :
– Muốn ra khỏi vi và ghi lại nội dung tập tin, bạn nhấn phím ESC và dùng một trong các lệnh như sau :
:ZZ hoặc :wq hoặc 😡
– Thoát khỏi vi và không ghi lại các thay đổi trước đó :q!
Khi ở trong chế độ soạn thảo của vi , muốn làm việc với các lệnh SHELL, ta có thể làm như sau :
– Chạy một lệnh SHELL
:! Lệnh
– Hoặc gọi SHELL , sau đó chạy các lệnh của người dùng, khi kết thúc bấm Ctrl-D để trở lại vi :
:! sh
$ lệnh
$ Ctrl-D

II. Soạn thảo văn bản :

1. Chèn văn bản :
– Chèn ký tự trên một dòng :
a <text> <ESC>
– Chèn ký tự vào sau vị trí con trỏ . Lệnh không được hiển thị trên màn hình . Nhấn phím ESC để kết thúc chế độ chèn văn bản .
i <ESC> Xen ký tự vào sau con trỏ .
A <ESC> Xen ký tự vào cuối dòng .
i <ESC> Xen ký tự vào cuối dòng .
– Chèn dòng :
o <ESC> Xen một dòng vào trước dòng chứa con trỏ .
o <ESC> Xen một dòng vào sau dòng chứa con trỏ .

2. Di chuyển con trỏ trong tập tin :
– Theo ký tự :
Sang trái : dùng phím trượt trái hoặc h hoặc backspace
Xuống dòng : dùng phím trượt xuống hoặc j hoặc linefeed
Sang trái : dùng phím trượt phải hoặc i hoặc espace
Lên dòng : dùng phím trượt lên hoặc k hoặc
– Theo dòng :
^ về đầu dòng
$ cuối dòng
Enter đầu dòng kế tiếp
– Đầu dòng trên
0(null) về đầu dòng vật lý (dòng bắt dầu bằng dấu cách hoặc Tab)
– Theo màn hình
H về đầu màn hình (Home)
M về giữa màn hình (Miđle)
L về cuối màn hình (Last)
– Theo từ (word) :
w W về đầu từ tiếp
b B đầu từ hiện tại
e E cuối từ hiện tại
– Theo câu :
( về đầu câu
) về cuối câu
Lưu ý kết thúc một câu là dấu .! hoặc ?
– Theo cửa sổ (window):
z dòng hiện tại ở giữa cửa sổ .
z<Enter> dòng hiện tại ở đầu cửa sổ
^D dòng hiện tại ở cuối cửa sổ
^U xuống nữa cửa sổ
^F xuống một cửa sổ (-2 dòng)
^B lên một cửa sổ (-2 dòng)
Lưu ý :^là ký hiệu phím CTRL .
-Theo số thứ tự dòng :
Để hiển thị số thứ tự các dòng soạn thảo :
: set nu
Xóa bỏ hiển thị trên :
: set nonu
:n<Enter> hoặc nG Chuyển con trỏ đến dòng thứ n
:s hoặc G Đến cuối dòng văn bản
:se list hiển thị các kí tự ẩn
– Tìm theo dãy kí tự :
/ kí hiệu chiều tìn xuôi
? kí hiêụ chiều tìm ngược
/string chuyển con trỏ đến dòng chứa dãy kí tự theo chiều
xuôi
?string chuyển con trỏ đến dòng chứa dãy kí tự theo chiêu ngược
// lặp lại tìm xuôi
?? lặp lại tìm ngược

3. Xóa văn bản :
– Xóa kí tự :
x xóa kí tự taịo vị trí con trỏ
3x xóa 3 kí tự
x xóa kí tự trước vị trí con trỏ
– Xóa dòng văn bản :
dd hoặc :d<CR> xóa dòng chứa con trỏ
3dd xóa 3 dòng bắt đầu từ vị trí văn bản
d$ hoặc D xóa đến cuối dòng
dw xóa từ chứa con trỏ
3dw xóa 3 từ
d/string xóa đến khi hết dãy kí tự

4. Thay thế văn bản :
-Thay thế kí tự :
rc thay thế kí tự đại diện bằng kí tự c
R <ESC> thay thế số kí tự bằng dãy ‘text”
– Thay thế dòng :
S <ESC> xóa dòng hiện tại và thay thế nó bằng “text”
– Thay thế từ :
cw <ESC> thay thế một từ bằng “text” .
Từ được thay thế tính từ vị trí con trỏ đến kí tự $
c2w<ESC> thay 2 từ
c hoặc c$ thay thế đến cuối dòng
c/string thay thế đến hết chuỗi

5. Xóa hoặc lặp lại tập lệnh :
– Xóa lệnh
u xóa tác dụng của lệnh cuối cùng
U xóa tất cả các thay đổi đã làm trên dòng hiện tại
– Lặp lại lệnh
. lặp lại lệnh thay dổi văn bản

6. Xem trạng thái văn bản đang soạn thảo :
^G Hiển thị tên , trạng thái ,số dòng , vị trí cursor và phần văn bản tính
từ vị trí con trỏ đến cuối dòng văn bản .

7. Sao chép , di chuyển văn bản :
+ Di chuyển văn bản
Mỗi lần thực hiện một lệnh xóa (x hoặc d ) , vi đều ghi lại phần văn bản
bị xóa vào vùng đệm riêngcho đến lần xóa sau . Lệnh p hoặc P cho phép lấy
lại phần văn bản từ vùng đệm đó . Trước khi thực hiện lệnh này , dấu nháy
phải được đặt vào vị trí cùng kiểu với phần văn bản có trong vùng đệm :
– kí tự
– từ
– dòng
– cuối dòng
p sao phần văn bản xóa lần cuối vào sau đối tượng cùng kiểu
P sao phần văn bản xóa lần cuối vào trước đối tượng cùng kiểu
* cách khác để chuyển dòng :
:5, 10m 20 chuyển các dòng từ 5 đến 10 tới sau dòng 20
+ Sao chép văn bản
Lệnh y (yank) cho phép sao chép phần văn bản ta muốn vào vùng
đệm . Muốn sao phần văn bản từ vùng đệm ra, ta phải chuyển cursor đến nơi
cần sao , sau đó dùng P hoặc p
Y3w sao 3 từ vào vùng đệm
Y hoặc yy sao dòng hiện tại vào vùng đệm
5yy sao 5 dòng vào vùng đệm
Cách khác dùng để sao chép dòng :
:5, 8 t 25 sao chép các dòng từ 5 tới 8 tới sau dòng 25

III . Dùng vi với danh sách các lệnh đã chạy của Shell :

Lệnh fc (fix command ) cho phép ta soạn thảo bằng vi và chạy lại các lệnh đã chạy của Shell . Cách dùng như sau :
– Soạn thảo và cho chạy lệnh cuối cùng :
$fc
– Soạn thảo một nhóm lệnh và cho chạy :
$ fc m n
-Xem danh sách 16 lệnh cuối cùng :
$ fc -l hoặc history
$fc -lr ( danh sách theo thứ tự ngược lại )
– Tạo một tập tin chứa một số lệnh đã chạy (của history):
$fc -nl n1 n2 > cmd
cmd là một tập tin chứa các lệnh của history từ lệnh ngày đến lệnh n2 .

 
Bạn nghĩ gì về bài viết này?

Posted by trên 11/12/2011 in Linux

 

Cách cài đặt Teamviewer 6 trên Ubuntu 10.10 Maverick Meerkat


Trong bài viết này chúng tôi sẽ hướng dẫn bạn cách cài Teamviewer 6 trên Ubuntu 10.10 Maverick Meerkat. Nếu bạn không biết Teamviewer là gì, nó là một một công cụ truy cập và hỗ trợ từ xa mà giúp bạn đăng nhập và có quyền kiểm xoát một máy tính từ xa qua internet. Phiên bản Teamviewer 6 là phiên bản mới nhất với nhiều tính năng mới và thú vị hơn các phiên bản trước.

Bắt đầu:

Đầu tiên, bạn tải Teamviewer phiên bản 32bit tại đây hoặc phiên bản 64bit tại đây.

Khi được hỏi bạn chọn ‘Open with Ubuntu Software Center (default)’

teamvier 6

Khi của sổ Software Center mở ra, bạn bấm ‘Install’

teamvier 6 2

Sau khi cài đặt xong, bạn chạy Teamviewer bằng cách vào Applications –> Internet –> TeamViewer 6.

teamvier 6 3

Thế là xong!

teamvier 6 4

Bạn dùng TeamViewer để kết nối tới máy tính của đối tác hoặc cho phép người khác truy cập vào máy tính của bạn thông qua kết nối Internet bằng cách đưa cho họ ID và mật khẩu của bạn.

 

Cần sao lưu những gì trên hệ thống Linux Home Server


Nếu bạn đang sở hữu 1 hệ thống home server hoạt động bằng Linux, thì có lẽ sẽ cần nâng cấp và cập nhật thường xuyên.

Sau đây, chúng tôi sẽ hướng dẫn các bạn 1 số bước cơ bản để sao lưu những thành phần cơ bản và cần thiết nhất, giúp người sử dụng tiết kiệm thời gian tối đa mỗi lần thực hiện quá trình nâng cấp.

Tuy nhiên, mỗi 1 hệ thống home server đều có sự khác biệt nhất định, do vậy hãy điều chỉnh và thay đổi cho phù hợp – đây chỉ là bài hướng dẫn nên bắt đầu từ đâu.

Thư mục /home:

Cần sao lưu những gì trên hệ thống Linux Home Server

Hãy bắt đầu với /home, thư mục gốc với từng tài khoản có trên hệ thống. Tại đây lưu trữ tất cả các file ca nhạc, video, tài liệu (trừ khi bạn để dữ liệu trên 1 phân vùng khác), và đồng thời đây cũng là nơi lưu các file cấu hình của chương trình. Bấm Ctrl + H và bạn sẽ thấy toàn bộ những file ẩn trong thư mục này. Hãy sao lưu bất cứ dữ liệu nào cần thiết, và áp dụng với từng tài khoản.

Nguồn Apt:

Danh sách các phần mềm, ứng dụng sử dụng bởi apt được cố định tại đường dẫn/etc/apt/sources.list, và những khóa gpg trong thư mục /etc/apt/sources.list.d/. Nếu đã từng có thời gian sử dụng Linux, chắc hẳn mọi người sẽ muốn cài đặt phần mềm từ những repository bên ngoài so với hệ thống mặc định. Sau khi cài lại, người sử dụng chỉ cần thay đổi thông tin của distro tương ứng (ví dụ lucid thành maverick), và copy những dòng này tới file sources.list mới. Nhưng tùy từng repository mà bạn phải download file gpg key trước khi sử dụng. 1 điều khác cần lưu ý là người dùng cũng nên ghi nhớ chính xác những gì có trên hệ thống cũ, hoặc sử dụng Ubuntu Tweak – 1 giải pháp khá tốt nếu muốn cài đặt phần mềm và repository, cũng như thay đổi các thiết lập trong hệ thống.

Các thiết lập Samba:

Nếu thiết lập và sử dụng tính năng chia sẻ Samba (với Windows) thì bạn cần phải copy file/etc/samba/smb.conf. Thực ra có rất ít sự khác biệt giữa các phiên bản với nhau, do vậy chỉ cần giữ lại file thiết lập đang sử dụng. Trong trường hợp cần phải thiết lập lại toàn bộ, hãy sử dụnggadmin-samba (trên Gnome) và KSambaPlugin (trên KDE) với smb.conf, cả 2 công cụ đều có giao diện điều khiển đồ họa, khiến cho các thao tác đơn giản và dễ dàng hơn rất nhiều.

SSH:

Trong trường hợp bạn sử dụng SSH để điều khiển và truy cập máy tính từ xa, hãy sao lưu file thiết lập của chức năng này tại /etc/ssh/ssh_config và /etc/ssh/sshd_config.

fstab:

Toàn bộ file này cố định tại thư mục /etc/fstab, nhiệm vụ chính là chỉ định file hệ thống bảng của Linux. Phải thật cẩn thận khi tiến hành áp dụng, vì bạn sẽ không thể sử dụng file fstab cũ trên hệ thống cài đặt mới. Vì tham số UUIDs sẽ thay đổi mỗi khi phân vùng được định dạng lại. Tuy nhiên, hãy giữ lại file cấu hình cũ trong file fstab, việc này thực sự hữu ích nếu hệ thống có nhiều phân vùng, các thư mục hoặc kết nối chia sẻ, thư mục gốc /home riêng biệt…  Bên cạnh đó, các bạn cũng có thể sử dụng công cụ pySDM (Gnome) hoặc mountmanager (KDE) để điều chỉnh file fstab (cả 2 đều có giao diện đồ họa).

Sao lưu chương trình:

Nếu hệ thống server được thiết lập chức năng tự động sao lưu bằng rsync hoặc Simple Backup, bạn hãy giữ lại file cấu hình của chính những công cụ đó, ví dụ file cấu hình của Rsync tại vị trí/etc/rsyncd.conf và của Simple Backup là /etc/sbackup.conf.

Các file cấu hình, thiết lập website:

Rất nhiều người sử dụng Apache, MySQL, hoặc PHP trên hệ thống để sử dụng hoặc nghiên cứu website cá nhân của họ. Và việc sao lưu những file cấu hình này khá phức tạp, tất cả đều có trong thư mục /var/www:

Nhưng có lẽ sẽ tốt hơn nếu bạn cấu hình lại toàn bộ Apache, MySQL, và PHP khi cài đặt lại hệ thống, do sự thay đổi về phiên bản sử dụng hoặc mật khẩu quản trị. Mặt khác, các bạn có thể cài thay thế bằng bộ tổ hợp LAMP quen thuộc:

sudo apt-get install lamp-server

Bên cạnh đó, hãy cài thêm phpMyAdmin để điều chỉnh cơ sở dữ liệu MySQL dễ dàng hơn:

sudo apt-get install libapache2-mod-auth-mysql phpmyadmin

Và cuối cùng, hãy nhớ thay đổi mật khẩu mặc định của những ứng dụng này trước khi sử dụng. Chúc các bạn thành công!

 

Hướng dẫn cài đặt các Font Windows trên Ubuntu


Đây là 1 trong những bước cơ bản khi thiết lập, cài đặt và sử dụng hệ điều hành Ubuntu. Một trong những bộ font được sử dụng nhiều và phổ biến nhất là bộ theo chuẩn Microsoft, ví dụ Times New Roman, Arial, Verdana… nhưng lại không có sẵn trên Ubuntu.

Cài đặt Core Microsoft Fonts

Tất cả các bộ font đều miễn phí, bạn có thể tìm và tải trên từ Software Center của Ubuntu. MởApplications > Ubuntu Software Center:

Tại ô tìm kiếm gõ từ khóa sau: ttf-mscorefonts

Sau đó, nhấn Install tại ô kết quả Installer for Microsoft TrueType core fonts:

Điền mật khẩu tài khoản sử dụng và nhấn Authenticate:

Sau đó, bộ font sẽ tự động tải và cài đặt trên hệ thống. Quá trình này sẽ diễn ra trong vòng vài phút phụ thuộc vào tốc độ kết nối Internet của bạn:

Khi kết thúc, bạn có thể log off sau đó đăng nhập để hệ thống nhận diện toàn bộ font mới. Kiểm tra lại bằng các chương trình soạn thảo văn bản (tại bài viết này chúng ta sử dụng OpenOffice Writer, ở chế độ mặc định OpenOffice sử dụng font Liberation Serif, nhưng sau khi cài đặt bộ Core Microsoft Fonts, hệ thống sẽ tự động chuyển sang Times New Roman):

Cài đặt các bộ font khác

Bên cạnh Microsoft Core Fonts, hệ thống Ubuntu Software Center có đi kèm với hàng trăm bộ font miễn phí khác có sẵn:

Khi tìm được bộ font vừa ý nào đó, kích đúp để xem ở chế độ preview và cài đặt nếu muốn:

Trên đây là 1 trong những phương pháp đơn giản nhất để bổ sung font hệ thống trong Ubuntu mà không cần phải nhớ đến những câu lệnh phức tạp.

http://www.tailieuit.com/4r/threads/huong-dan-cai-dat-cac-font-windows-tren-ubuntu.317/

Chúc các bạn thành công!

 

Phục hồi chế độ Dual Boot sau khi cài Windows


Tháng trước tôi đã làm hỏng Grub2 vì cài Windows 7 lênh máy tính để bàn của tôi. Thật khó để phục hồi nó vì ít tài liệu về cách phục hồi, sau một thời gian tìm tòi tôi đã phục hồi lại chế độ Dual Boot, tôi muốn chia sẻ cách tôi phục hồi Grub2 cho các bạn:

Bạn cần có đĩa LIVE CD nếu bạn phục hồi Ubuntu. Mở hệ thống với Live CD (Giả sử bạn đang dùng đĩa CD Ubuntu Live). Ấn Alt+F2 và gõ lệnh gnome-terminal. Và tiếp tục bằng cách gõ :

$sudo fdisk -l

Sau khi gõ lệnh xong thì màn hình sẽ hiện ra danh sách tương tự như sau:

/dev/sda1 29 8369 66999082+ 83 Linux
/dev/sda2 * 8370 13995 45190845 7 HPFS/NTFS
/dev/sda3 13996 14593 4803435 5 Extended
/dev/sda5 13996 14593 4803403+ 82 Linux swap / Solaris

Trên danh sách của tôi thì Linux được cài ở /dev/sda1. Bạn gõ các lệnh sau:

$sudo mount /dev/sda1 /mnt
$sudo mount –bind /dev /mnt/dev
$sudo mount –bind /proc /mnt/proc

Lệnh sau có thể dùng hoặc không (nó sao chép tập tin resolv.conf)

$sudo cp /etc/resolv.conf /mnt/etc/resolv.conf

chroot vào môi trường chúng ta làm việc:

sudo chroot /mnt

Sau khi chroot, bạn không cần phải thêm sudo vào phía trước câu lệnh bởi vì từ bây giờ bạn chạy lệnh như là người dùng root.

Bạn có thể muốn sửa tập tint /etc/default/grub phù hợp với hệ thống của bạn (thời gian chờ ..vv.v)

#nano -w /etc/default/grub

Tùy biến các tùy chọn theo ý của bạn.(Nhưng đừng quên dùng lệnh grub-update nếu bạn đã lưu nó  )

Cài đặt / phục hồi Grub2 bằng dòng lệnh :

#grub-install /dev/sda

Tuy nhiên bạn có thể gặp lỗi giống với tôi. Nếu xảy ra dùng lệnh này:

#grub-install –recheck /dev/sda

Bây giờ bạn có thể thoát khỏi chroot, umount hệ thống và khởi động lại máy :

#exit
$sudo umount /mnt/dev
$sudo umount /mnt/proc
$sudo umount /mnt
$sudo reboot

Sưu Tầm

 
Bạn nghĩ gì về bài viết này?

Posted by trên 11/12/2011 in Linux

 

Cách kiểm tra cổng nào mở trong Linux


Vì một lý do nào đó mà bạn cần kiểm tra một hoặc nhiều cổng trên hệ thống của bạn có mở hay không. Những ví dụ dưới đây sẽ chỉ rõ cách kiểm tra cổng mở trên Linux.

“Cách kiểm tra cổng mở trong Linux”

Cách  1:
Kiểm tra tập tin /etc/services

planetmy:/ # cat /etc/services | grep xxx (xxx = số cổng)

Nếu sau khi gõ lệnh mà không có gì xảy ra nghĩa là không có cổng nào được cấu hình phù hợp với số cổng mà bạn định kiểm tra. Ví dụ cổng SSH/22, thì bạn có thể nhìn thấy như sau:

ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp # SSH Remote Login Protocol

Cách 2:
Sử dụng lệnh netstat – In ra số kết nối mạng, bảng định tuyến, thống kê các giao tiếp..vv.

planetmy:/ # netstat -nan | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7110/sshd

Nếu trên màn hình hiển thị ‘LISTEN’, nghĩ là cổng cần kiểm tra đang mở.

Cách 3:
Dùng lệnh lsof – liệt kê các tập tin đang mở

planetmy:/ # lsof -i -n -P|grep 631
cupsd 17934 lp 0u IPv4 56540196 TCP *:631 (LISTEN)
cupsd 17934 lp 2u IPv4 56540197 UDP *:631

 

Cách 4:
Dùng lệnh nmap – Công cụ kiểm tra mạng và rà soát bảo mật

planetmy:/ # nmap -sS -O 192.168.1.2
Starting nmap 3.50 ( http://www.insecure.org/nmap/ ) at 2008-09-12 10:13 GMT
Interesting ports on 192.168.1.2:
(The 1655 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
427/tcp open svrloc
631/tcp open ipp
Device type: general purpose
Running: Linux 2.4.X|2.5.X
OS details: Linux Kernel 2.4.0 – 2.5.20, Linux Kernel 2.4.18 – 2.5.70 (X86)
Nmap run completed — 1 IP address (1 host up) scanned in 4.146 seconds

Nếu màn hình hiển thị tương tự như trên nghĩa là dịch vụ SSH đang chạy trên cổng 22.

Cách  5:
Dùng lệnh telnet – giao tiếp người dùng với giao thức TELNET

planetmy:/ # telnet 192.168.1.2 22
Trying 192.168.1.2…
Connected to 192.168.1.2.
Escape character is ‘^]’.
SSH-1.99-OpenSSH_4.2

Nếu màn hình hiển thị như trên nghĩa là cổng dịch vụ SSH là 22 đang mở

planetmy:/ # telnet 192.168.1.2 122
Trying 192.168.1.2…
telnet: connect to address 192.168.1.2: Connection refused

Nếu màn hình hiển thị như trên nghĩa là cổng 122 đang đóng.

 
Bạn nghĩ gì về bài viết này?

Posted by trên 11/12/2011 in Linux

 

Các cắt và ghép file trong Linux/Ubuntu


Bạn tải các file trên mạng về các chúng có phần mở rộng là .001 .002 .003. Bạn có biết cách ghép chúng lại chứ ? Trong bài viết này chúng tôi sẽ hướng dẫn bạn cách ghép và chia các file trong linux/ubuntu.

split_join_file

Sau đây là cách ghép và chia các file

Cách ghép các file:

Bạn có thể dùng lệnh cat hoặc tải công cụ lxsplit.

Vào thư mục chứa các file đã bị cắt nhỏ ( các file có phần mở rộng như .001 .002) và đánh lệnh sau:

$cat file.avi.001 file.avi.002 > file.avi

trong đó: file.avi.001 và file.avi.002 là các file bị chia nhỏ, file.avi là tập tin sau khi đã ghép các file 001 và 002 lại.

hoặc

tải và sử dụng công cụ lxsplit (có cả bản cài từ tập tin .deb) , vào thư mục chứa các tập tin bị chia nhỏ và đánh lệnh :

$lxsplit -j file.avi.001

Cách chia các file:

Ví dụ bạn chia file của bạn thành các file nhỏ mỗi file có dung lượng 99M bằng công cụ lxsplit :

$lxsplit -s file.avi 99M

Lưu ý : Ngoài lxsplit còn có công cụ HJsplit dùng để chia các file. Tuy nhiên nó không tốt bằng lxsplit.

 
Bạn nghĩ gì về bài viết này?

Posted by trên 11/12/2011 in Linux

 

Apache Web Server Tutorial for Linux


Introduction

The Apache Web Server is one of the most popular open-source HTTP Servers that exists today. It’s a powerful, secure, and fully featured web server that can be found hosting anything from personal web sites to corporate domains. If you have a DSL or Cable connection with a static IP then you can use the Apache web server to host your web site (as long as your ISP doesn’t have a problem with you running a server on their network). This tutorial will teach you how to set up your own Apache web server on Linux so you can host your own web sites either at home or work. You’ll learn how to install the Apache HTP Server with SSL and PHP support, use chkconfig to set Apache to auto-start on boot, edit the Apache httpd.conf configuration file for your server settings, create a directory structure for your web site, create the VirtualHost configuration file for your web site, start the Apache service, verify your site is working, go over the init script options, and finally show you some additional options and settings for Apache such as graceful restarts, htaccess usage, user name and password directory protection, and custom error pages. The two things I won’t be covering are setting up DNS for your domain and configuring your firewall to open ports 80 and 443 for HTTP and SSL respectively, however you can read my Bind DNS tutorial and iptables firewall tutorial for information on how to do it. I’ll be using CentOS 4.2 and Apache 2.x will be installed using yum instead of source. Let’s get started.

Installing Apache HTTP Web Server

We’ll be using yum to download and install the Apache RPM’s from the CentOS repository. Apache shouldn’t be loaded on your server unless you selected it during the operating system installation process. If you know you have Apache installed then you can skip this section, but if it’s not or you’re not sure then you should perform the following tests to see if the Apache web server is on your system. To do this we’ll use the which command to look for the httpd binary in the environment variable PATH.

which httpd

[graphical representation of executing 'which httpd']

If you see something similar to the above image then the Apache binary doesn’t seem to be found on the server. Our next step is to install Apache by using yum. Issue the next command.

yum install httpd

[graphical representation of executing 'yum install httpd']

Two RPM packages will be downloaded from the CentOS repository (httpd-2.0.52-22.ent.centos4.i386.rpm and httpd-suexec-2.0.52-22.ent.centos4.i386.rpm) and installed automatically. If everything goes well you should now have the Apache web server on your system. You might also want to load the Apache documentation so you’ll have the man pages available. This is optional but highly recommended. Use yum again and download the Apache manual (yum install httpd-manual). Next we’ll use yum to install mod_ssl for Secure Sockets Layer (SSL) support.

Installing mod_ssl for Secure Sockets Layer (SSL) Support

Secure Sockets Layer, also known as SSL for short, provides encrypted commnications between hosts. SSL can be found in e-commerce web sites and any other site that requires sensitive information being transmitted protected from eavesdropping. In a nutshell, the hosts negotiate a protocol they both can understand and then switch to secure communications. The data passed back and forth between the hosts is encrypted with a 128-bit key (hence 128-bit SSL). In a typical SSL setup, the web server has SSL support enabled and a certificate that verifies the company’s identity. These certificates are initially generated as Certificate Signing Requests (CSR) by the server’s administrator. The CSR is then signed by a third party, a Certificate Authority (CA), that validates the company’s identity and makes the CSR into a full certificate. There are many CA’s like VeriSignThawteGeoTrustInstantSSL (aka The Comodo Group), FreeSSL, and many others that sign CSR’s. Prices vary from company to company, but as long as they support the mainstream browsers you shouldn’t run into any problems. If you’d like to learn more about Secure Sockets Layer then you should check out the Wikipedia Transport Layer Security page.

You may be wondering where does mod_ssl fits into all of this? On Linux and Unix distributions, there is a software package called OpenSSL that performs all the cryptography and mod_ssl is the Apache interface to OpenSSL. It’s mod_ssl that makes it possible for Apache to have SSL capability. We’ll now install the mod_ssl RPM (mod_ssl-2.0.52-22.ent.centos4.i386.rpm) for Apache using yum.

yum install mod_ssl

[graphical representation of executing 'yum install mod_ssl']

mod_ssl should now be installed. If you didnt have OpenSSL installed then it should have been picked up as a dependency and was installed as well. We have one more package to install and that’s the PHP scripting language.

Installing PHP for Dynamic Web Pages

PHP is a scripting language for creating dynamic web pages. PHP allows you to include code in your web pages to be processed server-side and the resulting HTML is sent to the user’s web browser. With PHP you can add database access, read and write files to the server’s filesystem, generate dynamic graphics like graphs and security image codes, and create security control mechanisms for fencing off parts of your web site. PHP has many other uses and that’s what makes it a powerful tool for creating dynamic web pages.

If you’re not a programmer or will only he hosting a static HTML web pages, then PHP won’t be of any use to you. However, if you want to learn PHP then you should install the PHP modules for Apache. We’ll use yum one last time to install PHP on our server. There are many PHP RPM modules, one being the actually binary and modules for Apache and the rest are support features for MySQL, XML, ODBC, and others to tie those subsystems into PHP. It’s a good idea to install all the PHP modules since you never know what you’ll need now or in the future. Now we’ll use yum to install PHP.

yum install php*

[graphical representation of executing 'yum install php*']

As you can see above, we used a wildcard to tell yum to install anything starting with the word ‘php’. On my server yum downloaded and installed fifteen packages, however yours may be different depending on its configuration. Now that PHP is installed we can move on to setting the Apache service to automatically start on bootup or in the event of a reboot.

Setting Apache to Start on Bootup with chkconfig

The Apache web server will need to be set to autostart when the server boots. The Apache RPM didn’t set this up for us so we’ll have to do it ourselves using chkconfig (Note: you can also use setup to turn on the Apache service). We’re going to have Apache start on run levels 2, 3, and 5.

chkconfig –level 235 httpd on
chkconfig –list httpd

[graphical representation of executing 'chkconfig --level 235 httpd on']

The second chkconfig command lists the run levels Apache is configured to start on. If you don’t have X Windows installed then you may want to omit run level 5 (Multi-User Mode – boot up in X Windows). To learn more about Linux Run Levels you may want to check out this page on NetworkClue. Now that Apache is installed and set to start up we’ll move on to configuring the Apache web server by editing httpd.conf, the Apache server configuration file.

Configuring Apache Server Settings (httpd.conf)

Apache’s main configuration file is called httpd.conf and is located in /etc/httpd/conf/. The default httpd.conf will work without any changes, however we want to customize Apache a little bit. Our main focus is to setup the use of Virtual Hosts so we can run as many web sites as we want using a single IP address. Also, we want to simplify the management of our Virtual Hosts without cluttering httpd.conf with our entries. Before we get to any of that we will first configure our Apache web server.

I will make the assumption that you have a single WAN based IP address. For this example I’m using 192.168.1.210 with a hostname of node2.centos (yes, it’s a LAN IP but pretend it’s WAN). You can use your IP or hostname from /etc/hosts, but I suggest using your hostname because if you ever change IP’s all you have to do is update /etc/hosts with the new address. If you do use an IP then you’ll have to change all instances of it in httpd.conf. If you don’t know what your IP address is or never set up /etc/hosts, you can find your address by using ifconfig (look at the number to the right of ‘inet addr:’).

We’ll start with opening httpd.conf in the nano text editor, but before that you should make a copy of your existing httpd.conf file. If you encounter any problems you’ll still have the original to fall back to.

cd /etc/httpd/conf
cp httpd.conf httpd.conf.old
nano httpd.conf

Apache’s httpd.conf is filled with many helpful comments to tell you what each configuration directive does. Scroll down to line 133 as shown in the picture below. FYI, if you ever want to know what line number you’re on in nano, press CTRL-C and nano will show you. We’re looking for the line that says ‘Listen 80’. We won’t be changing this directive since we want Apache listen on all IP addresses set up on the server. I wanted to show you where to change it if you needed to bind Apache to only one address.

[graphical representation of executing 'cd /etc/httpd/conf','cp httpd.conf httpd.conf.old','nano httpd.conf']

Move on down to line number 235 where it says ‘ServerAdmin root@localhost’. The Apache ServerAdmin directive is for the administrator’s email address of the server. End users encountering any problems with the server would use this email address to notify the sysadmin. Comment out the existing ServerAdmin line with a pound symbol and enter a new line below with your email address. For this example I used admin@node2.centos.

#ServerAdmin root@localhost
ServerAdmin admin@your-domain.com

[graphical representation of adding 'ServerAdmin admin@your-domain.com' to httpd.conf]

Below the ServerAdmin directive is ServerName. The Apache ServerName directive is for Apache to identify itself which is typically the hostname of the server. You’ll want to specify your hostname or IP address instead of a valid DNS name especially if you’re hosting many web sites. There are some people that may disagree with this method but I think it’s better to keep all the generic information in httpd.conf and use specifics in the VirtualHost configuration files. Add a new blank line below the commented ServerName directive and add your hostname or IP. For this server I used my hostname node2.centos.

#ServerName new.host.name:80
ServerName yourhostname

[graphical representation of adding 'ServerName yourhostname' to httpd.conf]

The next directive we’ll edit is very close to the end of the file. Scroll all the way down to line number 1005 (tip: use the Page Down key on your keyboard) and look for ‘#NameVirtualHost *:80’. The NameVirtualHost directive tells Apache that we want to use name-based virtual hosting, or in simpler terms, a bunch of web sites all using the same IP address. Virtual hosting is made possible because when a web browser goes to a site, for example http://www.xenocafe.com, the web site address is passed as part of the HTTP header (Host: http://www.xenocafe.com). This allows Apache to distinguish between different hosts sharing the same IP address. Add a couple blank lines underneath ‘#NameVirtualHost *:80’ and on the line right below put NameVirtualHost and your hostname or IP address followed by a :80. The ‘:80’ means we’re using name-based virtual hosting for the HTTP protocol. SSL will be configured through VirtualHost configuration files due to its nature. You’ll learn why when we create our virtual hosts. For this server I used my hostname node2.centos.

#NameVirtualHost *:80
NameVirtualHost yourhostname:80

[graphical representation of adding 'NameVirtualHost yourhostname:80' to httpd.conf]

We’re almost done. The last thing we need to do is create a default virtual host to respond to requests when someone vists our IP address and not our domain name. You may or may not want to add this virtual host and it’s totally up to you, but I personally don’t want anyone going directly to my IP address. I prefer they visit my web site by name only. A VirtualHost entry can have many directives which I’ll explain later, but what you need to know for now is the example I provide responds by IP address visits. At the very end of the file there is a line that instructs Apache to load any configuration files found in the /etc/httpd/conf/vhosts/ directory (which we’ll create later). This is my way of keeping the virtual hosts separate from httpd.conf and most importantly, making hosts easier to manage.

<VirtualHost yourhostname:80> ServerAdmin you@your-domain.com ServerName your_ip_address DocumentRoot /www ErrorLog logs/error_log CustomLog logs/access_log combined </VirtualHost> # include VirtualHosts config files Include conf/vhosts/*.conf

[graphical representation of adding an IP based virtual host to httpd.conf and 'Include conf/vhosts/*.conf']

We’re done editing httpd.conf. Let’s save our changes (CTRL-O) and exit nano (CTRL-X). Now we’ll move on to creating a web site directory structure and user account for SSH access and S/FTP file uploads.

Creating the Web Site Directory Structure

Our web site directory schema should be simple yet structured. The common approach would be to use /home as the root but we won’t be doing that. Our web site parent root will be /www and from within it create a directory for each domain we’ll be hosting. Within each domain directory there will be a set of common directories (html, html/cgi-bin, databases, and logs). Reading what I wrote doesn’t make much sense so here it is visually. For this example and the rest of the tutorial, we’ll say we acquired the domain your-domain.com and will be configuring our server for it.

/www (root for all hosted domains) /www/your-domain (domain directory) /www/your-domain/html (directory for your web site files) /www/your-domain/html/cgi-bin (CGI directory for executing Perl scripts) /www/your-domain/databases (databases for this web site stored on a per site basis) /www/your-domain/logs (web site access and error logs are stored here)

The databases directory is optional. If you read my mapping mysql databases tutorial then you can migrate your databases outside the default /var/lib/mysql into the databases directory. This will allow you to store your databases on a per site basis in the web site’s home directory.

Creating the Directory Root (one-time only)

We’ll start creating our web site directory structure by making /www. Creating this directory is a one-time process and will be home to all our domains we’re hosting (any domains we add will be stored in the /www directory).

mkdir /www
chown root.root /www

[graphical representation of executing 'mkdir /www','chown root.root /www']

After we create the directory we chown it to uid:root gid:root.

Creating Web Site Domain Directories

For each web site you’re hosting you’ll create a directory structure within the parent /www. The directory should be named the same as the domain name with or without the TLD (.com, .net, etc). I’ll let you decide which way you want your directories to be named, but I tend to prefer them without the TLD. Now we’ll create our domain’s directories.

cd /www
mkdir your-domain
cd your-domain
mkdir html
mkdir html/cgi-bin
mkdir databases
mkdir logs

[graphical representation of executing 'cd /www','mkdir your-domain','cd your-domain','mkdir html','mkdir html/cgi-bin','mkdir darabases','mkdir logs']

Now that the directory structure is created we’ll need to add a system user that owns the directory base and can log in to upload files.

Adding a Linux User Account for the Web Site

The user account will be able to FTP or Secure FTP (SFTP) into the server to upload and download web site content files like HTML, CGI scripts, and PHP pages. This user account will have ownership of the domain’s directory base and be locked into it. The user name we’ll assign will be the same as the domain name (your-domain) to make it easier to distinguish between it and the other Linux accounts, however you can use any name you want for your account. One thing to keep in mind is when you create this account you’ll have to make a choice whether this account will be granted SSH access. If you want to disallow SSH access then you’ll need to change the shell to /sbin/nologin. SSH login attempts will fail when you use /sbin/nologin as the account’s shell (valid login credentials will be accepted but the connection will be terminated). To create the web site system account, use one of the following commands.

useradd -d /www/your-domain/ domain_user
or
useradd -d /www/your-domain/ -s /sbin/nologin domain_user

[graphical representation of executing 'useradd -d /www/your-domain/ -s /sbin/nologin/ your-domain','cat /etc/passwd | grep -i your-domain']

The first command will set the account’s home directory (-d path) to /www/your-domain and creates a new system account with the user name of domain_user (last parameter of the command). The shell will be set to the default, which is typically bash unless you changed it. The second command is identical to the first except that the shell (-s shell) is set to /sbin/nologin to prevent SSH logins.

After the account has been created you’ll need to set a password using the passwd command.

passwd domain_user
[enter password]
[confirm password]

[graphical representation of executing 'passwd domain_user']

Now that the system account is ready we’ll move on to changing the directory base ownership.

Changing Web Site Directory Ownership & Permissions

We’ve created the directories, added the account, the only thing left to do is change the ownership of the directories to the new user account. Right now the directories are owned by root and if you were to try using FTP to upload some files you’d get the dreaded Permission Denied error. To change ownership of the domain directory and all its subdirectories we’ll use the chown command with the -R flag for recursive.

cd /www
chown -R domain_user:domain_user your-domain

[graphical representation of executing 'cd /www','chown -R domain_user:domain_user your-domain']

If you created the databases directory then you’ll need to change the owner to the mysql user otherwise MySQL won’t be able to write to the database files. All directories, subdirectories, and files starting from databases should be owned by the mysql user (or whatever user account you have the MySQL server running as).

cd your-domain
chown -R mysql:mysql databases

[graphical representation of executing 'cd your-domain','chown -R mysql:mysql databases','ls -la']

That’s it for creating our directory structure. If you have more domains to add then repeat the steps we went through except for the first one of creating the /www directory root. Next we’ll create the VirtualHost configuration files to let Apache know the details of our web site.

Creating VirtualHost Configuration Files

A VirtualHost configuration file tells Apache the specifics about your web site. It contains information like what IP and port number your site runs on, the server name and any aliases, the local filesystem path (or document root) of your web pages, location of your cgi-bin, file names and paths of your access and error logs, custom error documents for HTTP errors like 404 File Not Found, and can have many other items. For every web site you want Apache to host you must create a virtual host configuration. You’ve already gotten a taste of a virtual host config when we added the default VirtualHost for handling IP address requests in httpd.conf, so what we’re going to be doing now is nothing new. I’m now going to show you an easy way of managing all your virtual hosts.

The VirtualHost Configuration File Directory (/etc/httpd/conf/vhosts)

When I first learned Linux from a friend some years ago, he showed me how to configure Apache so I could set up my web server. I looked at his httpd.conf and he had all his virtual hosts in there, so I figured there was nothing unusual about that as I’m sure there are many people that did the same thing. He hosted a lot of domains for friends, his business, and his own stuff, and I noticed that trying to locate a web site in his massive httpd.conf file was nothing short of a headache. Although I didn’t doubt his knowledge of Apache I kept thinking there had to be an easier way of managing virtual hosts. Through reading the online Apache Web Server documentation I came across the Include directive.

The Include directive, much like in C/C++, PHP, and other languages, allows you to insert the contents of another file into the calling file. However, in the case of Apache, the contents of a single file or of several files located in a directory that match the Include statement would be included. If you remember when we were editing httpd.conf, at the very end we added the line ‘Include conf/vhosts/*.conf’. That line tells Apache to look in /etc/httpd/conf/vhosts for any *.conf files and include their contents as part of httpd.conf. This allows us to separate out our VirtualHost definitions as their own unique files, on a per domain basis, from the main httpd.conf file. This makes administration easy for several reasons. Finding a virtual host is easy because all you do is look in the vhosts directory for its file, disabling a domain is as simple as renaming the file so it doesn’t end in .conf, and adding new domains is accomplished by creating a new virtual host file (copy an exisiting file and edit the changes). Include makes virtual host management a piece of cake.

We’ll now create the /etc/httpd/conf/vhosts directory (this is a one-time process).

cd /etc/httpd/conf
mkdir vhosts
cd vhosts

[graphical representation of executing 'cd /etc/httpd/conf','mkdir vhosts','cd vhosts']

We can start creating VirtualHost configuration files now. I’ll show you how to create one for the HTTP protocol as well as one for Secure Sockets Layer (SSL).

Creating a HTTP Virtual Host

When creating virtual host config files we should use a good naming convention that’s as descriptive as possible. What’s worked for me is the format of host.domain.tld.port.conf or in simple terms your-domain.com.80.conf. You may have noticed I excluded host from the file name. When you visit a domain such as redhat.com, or http://www.redhat.com, they most likely take you to the same web site, so www as a host can be excluded. The only time I use host as part of the file name is when I am adding a subdomain such as forum.example.com or blog.example.com and so forth. Let’s create the HTTP virtual host file.

nano your-domain.com.80.conf

Type in or copy/paste the configuration data below. Be sure to replace yourhostname with your system’s hostname or IP address, ServerAdmin with your email address, ServerName and ServerAlias with your real domain name, and your-domain with the directory name you created earlier for your web site. When you’re done, save your changes (CTRL-O) and exit nano (CTRL-X).

<VirtualHost yourhostname:80> ServerAdmin admin@your-domain.com ServerName your-domain.com ServerAlias www.your-domain.com DocumentRoot /www/your-domain/html ScriptAlias /cgi-bin/ /www/your-domain/html/cgi-bin/ ErrorLog /www/your-domain/logs/error_log CustomLog /www/your-domain/logs/access_log combined </VirtualHost>

[graphical representation of a name-based virtual host for http]

I’ll clarify what each line does in the virtual host configuration file between the <VirtualHost></VirtualHost> tags.

  • ServerAdmin is used to specify the server administrator’s email address. User’s will see this address on server generated error pages.
  • ServerName is the name of the server or DNS name. Apache will match this name against the HTTP host header sent by the user’s browser. If it’s a match then this is the configuration data used to process the request.
  • ServerAlias is identical to ServerName except ServerName is used once and ServerAlias can be used many times. If your web site will respond to more than one DNS name, make sure you use one ServerName directive and all other names are specified using ServerAlias. DNS names can be separated by commas for a single ServerAlias directive (ServerAlias dns_name1,dns_name2,dns_name3) or you can use many ServerAlias directives for each DNS name placed on a line each their own.
  • DocumentRoot defines the file system path to where the web page files are located. This is the same directory where you will place your HTML, PHP, and image files. For our setup, this is the /www/your-domain/html directory.
  • ScriptAlias defines the directory for executing cgi scripts, commonly known as cgi-bin. It takes two parameters with the first being the cgi-bin directory from your web site root path and the second being the full physical directory path on the filesystem. You can have as many cgi-cin directories as you need and they don’t need to be called cgi-bin.
  • ErrorLog defines the file to log any errors Apache encounters. Errors can include PHP script failures and files that don’t exist.
  • CustomLog defines the file to log any requests to the server. Requests include accessing pages, images, and other files like robots.txt. The second parameter sets the log entry format. We use the combined format since it is used by many Web Server Log Analysis scripts like Awstats.

You should read the online Apache 2.0 documentation for more information on these directives as well as other Apache web server features.

Creating a SSL Virtual Host

When we installed mod_ssl, a file called ssl.conf was written to /etc/httpd/conf.d that contains basic SSL configuration information. We’re going to use this as our template for adding a SSL based virtual host. What we’ll do is make a copy of it to our vhosts directory and remove the non-website specific information since it should only be loaded once by Apache. This non-website specific information pertains to loading the mod_ssl Apache module among other things while everything else in the file relates to configuring the SSL web site (what we’re interested in).

Let’s make a copy of ssl.conf to the vhosts directory which you should still be in (cd /etc/httpd/conf/vhosts). Following the same format for our virtual host config files (host.domain.tld.port.conf) as before, we will be naming our SSL virtual host file as your-domain.com.443.conf. The port number for SSL is 443 so we’ll use that as opposed to port 80 when we created the HTTP VirtualHost. After that we’l open the config file in nano so we can begin editing it.

cp /etc/httpd/conf.d/ssl.conf ./your-domain.com.443.conf
nano your-domain.com.443.conf

[graphical representation of executing 'cp /etc/httpd/conf.d/ssl.conf ./your-domain.com.443.conf','nano your-domain.com.443.conf']

Now comes the fun part. We need to delete a good portion of this file starting from the top and all the way down to the part that says ‘### SSL Virtual Host Context’ (roughly 83 lines total). Instead of using the DEL key, you can use CTRL-Kto cut the text line by line in nano. Starting from the top of the file, remove the lines of text until you reach the blank line above ‘### SSL Virtual Host Context’. Your file should look like the image below when you’re done.

[graphical representation of editing ssl virtual host config file]

Next we’ll edit the default web site specific directives to mold them to our web site. They’re actually the same directives we used when creating our HTTP virtual host, so you can see how easy this will be. I should point out that we have been using our hostname for the VirtualHost tag, but in the case of SSL I’d advise against unless you want to set up each host and their binding IP address in /etc/hosts (it’s a good idea if you have many IP’s). Secure Sockets Layer doesn’t work at the Application layer of the OSI model like HTTP does, so the Host part of the HTTP header doesn’t apply. So in regards to name-based virtual hosting with SSL, it’s non-existent. Replace ‘_default_’ with your IP address when editing your-domain.com.443.conf. The same rules apply as before with ServerName, ServerAlias, and the your-domain directory.

Here is a stripped down version of our SSL VirtualHost file minus the comments.

<VirtualHost yourip:443> DocumentRoot "/www/your-domain/html" ServerName your-domain.com ServerAlias www.your-domain.com ScriptAlias /cgi-bin/ /www/your-domain/html/cgi-bin/ ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>

[graphical representation of revised ssl virtual host config file]

This configuration uses mod_ssl’s default SSL certificate and private key for encrypted communications. It’s not signed by a trusted authority nor does it have your personal or company credentials. Your web browser will complain about the certificate and throw up a dialog box when you visit your web site (unless you instruct the browser to save the certificate). If you’re thinking about doing e-commerce then you’ll need to invest in a real SSL certificate because nothing kills a customer’s confidence level like a warning screen while making a purchase online. What you would do is generate your Certificate Signing Request (CSR) on your server and then send the data to a Certificate Authority (CA) like Verisign. Once you pay the fees and prove your identity, they’ll sign your certificate to make it legitimate and then you can replace the values of SSLCertificateFile and SSLCertificateKeyFile with your files (in the case of Comodo SSL, you’d have to set the SSLCACertificateFile directive with their Bundle Certificate file as well). On the other hand, if you’re setting up SSL for your own personal use or for an intranet at work, self-signed SSL certificates work just fine. There is no difference between legitimate and self-signed certs except for the CA taking your money and stamping it with their sign of approval. The encryption protection is the same either way.

Save your changes (CTRL-O) to your-domain.com.443.conf and exit nano (CTRL-X). I don’t have a tutorial up for generating SSL certificates using OpenSSL, but I will soon. You can check Google for a site that details those instructions or wait for mine to be posted. Also, you should read up on the Apache SSL/TLS Encryption documention for more information about the directives and virtual host configurations for Apache SSL.

Starting Apache and Viewing the Web Site

Apache is set up, our directories have been created, and the VirtualHost config files are done, now is the time to start the Apache web server and see if everything worked. It’s taken us a long time to get here and if all goes well then Apache should start without any errors and your HTTP and SSL web sites should be available.

service httpd start

[graphical representation of executing 'service httpd start','nmap localhost']

If Apache failed to start for you, you should double check httpd.conf, your directories, and your virtual host configs for any typos or syntax mistakes. Apache can be cryptic at times when errors occur. You can verify virtual host files usinghttpd -S (or for older an older Apache version use httpd -t -D DUMP_VHOSTS). In the next section I’ll show you some tips for tracking down Apache errors.

httpd -S

[graphical representation of executing 'httpd -S']

With the Apache web server running you should have already opened ports 80 and 443 on your firewall so you can connect to Apache with a web browser to view your web site. Open up your favorite browser and navigate to your site. You should get the default CentOS Apache 2 Test Page unless you have already logged in and uploaded your content via S/FTP.

[graphical representation of visiting http virtual host in FireFox]

Standard HTTP works so how about our SSL version of the web site? Change the http:// to https:// in the address bar of your browser. You should be prompted by the security dialog I mentioned before. This is just a warning about your self-signed SSL certificate not being trusted by your browser.

[graphical representation of FireFox warning about self-signed certificate]

Click OK in FireFox or Yes in Internet Explorer to continue to the secure web site.

[graphical representation of visiting ssl virtual host in FireFox]

As you can see up in the FireFox address bar, there is a little yellow padlock icon that informs us that we are on a secure web site. All communications with this site will be 128-bit encrypted. At this time you may want to log in to your web site via Secure FTP (SFTP) or regular FTP to upload your web site files to the html directory using the system account you created earlier. You’re done! You’ve successfully configured the Apache web server on Linux.

Other Things to Know for Using Apache

Here are some common questions that users new to the Apache HTTP Server may ask (well, the questions I could think of at the time).

How can I restart Apache so that it sees the changes I made to httpd.conf and/or virtual hosts?
The Apache init script (/etc/init.d/httpd) accepts a number of options, four of the important ones being start, stop, restart, and graceful.

  • start tells the init script to start the Apache process and spawns the child processes.
  • stop tells the init script to terminate the Apache’s running process and in turn kills off the child processes. Any existing connections to the server will be terminated.
  • restart tells the init script to stop the Apache process and start it back up. Any changes to httpd.conf or virtual hosts will be read back in. Any existing connections will be terminated, so if users are in the middle of a download the transfers will stop.
  • graceful tells the init script to alert Apache to reload httpd.conf and virtual hosts. Existing connections will not be terminated but changes won’t be noticed until a new connection is established (pulling up another page or file from the server). Requests are handled by Apache child workers.

There are two ways of using these options. You can use the init script or the service command. To use the init script, enter this on the prompt /etc/init.d/httpd option, such as to restart the Apache server use /etc/init.d/httpd restart from the command line. To use the service command, which is what I showed when we started the Apache service, it’s service httpd option, such as to do a graceful restart use service httpd graceful from the command line.

Apache won’t start. It keeps saying FAILED when I try and start the service. What can I do to fix it?
This is probably one of the most difficult tasks to do since sometimes Apache doesn’t give an error or it’s too cryptic when it does. Errors usually occur when something has changed, either there is a problem with httpd.conf or your virtual hosts. One of my friends enountered an Apache failure and it turned out to be one of its modules got deleted somehow. So the best course of action is to make a copy of your httpd.conf and virtual hosts before you ever change them. If you mess them up you can always replace the old copy to get Apache back up and running.

  • To try and troubleshoot Apache failures, you should take a look in syslog (tail -n 100 /var/log/messages). See if there are any messages from the httpd process, and if so, does it give you an idea of what may be wrong? I’ve been able to track down errors by doing this one thing. Get the error and look for it on Google. It’s unlikely you’re the first person to experience it.
  • If it’s a config file error, you can test your httpd.conf and virtual hosts with httpd -S (or on older Apache versions use httpd -t -D DUMP_VHOSTS). If there is a problem with your files, Apache will tell you when you run the test.
  • Another useful hint is to try starting Apache in debug mode using httpd -e debug and see what it prints to the screen. If there is an error it should be shown to you. Once again, if you see the error, use Google to find an answer.
  • If all else fails, there is trial and error. Move your httpd.conf and virtual host files to another directory and reinstall the Apache RPM’s. Once Apache is back up with default settings, start making changes to the new httpd.conf and virtual hosts from the old files. Each time you make a change, save your changes and restart Apache. Like I said, it’s trial and error and you may be able to track down the problem.

Can I use Active Server Pages (ASP) or ColdFusion (CFML) with Apache on Linux?
Why would you want to? Those are weak and useless languages (my opinion of course). You should use PHP instead, however, if you have the need to use them, there are ports from third party companies that let you use those languages with Apache on Linux. For Active Server Pages, Sun Microsystems has a product called Sun ONE Active Server Pages (a former ChiliSoft product) that let’s you use ASP on Linux. They have a free trial version you can download and try out.ColdFusion is no longer a Macromedia product and is now maintained by Adobe Systems. You can download a free trial version after you register for an account.

[more to be added]

Conclusion

I think I may have went overboard with all the information in this Apache tutorial because it took me four days off and on to prepare this document. I tried to be as thorough as possible but I realize I may have missed some of the little things like in the Q&A section above. Nevertheless, you now have the skills to configure Apache from the ground up from editing httpd.conf, creating a structured web site directory schema, and adding HTTP and SSL virtual hosts. You also learned a little bit about Secure Sockets Layer and SSL web server certificates. In case you didn’t know, if you run into problems or ever need any help you can always post your questions to the Linux category of the forum and I will try and respond to them as as possible.

 
2 phản hồi

Posted by trên 10/12/2011 in Fedora + CentOs

 

Tmux on linux


sau khi cài Tmux xong,các bạn có thể cấu hình nó bằng dòng lệnh sau:

nano  ~/.tmux.conf

và copy nguyên các dòng dưới đây,past vào file tmux.conf

  1. # Change the prefix key (screen friendly).
  2. set-option -g prefix C-a
  3. unbind-key C-b
  4. bind-key C-a send-prefix
  5. # Default global options.
  6. set-option -g bell-action none
  7. set-option -g default-terminal “screen-256color”
  8. set-option -g mouse-select-pane on
  9. set-option -g status-bg green
  10. set-option -g status-keys vi
  11. set-option -g status-right-length 60
  12. # Default global window options
  13. set-window-option -g mode-keys vi
  14. set-window-option -g mode-mouse on
  15. set-window-option -g utf8 on
  16. # Keys to switch session.
  17. bind-key q switchc -t0
  18. bind-key w switchc -t1
  19. bind-key e switchc -t2
  20. # Other key bindings.
  21. bind-key i choose-window
  22. bind-key m setw monitor-activity
  23. bind-key y setw force-width 81
  24. bind-key u setw force-width 0
  25. bind-key D detach \; lock
  26. bind-key N neww \; splitw -d
  27. # statusbar ————————————————————–
  28. # Show messages and notifications for 2 seconds.
  29. set-option -g display-time 2000
  30. # Refresh the status bar every 1 second.
  31. set-option -g status-interval 1000
  32. # The status bar itself.
  33. set-option -g status-left “[#S]”
  34. set-option -g status-right “#(uptime)”
  35. # default statusbar colors
  36. set-option -g status-fg black
  37. set-option -g status-bg white
  38. set-option -g status-attr default
  39. # default window title colors
  40. set-window-option -g window-status-fg white
  41. set-window-option -g window-status-bg black
  42. set-window-option -g window-status-attr dim
  43. # active window title colors
  44. set-window-option -g window-status-current-fg white
  45. set-window-option -g window-status-current-bg black
  46. set-window-option -g window-status-current-attr default
  47. # command/message line colors
  48. set-option -g message-fg white
  49. set-option -g message-bg black
  50. set-option -g message-attr default

sau đó lưu file trên lại

Sau khi cấu hình xong,thì mặc định chuyển từ Ctrl-b sang Ctrl-a,

và các bạn có thể dùng như thường rồi.

ok!

 
Bạn nghĩ gì về bài viết này?

Posted by trên 10/12/2011 in Linux

 

Nhãn: