Lưu trữ

Archive for Tháng Hai 23, 2012

List of methods used to redirect a web site using Apache

Web site forwarding and redirection methods:

  1. One can forward a web page URL or home page using the following web page with the “Refresh” directive:
    1 <META HTTP-EQUIV="Refresh" Content="0; URL=http://www.company.com/dir1/">

    This commands the browser to refresh the page with the new specified URL. This forwards a single page only and not the entire domain. It can forward the default home page for the domain giving the appearance of forwarding the domain..or:

    01 <html>
    02 <head>
    03 <META HTTP-EQUIV="Refresh" Content="3; URL=http://www.company.com/dir1/">
    04 </head>
    05 <body>
    06 This page will forward to http://www.company.com/dir1/ in three seconds.
    07 <p>
    08 Please update your links.
    09 </body>
    10 </html>

     

  2. Use a CGI script to forward a home page: (mod_cgi)
    File: httpd.conf

    1 ScriptAlias / /var/www/cgi-bin/redirect-script/

    File: /var/www/cgi-bin/redirect-script

    1 #!/usr/bin/perl
    2
    3 print "Status: 301 Moved\r\n" .
    4       "Location: http://www.new-domain.com/\r\n" .
    5       "\r\n";

    or:

    1 #!/usr/bin/perl -w
    2 use strict;
    3 use CGI qw/:standard/;
    4 print redirect('http://www.new-domain.com');

     

  3. Use a PHP script to redirect:
    1 <?php
    2 header("Location: http://www.new-domain.com/");
    3 ?>
  4. Use a Javascript to redirect:
    01 <html>
    02 <head>
    03 <script language="Javascript" type="text/javascript">
    04 <!-- Hide script
    05 //<![CDATA[
    06 window.location.href="http://www.new-domain.com/"      
    07 //]]> End script hiding -->
    08 </script>
    09 </head>
    10 </html>
  5. Use Apache module (mod_rewrite)
    File: httpd.conf

    1 RewriteEngine On
    2 RewriteRule /.* http://www.new-domain.com/ [R]

    Forwards all references in entire domain.

     

  6. Use Apache module (mod_alias )
    File: httpd.conf

    Note:

    • Redirect directives take precedence over Alias and ScriptAlias directives.
    • Other “Redirect” options include: temp (error 302) default – temporary redirect status, seeother (error 303) resource has been replaced and gone (error 410) resource has been permanently removed.

    Example httpd.conf with virtual hosts for multiple domains which all redirect:

    1 <VirtualHost <i><b>XXX.XXX.XXX.XXX</b></i>>
    2 ServerName directtolinux.com
    3 ServerAlias www.directtolinux.com
    4 ServerAlias direct-to-linux.com
    5 ServerAlias www.direct-to-linux.com
    6 ServerAlias digitalpenguins.com
    7 ServerAlias www.digitalpenguins.com
    8 Redirect permanent / http://www.yolinux.com/
    9 </VirtualHost>

     

     

  7. Apache 301 redirect using the .htaccess file:
    If one wants to permanently forward an entire web site to a new URL or forward a single page permanently and have the search engines update their database, one should use a 301 redirect. This may redirect to a new server or to itself but to a different domain. This tutorial shows how. This method is a variation of using the mod_alias redirection shown above except that it allows the customer to redirect themselves by providing a .htaccess file themselves.

    1 RewriteEngine on
    2 RewriteCond %{HTTP_HOST} ^yolinux.com
    3 RewriteRule ^(.*)$ http://www.yolinux.com/$1 [R=permanent,L]

    This example forwards http://yolinux.com to http://www.yolinux.com/ to unify your site to a single URL. This can also simplify your web logs if they can not distinguish between the two.

 


(Method 5) Apache configuration for redirect using httpd.conf and .htaccess:

This configures Apache to command the web browser to redirect by performing a GET from the “redirected” web site the user is being forwarded to.

File: /etc/httpd/conf/httpd.conf (older systems used access.conf)

Default: This disables the processing of .htaccess files for the system.

1 <Directory />
2 AllowOverride None
3 </Directory>

or for a specified directory:

1 <Directory <i>/home/domain/public_html</i>>
2 AllowOverride None
3 </Directory>

Specify directory containing site or page to be redirected:

1 <Directory /<i>root-directory-of-web-site-to-be-redirected</i>>
2 AllowOverride All
3 </Directory>

AllowOverride parameters: AuthConfig FileInfo Indexes Limits Options

 


File: .htaccess Create a file /home/domain/public_html/.htaccess in that directory of the domain to be forwarded that looks something like this:

You may use the following directives:

  • 301: permanent
  • 302: temp
  • 303: seeother
  • 410: gone

For example:

1 Redirect permanent /  http://www.newdomain.com/

If an incorrect directive is used in the httpd.conf or .htaccess file it will result in a server error. Check your log files:/var/log/httpd/error_log.

 


HTTP 1.1 Redirect codes:

 

HTTP Code Status Description
301 permanent The resource has permanently moved
302 temp The resource has temporarily moved
303 seeother The resource has been replaced and refer to new resource
305 UseProxy Use proxy to access site
307 Temp The resource has temporarily moved
410 Tegone The resource has permanently removed

See RFC 2616 HTTP/1.1 protocol – Chapter 10.3

Nguồn:http://www.yolinux.com/TUTORIALS/ApacheRedirect.html

Chuyên mục:Linux Thẻ:, , ,

Apache2 với PHP5 và MySQL trên nền tảng Fedora 14 (LAMP)

Tại đây, chúng tôi tiến hành thử nghiệm trên hệ thống có hostname server1.example.com, địa chỉ IP 192.168.0.100. Tùy từng hệ thống khác nhau mà các bạn nên có điều chỉnh thích hợp. Việc trước tiên cần phải làm là cài đặt MySQL 5:

yum install mysql mysql-server

Sau đó chúng ta cần tạo đường dẫn khởi động cho MySQL (do vậy MySQL sẽ tự khởi động cùng hệ thống), và kích hoạt MySQL server:

chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start

Gõ lệnh:

mysql_secure_installation

để khởi tạo mật khẩu cho tài khoản người dùng root (nếu không thì bất cứ ai cũng có thể truy cập cơ sở dữ liệu MySQL của bạn):

[root@server1 ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we’ll need the current
password for the root user.  If you’ve just installed MySQL, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): <– nhấn ENTER
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] <– nhấn ENTER
New password: <– mật khẩu SQL root
Re-enter new password: <– mật khẩu SQL root
Password updated successfully!
Reloading privilege tables..
… Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] <– nhấn ENTER
… Success!

Normally, root should only be allowed to connect from ‘localhost’.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] <– nhấn ENTER
… Success!

By default, MySQL comes with a database named ‘test’ that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] <– nhấn ENTER
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] <– nhấn ENTER
… Success!

Cleaning up…

All done!  If you’ve completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!
[root@server1 ~]#

Cài đặt Apache2:

Hiện tại, Apache2 đã có sẵn trong các gói cài đặt của Fedora, do vậy chỉ cần sử dụng lệnh:

yum install httpd

và thiết lập tính năng khởi động cùng hệ thống:

chkconfig –levels 235 httpd on

Sau đó khởi động Apache:

/etc/init.d/httpd start

Khởi động trình duyệt và gõ địa chỉ http://192.168.0.100, các bạn sẽ thấy trang kiểm tra ban đầu của Apache2 như sau:

Cài đặt Apache2 với PHP5 và MySQL trên nền tảng Fedora 14

Thư mục tài liệu root mặc định của Apache là /var/www/html trên Fedora, và file cấu hình/etc/httpd/conf/httpd.conf, ngoài ra, các file thiết lập khác đều được lưu trữ tại thư mục/etc/httpd/conf.d/

Cài đặt PHP5:

Để cài các module cần thiết của PHP5 và Apache PHP5, các bạn sử dụng lệnh sau:

yum install php

Sau đó phải khởi động lại Apache:

/etc/init.d/httpd restart

Việc tiếp theo cần làm là kiểm tra lại quá trình cài đặt PHP5 trên. Tất cả tài liệu root mặc định của website được lưu tại /var/www/html. Ngay sau đây, chúng ta sẽ tạo 1 file PHP nhỏ (info.php) trong thư mục đó và gọi ra bằng trình duyệt. File này sẽ hiển thị tất cả các thông tin hữu ích về toàn bộ quá trình cài đặt PHP, cũng như phiên bản và 1 số chi tiết khác:

vi /var/www/html/info.php

<?php
phpinfo();
?>

Khởi động trình duyệt, và gõ địa chỉ http://192.168.0.100/info.php:

Nếu hệ thống của bạn hiển thị kết quả như trên, nghĩa là PHP5 đã hoạt động, và thông qua trình điều khiển Apache 2.0 Handler, thông tin này được hiển thị tại dòng Server API. Khi xem thêm, bạn sẽ thấy hầu hết các module đều đã được kích hoạt trong PHP5, nhưng thiếu mất MySQL, nghĩa là PHP5 không hỗ trợ MySQL.

Điều chỉnh MySQL hoạt động với PHP5:

Về bản chất, để thiết lập MySQL tương thích với PHP5, chúng ta cần cài đặt thêm gói php-mysql hỗ trợ. Bạn có thể tìm kiếm các module PHP5 thích hợp như sau:

yum search php

Chọn lấy 1 kết quả bất kỳ và cài đặt như bình thường:

yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy

Sau đó, khởi động lại Apache2:

/etc/init.d/httpd restart

Kiểm tra lại bằng trình duyệt (http://192.168.0.100/info.php), lần này bạn sẽ thấy module MySQL đã xuất hiện:

1 công cụ không thể thiếu để điều khiển cơ sở dữ liệu MySQL là phpMyAdmin, các bạn cài đặt ứng dụng này bằng lệnh:

yum install phpmyadmin

Tiếp theo, chúng ta cần cấu hình lại phpMyAdmin bằng cách thay đổi thiết lập của Apache để chấp nhận các kết nối từ mọi nơi, không chỉ từ localhost (chỉnh lại cú pháp <Directory/usr/share/phpMyAdmin/>):

vi /etc/httpd/conf.d/phpMyAdmin.conf

# phpMyAdmin – Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

#<Directory /usr/share/phpMyAdmin/>
#   Order Deny,Allow
#   Deny from All
#   Allow from 127.0.0.1
#   Allow from ::1
#</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</Directory>

# These directories do not require access over HTTP – taken from the original
# phpMyAdmin upstream tarball
#
<Directory /usr/share/phpMyAdmin/libraries/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>

<Directory /usr/share/phpMyAdmin/setup/lib/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>

# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc.  This may break your mod_security implementation.
#
#<IfModule mod_security.c>
#    <Directory /usr/share/phpMyAdmin/>
#        SecRuleInheritance Off
#    </Directory>
#</IfModule>

Sau đó khởi động lại Apache:

/etc/init.d/httpd restart

Nếu thành công, các bạn có thể truy cập và sử dụng phpMyAdmin qua địa chỉhttp://192.168.0.100/phpmyadmin/:

Trên đây là 1 số thao tác cơ bản để cài đặt cũng như cấu hình, thiết lập Apache2, PHP5 và MySQL trên nền tảng Fedora 14 (LAMP). Chúc các bạn thành công!

Một số đường đẫn tham khảo: ApachePHPMySQLFedora và phpMyAdmin.

Viết bởi Phạm Trung Dũng

Chuyên mục:Linux Thẻ:, , , , , , , ,