VnLamp

Go Back   VnLamp > Khu vực Training > Linux Advance > Apache Web server

Trả lời
 
LinkBack Ðiều Chỉnh Xếp Bài
Thiết lập webserver trên Linux
Old
  (#1 (permalink))
 
Status: Offline
Posts: 601
Tham gia: Dec 2007
^..^
 
hautp's Avatar
Default Thiết lập webserver trên Linux - 28-02-2008, 22:28 28-02-2008

Để bắt đầu cài đặt webserver thì bạn cần download Mysql-4.1.21, Apache_1.3.37 , Php-5.1.4

Bài viết này cũng là nguồn tham khảo khi anh em đang sử dụng Apache 2.X, Mysql 4.1 mà muốn quay lại sử dụng Apache 1.X, MySQL 4.0 . Ở điểm nào sai hay không hiểu thì vui lòng mở một topic mới chúng ta cùng bàn luận .

Anh em có thể ra Google để tìm link download những thứ mà mình cần

Cài đặt Mysql-4.1.21
Đầu tiên download Mysql-4.1.21 và sử dụng tar để giải nén .

[root@localhost ~]# rpm -qa | grep -i MYSQL
perl-DBD-MySQL-2.9007-1
mysqlclient10-3.23.58-6
mysql-4.1.11-2
libdbi-dbd-mysql-0.7.1-3
MySQL-python-1.2.0-1
mysql-server-4.1.11-2

Nếu những dòng trên xuất hiện thì bạn làm bước sau để xoá bỏ tất cả các gói cài đặt (package)

[root@localhost ~]# rpm -e mysql-4.1.11-2
[root@localhost ~]# rpm -e mysql-server-4.1.11-2

Sau khi bạn xoá các gói cài đặt Mysql xong, bạn sử dụng
[root@localhost ~]# ps aux | grep mysqld
root 5567 0.0 0.1 3824 768 pts/1 S+ 22:53 0:00 grep mysqld

Làm sạch các process (tiến trình)
[root@localhost ~]#killall mysqld

Tạo nhóm (nhóm này có tên là mysql)

[root@localhost ~]# groupadd mysql

Tạo tài khoản người dùng

[root@localhost ~]# useradd -g mysql mysql

Tiếp theo sử dụng trình vi để soạn thảo một script và đặt tên là config_mysql

CFLAGS="-O3"
CXX=gcc
CXXFLAGS="-O3 \
-mpentiumpro \
-mstack-align-double \
-felide-constructors \
-fno-exceptions -fno-rtti"
./configure \
--prefix=/usr/local/mysql \
--with-extra-charsets=complex \
--enable-thread-safe-client \
--enable-local-infile \
--enable-assembler \
--disable-shared \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static

Ở đoạn script này, khi cài đặt mysql xong thì đường dẫn chứa mysql sẽ là usr/local/mysql
Sau khi tạo xong script bạn chép nó vào thư mục chứa mã nguồn mysql ví dụ như /opt/mysql

Chạy script này bằng lệnh (chú ý CHMOD cho script này sang 755)

[root@localhost mysql-4.1.21]chmod 755 config_mysql
[root@localhost mysql-4.1.21]#./config_mysql
[root@localhost mysql-4.1.21]#make

Sau khi đợi cho nó kiểm tra lỗi xong, nếu không có lỗi xuất hiện . Bạn chạy tiếp lệnh sau

[root@localhost mysql-4.1.21]#make install
[root@localhost mysql-4.1.21]scripts/mysql_install_db
[root@localhost mysql-4.1.21]chown -R root /usr/local/mysql
[root@localhost mysql-4.1.21]chown -R mysql /usr/local/mysql/var
[root@localhost mysql-4.1.21]chgrp -R mysql /usr/local/mysql

Đến đây việc cài Mysql đã hoàn tất . Chạy tiếp để test MySQL

[root@localhost mysql-4.1.21]# /usr/local/mysql/bin/mysqladmin version
/usr/local/mysql/bin/mysqladmin Ver 8.41 Distrib 4.1.21, for pc-linux-gnu on i686
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version 4.1.21
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /tmp/mysql.sock
Uptime: 8 min 52 sec
Threads: 1 Questions: 1 Slow queries: 0 Opens: 11 Flush tables: 1 Open tables: 5 Queries per second avg: 0.002

Chú ý :
- Kiểm tra file mysql.sock có thể nó không tồn tại
- Kiểm tra file /etc/my.cnf và thay đổi đường dẫn chứa file mysql.sock

Để tạo password mới cho nó

[root@localhost mysql-4.1.21]# /usr/local/mysql/bin/mysqladmin -u root password root

Ở đây tôi đặt password là root để tiện việc tra cứu trên localhost (đừng sử dụng password như thế kẻo có ngày toi mạng)

Nếu bạn sử dụng trên domain thì có thể sử dụng

/usr/local/mysql/bin/mysqladmin -u root -h vietdown.org root vnlamp

vnlamp : là password mới nhất của tôi

Ok đến đây đã xong, bây giờ bạn muốn truy cập vào mysql thử xem

[root@localhost mysql-4.1.21]# mysql -u root -p
Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.1.21
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

Nếu màn hình như trên xuất hiện thì OK rồi đó bạn ah, ở đây bạn có thể tạo database, gán quyền truy cập đến database hay làm bất cứ cái gì mà mysql có . Tất cả đều có trong đây .

Cấu hình cho Apache 1.3.6
Tôi thử xem các dịch vụ đang chạy trên PC của mình có em nào mang tên là httpd hay không, tôi gõ lệnh :

root@localhost mysql-4.1.21]# chkconfig --list
httpd 0:off 1:off 2:on 3:off 4:off 5:off 6:off

Nhìn ở trên 0:o:ff 1:o:ff 2:o:n rồi cứ thế đến 6:o:ff này là gì vậy bà con ?
Đây gọi là runlevel đó mà , bà con tạm hiểu tiếng Việt cũng như tiếng Anh là mức hoạt động của hệ thống .
Trong *nix bao gồm 7 mức tính từ 0 cho đến 6 . Nó nằm trong /etc/rc.d/rc0 -> 6.d đó, bà con tìm hiểu phần này luôn nhé , nếu bà con không hiểu thì mở topic mới lên, tui và anh em dân chơi không sợ mưa rơi giải thích với bà con hiểu .

Tôi cũng làm giống như Mysql cũng chạy

[root@localhost mysql-4.1.21]# rpm -q httpd
httpd-2.0.54-10

Apache cũa tôi đang sử dụng là 2.054-10 . Tôi thử xoá nó xem,

[root@localhost mysql-4.1.21]#rpm -e httpd-2.0.54-10

Một thông báo như sau xuất hiện .

error: Failed dependencies:
httpd-mmn = 20020903 is needed by (installed) mod_perl-2.0.0-0.rc5.3.i386
httpd-mmn = 20020903 is needed by (installed) mod_python-3.1.4-2.i386
httpd-mmn = 20020903 is needed by (installed) mod_ssl-2.0.54-10.i386
httpd-mmn = 20020903 is needed by (installed) php-5.0.4-10.i386
webserver is needed by (installed) webalizer-2.01_10-28.i386
httpd = 2.0.54-10 is needed by (installed) httpd-manual-2.0.54-10.i386
httpd >= 2.0.40 is needed by (installed) mod_perl-2.0.0-0.rc5.3.i386
httpd >= 2.0.40 is needed by (installed) mod_python-3.1.4-2.i386
httpd = 2.0.54-10 is needed by (installed) mod_ssl-2.0.54-10.i386
httpd is needed by (installed) system-config-httpd-1.3.2-2.noarch

Nhìn ở dòng này, có gì sai chăng bà con thử dịch nó sang tiếng Việt xem . Ở đây nào là mod_python-3.1.4-2.i386 , mod_ssl-2.0.54-10.i386 rồi đến mod_perl-2.0.0-0.rc5.3.i386 . Ở đây nó nói lên điều gì, vì mặc định các module Apache 2.x sẽ có thêm các module như mod_ssl, mod_python và mod_perl mặc định Apache 1.3 thì chắc chắn không có module mod_ssl . Vậy làm thế nào bây giờ nhĩ . “Xữ” nó vậy, tôi chạy tiếp (trừ cái Php ra nhé – nếu lỡ xoá nó thì chạy vào đây download nó về)

http://dc.qut.edu.au/cgi-bin/rpm.cgi

[root@localhost mysql-4.1.21]# rpm -e mod_ssl-2.0.54-10.i386

Sau khi thực thi xong, xem các process dính dáng đến Apache nó còn chạy không

[root@localhost mysql-4.1.21]# ps aux | grep httpd
root 32621 0.0 0.1 3824 772 pts/2 S+ 00:56 0:00 grep httpd

Nó còn thì chạy tiếp

[root@localhost mysql-4.1.21]# killall httpd

Sau khi làm sạch sẽ đám httpd xong, ta bắt đầu cài đặt Apache
Download Apache ví dụ nó là apache_1.3.37 và giải nén nó ra , chép nó vào thư mục sau /usr/local/src
Tạo một script sau và đặt tên cho nó là apache_install và nó nằm ở thư mục /root , cũng như Mysql tôi CHMOD nó sang 755

cd /usr/local/src/apache_1.3.37
make distclean
./configure \
--prefix=/www \
--enable-module=so \
--enable-module=rewrite \
--enable-shared=rewrite \
--enable-module=setenvif \
--enable-shared=setenvif \
--enable-module=mime \
--enable-shared=mime \
--enable-module=mime_magic \
--enable-shared=mime_magic \
--enable-module=dir \
--enable-shared=dir \
--enable-module=auth \
--enable-shared=auth \
--enable-module=access \
--enable-shared=access \
--enable-module=alias \
--enable-shared=alias \
--enable-module=status \
--enable-shared=status \
--enable-module=userdir \
--enable-shared=userdir \
--enable-module=vhost_alias \
--enable-shared=vhost_alias \
--enable-module=env \
--enable-shared=env \
--enable-module=log_referer \
--enable-shared=log_referer \
--enable-module=log_config \
--enable-shared=log_config \
--enable-module=log_agent \
--enable-shared=log_agent \
--enable-module=headers \
--enable-shared=headers

[root@localhost ~]# ./apache_install
[root@localhost ~]# cd /usr/local/src/apache_1.3.37
[root@localhost apache_1.3.37]# make
[root@localhost apache_1.3.37]# make install
[root@localhost apache_1.3.37]# ln -s /www/bin/apachectl /usr/bin/apachectl
[root@localhost apache_1.3.37]# ln -s /www/bin/apachectl /usr/sbin/apachectl

Bật Apache lên bà con nhé

[root@localhost apache_1.3.37]# apachectl start

Cài đặt Php
Đang ở thư mục /usr/local, tạo tiếp một script đặt tên là php_install

cd php-5.1.4
./configure \
--with-apxs=/www/bin/apxs \
--with-mysql=/usr/local/mysql \
--enable-ftp \
--enable-trans-sid

[root@localhost php-5.1.4]# make && make install
[root@localhost php-5.1.4]# cp php.ini-dist /usr/local/lib/php.ini

Mở /www/conf/httpd.conf tìm dòng AddModule, thêm vào

AddModule mod_php5.c

Tìm dòng LoadModule, thêm vào

LoadModule php5_module libexec/libphp5.so

Tìm dòng thay đổi nó thành

DirectoryIndex index.php default.php index.html index.htm

Ok bây giờ thử tạo tập tin .php nào đó và chạy nó xem
Tập tin index.php của tôi

Bây giờ mở trình duyệt lên và test thử xem
http://localhost/index.php

Một điểm cần lưu ý
Ở đây tôi dùng PHP 5.1.4 kết hợp với Apache 1.3 vì vậy khi cài đặt có thể libphp5.so không được load vì vậy khi bật Apache lên thì thông báo như sau xuất hiện

[root@localhost php-5.1.4]# apachectl start
Syntax error on line 221 of /www/conf/httpd.conf:
Cannot load /www/libexec/libphp5.so into server: /www/libexec/libphp5.so: cannot restore segment prot after reloc: Permission denied
/usr/sbin/apachectl start: httpd could not be started

Bạn nghĩ Permission Denied thì mình CHMOD cho nó ? Đừng có lộn

Chạy dòng này để cho nó load libphp5.so

[root@localhost apache_1.3.37]# chcon /www/libexec/libphp5.so -t shlib_t
[root@localhost apache_1.3.37]# apachectl start
/usr/sbin/apachectl start: httpd started

OK xong rồi đó bà con, chúc bà con thành công .
   
Trả Lời Với Trích Dẫn
Cấu hình cơ bản MYSQL
Old
  (#2 (permalink))
 
Status: Offline
Posts: 601
Tham gia: Dec 2007
^..^
 
hautp's Avatar
Default Cấu hình cơ bản MYSQL - 28-02-2008, 22:28 28-02-2008

Để khởi động dịch vụ MYSQL trên linux ta dùng những command sau :
[root@vnlamp tmp]# chkconfig mysqld on  tự khởi động khi boot
[root@vnlamp tmp]# service mysqld start
[root@vnlamp tmp]# service mysqld stop
[root@vnlamp tmp]# service mysqld restart

Để tạo password cho admin root ta dùng command sau :

[root@vnlamp tmp]# mysqladmin -u root password new-password

Để truy cập vào chế độ command của mysql ta dùng :

[root@vnlamp tmp]# mysql -u root -p

Enter password:
Welcome to the MySQL monitor. Commands end with; or \g.
Your MySQL connection id is 14 to server version: 3.23.58

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Thử một số command tạo database và drop database :

mysql> create database salesdata;  tạo database
Query OK, 1 row affected (0.00 sec)

mysql>

mysql> drop database salesdata;  xóa database
Query OK, 0 rows affected (0.00 sec)

mysql>

Command cho phép ta thêm một user cho mysql :

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';

Command trên cho phép user được phép sử dụng quyền access local và quyền access từ bất kỳ host này từ là Remote Mysql
Để xem thông tin về database ta dùng command :

mysql> show databases;
+-----------+
| Database |
+-----------+
| salesdata |
+-----------+
1 row in set (0.00 sec)

mysql>

Một số command quan trọng là backup dữ liệu bằng Mysqldump:

mysqldump --add-drop-table -u [username] -p[password] [database] > [backup_file]

[root@vnlamp tmp]# mysqldump --add-drop-table -u mysqluser \
-ppinksl1p salesdata > /tmp/salesdata-backup.sql

[code]
Phục hồi database :
[code]

mysql -u [username] -p[password] [database] < [backup_file]

[root@vnlamp tmp]# mysql -u mysqluser -ppinksl1p salesdata \
< /tmp/salesdata-backup.sql

Để kiểm tra kết nối remote host Mysql connection ta dùng command sau :

Mysql –h 192.168.1.10 –u –p

Nếu kết nối thành công thì bạn có thể dùng công cụ Mysql Admin , Mysql Front để kết nối vào database được rồi.
   
Trả Lời Với Trích Dẫn
Apache Config
Old
  (#3 (permalink))
 
Status: Offline
Posts: 601
Tham gia: Dec 2007
^..^
 
hautp's Avatar
Default Apache Config - 28-02-2008, 22:28 28-02-2008

Để khởi động dịch vụ webserver ta dùng command sau :

[root@vnlamp tmp]# chkconfig httpd on
[root@vnlamp tmp]# /etc/init.d/httpd start
[root@vnlamp tmp]# /etc/init.d/httpd stop
[root@vnlamp tmp]# /etc/init.d/httpd restart

Sau khi start Webserver lên thông thường thư mục root của site sẽ nằm ở đừng dẫn /var/www/html/

Một số config thông dụng khi dùng webserver là apache :

Tạo trang báo lỗi mang màu sắc cá nhân

Trong quá trình làm việc với client, nếu có lỗi xảy ra (ví dụ như không tìm thấy tập tin) thì Apache sẽ báo lỗi bằng một trang có sẵn hiển thị mã số của lỗi đó, rất không đẹp và khó hiểu.

Với .haccess thì bạn có thể tự tạo các trang báo lỗi hay hơn. Để làm được điều này thì trong tập tin .htaccess bạn thêm dòng sau:

ErrorDocument mã số lỗi /trangloi.html

Trong đó mã số lỗi là mã số của lỗi phát sinh, sau đây là những lỗi hay gặp:

- 401 - Authorization Required (cần password để truy nhập)
- 400 - Bad request (Lỗi do yêu cầu)
- 403 - Forbidden (không được vào)
- 500 - Internal Server Error (lỗi server)
- 404 - Wrong page (lỗi trang, không tìm thấy...)

còn trangloi.html là trang web mà bạn muốn hiển thị khi lỗi phát sinh, có thể đưa vào tập tin này nội dung hay đồ hoạ gì tùy bạn, chẳng hạn liên kết trở về trang chính của trang web. Ví dụ: ErrorDocument 404/trangloi.html hoặc: ErrorDocument500/loi/500.html

Bây giờ bạn hãy tải (upload) 2 tập tin .htaccess và trangloi.html lên hosting của mình.

Chống ăn cắp băng thông (bandwidth)

Thông thường những dịch vụ lưu trữ web chỉ cung cấp cho bạn một lượng dữ liệu luân chuyển (data transfer) nhất định hàng tháng và khi bạn sử dụng hết lượng dữ liệu này, website của bạn sẽ tự động bị đóng cửa. Bạn sẽ phải trả thêm tiền cho lượng băng thông vượt quá hoặc phải buộc lòng chờ đến tháng sau.

Nếu hình ảnh, dữ liệu, … của bạn bị các website khác “ăn trộm” (bằng các thủ thuật đơn giản) làm cho lượng dữ liệu luân chuyển của bạn tăng lên, thì có nghĩa là bạn sẽ phải trả tiền cho cái mà bạn không sử dụng. Sử dụng tập tin .htaccess là một giải pháp hoàn hảo, để ngăn chặn việc sử dụng hình ảnh trái phép trên website của bạn. Bạn chỉ việc đưa vào tập tin .htaccess nội dung sau :

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]

Ở đoạn mã trên tôi sử dụng module Rewrite của máy chủ Apache, bạn chỉ việc thay đổi trangweb.com thành địa chỉ website của mình.

Có thể sử dụng một hình ảnh nào đó cảnh cáo những kẻ “ăn trộm” băng thông, bạn dùng dòng lệnh sau:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.trangweb.com/diehotlinker.jpg [R,L]

Không cho hiện danh sách tập tin trong thư mục

Trong trường hợp một thư mục nào đó không có tập tin index hoặc default, Apache sẽ hiển thị một danh sách liệt kê những tập tin có trong thư mục đó. Tuy nhiên nếu đây là những tài liệu nhạy cảm, bạn không muốn người khác thấy, hãy thêm lệnh sau vào tập tin .htaccess

Options –Indexes

Thay thế trang index

Thông thường khi truy nhập vào một trang web, Apache sẽ tìm tập tin index.htm hoặc default.htm trả kết quả về cho trình duyệt, bạn có thể dùng .htaccess thay đổi mặc định này.

DirectoryIndex index.php index .php3 messagebrd.pl index.html index.htm

Với dòng lệnh này thì tất cả các tập tin được liệt kê sẽ được tìm theo thứ tự khi có yêu cầu tới thư mục hiện hành, trang nào được tìm thấy đầu tiên sẽ thành trang index của thư mục.

Cấm/hạn chế IP truy nhập

Một số người muốn làm ngập (flood) trang web của bạn, việc cần làm là ngăn cấm những IP của những người này truy nhập vào trang web, bạn thêm đoạn mã sau vào .htaccess: deny from 203.262.110.20; cho phép IP truy nhập: allow from 203.262.110.20.

Nếu bạn chỉ viết IP dưới dạng: 203.262.110 thì sẽ cấm tất cả IP trong dải từ 203.262.110.1 đến 203.262.110.254.

Sử dụng dòng lệnh sau: Deny from all sẽ cấm tất cả mọi truy nhập đến các trang web trong thư mục, tuy nhiên các tập tin trong đó vẫn có thể được sử dụng từ bên ngoài thông qua các lệnh dạng require hay include (trong lập trình PHP), có thể xem thêm mã nguồn của PHPBB forum,IBF... để hiểu rõ hơn.

Tự động chuyển đến địa chỉ mới (Redirection)

Bạn chuyển trang web của mình đến địa chỉ mới nhưng không phải ai cũng biết điều này, redirect truy nhập từ xa một cách đơn giản bằng lệnh sau:

Redirect/olddirectory http://www.trangwebmoi.com/thumucmoi;

Tuỳ biến đuôi tập tin

Thông thường, tuỳ thuộc vào ngôn ngữ lập trình web mà bạn sử dụng tập tin sẽ có phần mở rộng khác nhau như: html, htm, asp, aspx, php, cgi, …Tuy nhiên nếu sử dụng .htaccess bạn có thể tác động vào máy chủ Apache, Apache sẽ gọi đến tập tin của bạn và trả về cho trình duyệt web của người dùng với phần mở rộng do bạn quy định trong .htaccess. Bạn sử dụng đoạn lệnh sau trong tập tin .htaccess:

RewriteEngine on
RewriteRule (.*)\.dll$ $1.html

Html là phần mở rộng thực sự của những tập tin trên website, dll là phần mở rộng do bạn lựa chọn. Lưu ý trong liên kết trên trang web, bạn phải gọi đúng đường dẫn đến tập tin với phần mở rộng mới (ở trên là dll), ví dụ http://www.trangweb.com/in dex.dll

Hướng dẫn cấu hình multidomain với Virtual Host trên Apache:

Bước này chỉ có thể hoạt động khi và chỉ khi bạn đã thực sự cấu hình DNS cho multidomain config files /etc/httpd/conf/httpd.conf.

ServerName localhost
NameVirtualHost 192.168.1.10:80

#
# Match a webpage directory with each website
#
<VirtualHost *>
DocumentRoot /home/www/site1
</VirtualHost>

<VirtualHost 192.168.1.10:80>  Ip được gán cho multidomain
DocumentRoot /home/www/site2  nơi chứa source của web
ServerName www.my-site.com  tên website đã được config trong dns
ServerAlias my-site.com, www.my-cool-site.com
</VirtualHost>

<VirtualHost 192.168.1.10:80>
DocumentRoot /home/www/site3
ServerName www.test-site.com
</VirtualHost>

<VirtualHost 192.168.1.10:80>
DocumentRoot /home/www/site4
ServerName www.another-site.com
</VirtualHost>

Sau khi config xong bạn chỉ việc kiểm tra bằng cách gõ các domain trên vào trình duyệt xem đã thành công chưa. Nếu đã thành công xin chúc mừng bạn .
   
Trả Lời Với Trích Dẫn
Old
  (#4 (permalink))
 
Status: Offline
Posts: 12
Tham gia: Feb 2009
Học viên VNLAMP
Default 07-06-2009, 00:7 07-06-2009

Hình như còn thiếu Cpanel và mod_security mới đủ là webserver.
   
Trả Lời Với Trích Dẫn
Old
  (#5 (permalink))
 
Status: Offline
Posts: 11
Tham gia: Jul 2008
Học viên VNLAMP
 
phongit's Avatar
Default 09-11-2009, 11:9 09-11-2009

Trích:
Nguyên văn bởi hautp View Post
Để khởi động dịch vụ webserver ta dùng command sau :

[root@vnlamp tmp]# chkconfig httpd on
[root@vnlamp tmp]# /etc/init.d/httpd start
[root@vnlamp tmp]# /etc/init.d/httpd stop
[root@vnlamp tmp]# /etc/init.d/httpd restart

Sau khi start Webserver lên thông thường thư mục root của site sẽ nằm ở đừng dẫn /var/www/html/

Một số config thông dụng khi dùng webserver là apache :

Tạo trang báo lỗi mang màu sắc cá nhân

Trong quá trình làm việc với client, nếu có lỗi xảy ra (ví dụ như không tìm thấy tập tin) thì Apache sẽ báo lỗi bằng một trang có sẵn hiển thị mã số của lỗi đó, rất không đẹp và khó hiểu.

Với .haccess thì bạn có thể tự tạo các trang báo lỗi hay hơn. Để làm được điều này thì trong tập tin .htaccess bạn thêm dòng sau:

ErrorDocument mã số lỗi /trangloi.html

Trong đó mã số lỗi là mã số của lỗi phát sinh, sau đây là những lỗi hay gặp:

- 401 - Authorization Required (cần password để truy nhập)
- 400 - Bad request (Lỗi do yêu cầu)
- 403 - Forbidden (không được vào)
- 500 - Internal Server Error (lỗi server)
- 404 - Wrong page (lỗi trang, không tìm thấy...)

còn trangloi.html là trang web mà bạn muốn hiển thị khi lỗi phát sinh, có thể đưa vào tập tin này nội dung hay đồ hoạ gì tùy bạn, chẳng hạn liên kết trở về trang chính của trang web. Ví dụ: ErrorDocument 404/trangloi.html hoặc: ErrorDocument500/loi/500.html

Bây giờ bạn hãy tải (upload) 2 tập tin .htaccess và trangloi.html lên hosting của mình.

Chống ăn cắp băng thông (bandwidth)

Thông thường những dịch vụ lưu trữ web chỉ cung cấp cho bạn một lượng dữ liệu luân chuyển (data transfer) nhất định hàng tháng và khi bạn sử dụng hết lượng dữ liệu này, website của bạn sẽ tự động bị đóng cửa. Bạn sẽ phải trả thêm tiền cho lượng băng thông vượt quá hoặc phải buộc lòng chờ đến tháng sau.

Nếu hình ảnh, dữ liệu, … của bạn bị các website khác “ăn trộm” (bằng các thủ thuật đơn giản) làm cho lượng dữ liệu luân chuyển của bạn tăng lên, thì có nghĩa là bạn sẽ phải trả tiền cho cái mà bạn không sử dụng. Sử dụng tập tin .htaccess là một giải pháp hoàn hảo, để ngăn chặn việc sử dụng hình ảnh trái phép trên website của bạn. Bạn chỉ việc đưa vào tập tin .htaccess nội dung sau :

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]

Ở đoạn mã trên tôi sử dụng module Rewrite của máy chủ Apache, bạn chỉ việc thay đổi trangweb.com thành địa chỉ website của mình.

Có thể sử dụng một hình ảnh nào đó cảnh cáo những kẻ “ăn trộm” băng thông, bạn dùng dòng lệnh sau:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.trangweb.com/diehotlinker.jpg [R,L]

Không cho hiện danh sách tập tin trong thư mục

Trong trường hợp một thư mục nào đó không có tập tin index hoặc default, Apache sẽ hiển thị một danh sách liệt kê những tập tin có trong thư mục đó. Tuy nhiên nếu đây là những tài liệu nhạy cảm, bạn không muốn người khác thấy, hãy thêm lệnh sau vào tập tin .htaccess

Options –Indexes

Thay thế trang index

Thông thường khi truy nhập vào một trang web, Apache sẽ tìm tập tin index.htm hoặc default.htm trả kết quả về cho trình duyệt, bạn có thể dùng .htaccess thay đổi mặc định này.

DirectoryIndex index.php index .php3 messagebrd.pl index.html index.htm

Với dòng lệnh này thì tất cả các tập tin được liệt kê sẽ được tìm theo thứ tự khi có yêu cầu tới thư mục hiện hành, trang nào được tìm thấy đầu tiên sẽ thành trang index của thư mục.

Cấm/hạn chế IP truy nhập

Một số người muốn làm ngập (flood) trang web của bạn, việc cần làm là ngăn cấm những IP của những người này truy nhập vào trang web, bạn thêm đoạn mã sau vào .htaccess: deny from 203.262.110.20; cho phép IP truy nhập: allow from 203.262.110.20.

Nếu bạn chỉ viết IP dưới dạng: 203.262.110 thì sẽ cấm tất cả IP trong dải từ 203.262.110.1 đến 203.262.110.254.

Sử dụng dòng lệnh sau: Deny from all sẽ cấm tất cả mọi truy nhập đến các trang web trong thư mục, tuy nhiên các tập tin trong đó vẫn có thể được sử dụng từ bên ngoài thông qua các lệnh dạng require hay include (trong lập trình PHP), có thể xem thêm mã nguồn của PHPBB forum,IBF... để hiểu rõ hơn.

Tự động chuyển đến địa chỉ mới (Redirection)

Bạn chuyển trang web của mình đến địa chỉ mới nhưng không phải ai cũng biết điều này, redirect truy nhập từ xa một cách đơn giản bằng lệnh sau:

Redirect/olddirectory OpenDNS

Tuỳ biến đuôi tập tin

Thông thường, tuỳ thuộc vào ngôn ngữ lập trình web mà bạn sử dụng tập tin sẽ có phần mở rộng khác nhau như: html, htm, asp, aspx, php, cgi, …Tuy nhiên nếu sử dụng .htaccess bạn có thể tác động vào máy chủ Apache, Apache sẽ gọi đến tập tin của bạn và trả về cho trình duyệt web của người dùng với phần mở rộng do bạn quy định trong .htaccess. Bạn sử dụng đoạn lệnh sau trong tập tin .htaccess:

RewriteEngine on
RewriteRule (.*)\.dll$ $1.html

Html là phần mở rộng thực sự của những tập tin trên website, dll là phần mở rộng do bạn lựa chọn. Lưu ý trong liên kết trên trang web, bạn phải gọi đúng đường dẫn đến tập tin với phần mở rộng mới (ở trên là dll), ví dụ http://www.trangweb.com/in dex.dll

Hướng dẫn cấu hình multidomain với Virtual Host trên Apache:

Bước này chỉ có thể hoạt động khi và chỉ khi bạn đã thực sự cấu hình DNS cho multidomain config files /etc/httpd/conf/httpd.conf.

ServerName localhost
NameVirtualHost 192.168.1.10:80

#
# Match a webpage directory with each website
#
<VirtualHost *>
DocumentRoot /home/www/site1
</VirtualHost>

<VirtualHost 192.168.1.10:80>  Ip được gán cho multidomain
DocumentRoot /home/www/site2  nơi chứa source của web
ServerName www.my-site.com  tên website đã được config trong dns
ServerAlias my-site.com, www.my-cool-site.com
</VirtualHost>

<VirtualHost 192.168.1.10:80>
DocumentRoot /home/www/site3
ServerName www.test-site.com
</VirtualHost>

<VirtualHost 192.168.1.10:80>
DocumentRoot /home/www/site4
ServerName www.another-site.com
</VirtualHost>

Sau khi config xong bạn chỉ việc kiểm tra bằng cách gõ các domain trên vào trình duyệt xem đã thành công chưa. Nếu đã thành công xin chúc mừng bạn .
cảm ơn haupt rất nhiều.
Hậu chỉ mình cách cấu hình DNS multidomain với.
( Ví dụ mình đã có 1 DNS : 192.168.2.2
domain: abc.com, giờ mình muốn cấu hình thêm xyz.com cũng trên 192.168.2.2 ). Cái này mình làm để cấu hình Virtuahost - name based.


[B][COLOR="Red"]Bắt đầu để được kết thúc[/COLOR][/B]
   
Trả Lời Với Trích Dẫn
Old
  (#6 (permalink))
 
Status: Offline
Posts: 11
Tham gia: Jul 2008
Học viên VNLAMP
 
phongit's Avatar
Default 09-11-2009, 11:9 09-11-2009

Trích:
Nguyên văn bởi hautp View Post
Để khởi động dịch vụ webserver ta dùng command sau :

[root@vnlamp tmp]# chkconfig httpd on
[root@vnlamp tmp]# /etc/init.d/httpd start
[root@vnlamp tmp]# /etc/init.d/httpd stop
[root@vnlamp tmp]# /etc/init.d/httpd restart

Sau khi start Webserver lên thông thường thư mục root của site sẽ nằm ở đừng dẫn /var/www/html/

Một số config thông dụng khi dùng webserver là apache :

Tạo trang báo lỗi mang màu sắc cá nhân

Trong quá trình làm việc với client, nếu có lỗi xảy ra (ví dụ như không tìm thấy tập tin) thì Apache sẽ báo lỗi bằng một trang có sẵn hiển thị mã số của lỗi đó, rất không đẹp và khó hiểu.

Với .haccess thì bạn có thể tự tạo các trang báo lỗi hay hơn. Để làm được điều này thì trong tập tin .htaccess bạn thêm dòng sau:

ErrorDocument mã số lỗi /trangloi.html

Trong đó mã số lỗi là mã số của lỗi phát sinh, sau đây là những lỗi hay gặp:

- 401 - Authorization Required (cần password để truy nhập)
- 400 - Bad request (Lỗi do yêu cầu)
- 403 - Forbidden (không được vào)
- 500 - Internal Server Error (lỗi server)
- 404 - Wrong page (lỗi trang, không tìm thấy...)

còn trangloi.html là trang web mà bạn muốn hiển thị khi lỗi phát sinh, có thể đưa vào tập tin này nội dung hay đồ hoạ gì tùy bạn, chẳng hạn liên kết trở về trang chính của trang web. Ví dụ: ErrorDocument 404/trangloi.html hoặc: ErrorDocument500/loi/500.html

Bây giờ bạn hãy tải (upload) 2 tập tin .htaccess và trangloi.html lên hosting của mình.

Chống ăn cắp băng thông (bandwidth)

Thông thường những dịch vụ lưu trữ web chỉ cung cấp cho bạn một lượng dữ liệu luân chuyển (data transfer) nhất định hàng tháng và khi bạn sử dụng hết lượng dữ liệu này, website của bạn sẽ tự động bị đóng cửa. Bạn sẽ phải trả thêm tiền cho lượng băng thông vượt quá hoặc phải buộc lòng chờ đến tháng sau.

Nếu hình ảnh, dữ liệu, … của bạn bị các website khác “ăn trộm” (bằng các thủ thuật đơn giản) làm cho lượng dữ liệu luân chuyển của bạn tăng lên, thì có nghĩa là bạn sẽ phải trả tiền cho cái mà bạn không sử dụng. Sử dụng tập tin .htaccess là một giải pháp hoàn hảo, để ngăn chặn việc sử dụng hình ảnh trái phép trên website của bạn. Bạn chỉ việc đưa vào tập tin .htaccess nội dung sau :

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]

Ở đoạn mã trên tôi sử dụng module Rewrite của máy chủ Apache, bạn chỉ việc thay đổi trangweb.com thành địa chỉ website của mình.

Có thể sử dụng một hình ảnh nào đó cảnh cáo những kẻ “ăn trộm” băng thông, bạn dùng dòng lệnh sau:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.trangweb.com/diehotlinker.jpg [R,L]

Không cho hiện danh sách tập tin trong thư mục

Trong trường hợp một thư mục nào đó không có tập tin index hoặc default, Apache sẽ hiển thị một danh sách liệt kê những tập tin có trong thư mục đó. Tuy nhiên nếu đây là những tài liệu nhạy cảm, bạn không muốn người khác thấy, hãy thêm lệnh sau vào tập tin .htaccess

Options –Indexes

Thay thế trang index

Thông thường khi truy nhập vào một trang web, Apache sẽ tìm tập tin index.htm hoặc default.htm trả kết quả về cho trình duyệt, bạn có thể dùng .htaccess thay đổi mặc định này.

DirectoryIndex index.php index .php3 messagebrd.pl index.html index.htm

Với dòng lệnh này thì tất cả các tập tin được liệt kê sẽ được tìm theo thứ tự khi có yêu cầu tới thư mục hiện hành, trang nào được tìm thấy đầu tiên sẽ thành trang index của thư mục.

Cấm/hạn chế IP truy nhập

Một số người muốn làm ngập (flood) trang web của bạn, việc cần làm là ngăn cấm những IP của những người này truy nhập vào trang web, bạn thêm đoạn mã sau vào .htaccess: deny from 203.262.110.20; cho phép IP truy nhập: allow from 203.262.110.20.

Nếu bạn chỉ viết IP dưới dạng: 203.262.110 thì sẽ cấm tất cả IP trong dải từ 203.262.110.1 đến 203.262.110.254.

Sử dụng dòng lệnh sau: Deny from all sẽ cấm tất cả mọi truy nhập đến các trang web trong thư mục, tuy nhiên các tập tin trong đó vẫn có thể được sử dụng từ bên ngoài thông qua các lệnh dạng require hay include (trong lập trình PHP), có thể xem thêm mã nguồn của PHPBB forum,IBF... để hiểu rõ hơn.

Tự động chuyển đến địa chỉ mới (Redirection)

Bạn chuyển trang web của mình đến địa chỉ mới nhưng không phải ai cũng biết điều này, redirect truy nhập từ xa một cách đơn giản bằng lệnh sau:

Redirect/olddirectory OpenDNS

Tuỳ biến đuôi tập tin

Thông thường, tuỳ thuộc vào ngôn ngữ lập trình web mà bạn sử dụng tập tin sẽ có phần mở rộng khác nhau như: html, htm, asp, aspx, php, cgi, …Tuy nhiên nếu sử dụng .htaccess bạn có thể tác động vào máy chủ Apache, Apache sẽ gọi đến tập tin của bạn và trả về cho trình duyệt web của người dùng với phần mở rộng do bạn quy định trong .htaccess. Bạn sử dụng đoạn lệnh sau trong tập tin .htaccess:

RewriteEngine on
RewriteRule (.*)\.dll$ $1.html

Html là phần mở rộng thực sự của những tập tin trên website, dll là phần mở rộng do bạn lựa chọn. Lưu ý trong liên kết trên trang web, bạn phải gọi đúng đường dẫn đến tập tin với phần mở rộng mới (ở trên là dll), ví dụ http://www.trangweb.com/in dex.dll

Hướng dẫn cấu hình multidomain với Virtual Host trên Apache:

Bước này chỉ có thể hoạt động khi và chỉ khi bạn đã thực sự cấu hình DNS cho multidomain config files /etc/httpd/conf/httpd.conf.

ServerName localhost
NameVirtualHost 192.168.1.10:80

#
# Match a webpage directory with each website
#
<VirtualHost *>
DocumentRoot /home/www/site1
</VirtualHost>

<VirtualHost 192.168.1.10:80>  Ip được gán cho multidomain
DocumentRoot /home/www/site2  nơi chứa source của web
ServerName www.my-site.com  tên website đã được config trong dns
ServerAlias my-site.com, www.my-cool-site.com
</VirtualHost>

<VirtualHost 192.168.1.10:80>
DocumentRoot /home/www/site3
ServerName www.test-site.com
</VirtualHost>

<VirtualHost 192.168.1.10:80>
DocumentRoot /home/www/site4
ServerName www.another-site.com
</VirtualHost>

Sau khi config xong bạn chỉ việc kiểm tra bằng cách gõ các domain trên vào trình duyệt xem đã thành công chưa. Nếu đã thành công xin chúc mừng bạn .
cảm ơn haupt rất nhiều.
Hậu chỉ mình cách cấu hình DNS multidomain với.
( Ví dụ mình đã có 1 DNS : 192.168.2.2
domain: abc.com, giờ mình muốn cấu hình thêm xyz.com cũng trên 192.168.2.2 ). Cái này mình làm để cấu hình Virtuahost - name based.


[B][COLOR="Red"]Bắt đầu để được kết thúc[/COLOR][/B]
   
Trả Lời Với Trích Dẫn
Old
  (#7 (permalink))
 
Status: Offline
Posts: 208
Tham gia: Oct 2008
BQT VNLAMP
 
hellonewday's Avatar
Default 09-11-2009, 16:9 09-11-2009

Buốn quá, đang gặp 1 số vấn đề mà nan giải quá:
Minh config webserver, và up nó lên thư mục root /var/www/html rất good, web chạy rất ổn định
Nhưng khi mình tạo vitural host thì không hiểu sao khi restart lai apache thì nó tự động vào vituralhost mà không vào web root nữa, có cao thù nào bị như vậy không
NameVirtualHost 192.168.10.80:80
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
#DocumentRoot /usr/local/hobbit/server/www/

<VirtualHost www.xemlog.net:80>
ServerAdmin abc@gmail.com
DocumentRoot /var/www/xemlog
ServerName www.xemlog.net
ServerAlias xemlog.net
ErrorLog /var/logs/xemlog.net-error_log
CustomLog /var/logs/xemlog.net-access_log common
</VirtualHost>

thay đổi nội dung bởi: hellonewday, 09-11-2009 lúc 17:9 09-11-2009.
   
Trả Lời Với Trích Dẫn
Old
  (#8 (permalink))
 
Status: Offline
Posts: 459
Tham gia: Dec 2007
Administrator
 
patrick's Avatar
Default 09-11-2009, 18:9 09-11-2009

hi Ban,

No tu dong khong vao web root nua la sao ban? Ban noi ro hon xem.


Kinh nghiệm của chúng tôi là kiến thức của bạn
  Send a message via Yahoo to patrick  
Trả Lời Với Trích Dẫn
Old
  (#9 (permalink))
 
Status: Offline
Posts: 208
Tham gia: Oct 2008
BQT VNLAMP
 
hellonewday's Avatar
Default 09-11-2009, 22:9 09-11-2009

Khi chua tao vituralhost thi webroot /var/www/html, em go abc.com ok
Nhung khi tao vituralhost xyz.com thi sao khi go abc.com no chi vao xyz.com.
   
Trả Lời Với Trích Dẫn
Old
  (#10 (permalink))
 
Status: Offline
Posts: 208
Tham gia: Oct 2008
BQT VNLAMP
 
hellonewday's Avatar
Default 10-11-2009, 14:10 10-11-2009

Có ai bị như vậy không? Hình như nó phải có thêm 1 cái option nữa thì phải
   
Trả Lời Với Trích Dẫn
Trả lời


Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Trackbacks are Mở
Pingbacks are Mở
Refbacks are Mở


Múi giờ GMT. Hiện tại là 02:21 21-05-2012.