Apache - MySQL - PHP - Web server


APACHE

1. Cài đặt cơ bản:
[root@myserver][/media/RHEL_5.4 i386 DVD/Server]
$ rpm -ivh httpd-2.2.3-31.el5.i386.rpm
warning: httpd-2.2.3-31.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
libapr-1.so.0 is needed by httpd-2.2.3-31.el5.i386
libaprutil-1.so.0 is needed by httpd-2.2.3-31.el5.i386
[root@myserver][/media/RHEL_5.4 i386 DVD/Server]
$ rpm -ivh apr-1.2.7-11.el5_3.1.i386.rpm apr-util-1.2.7-7.el5_3.2.i386.rpm
warning: apr-1.2.7-11.el5_3.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
libpq.so.4 is needed by apr-util-1.2.7-7.el5_3.2.i386
[root@myserver][/media/RHEL_5.4 i386 DVD/Server]
$ rpm -ivh postgresql-libs-8.1.11-1.el5_1.1.i386.rpm
warning: postgresql-libs-8.1.11-1.el5_1.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:postgresql-libs ########################################### [100%]
[root@myserver][/media/RHEL_5.4 i386 DVD/Server]
$ rpm -ivh apr-1.2.7-11.el5_3.1.i386.rpm apr-util-1.2.7-7.el5_3.2.i386.rpm
warning: apr-1.2.7-11.el5_3.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:apr ########################################### [ 50%]
2:apr-util ########################################### [100%]
[root@myserver][/media/RHEL_5.4 i386 DVD/Server]
$ rpm -ivh httpd-2.2.3-31.el5.i386.rpm
warning: httpd-2.2.3-31.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:httpd ########################################### [100%]
[root@myserver][/media/RHEL_5.4 i386 DVD/Server]
$
To enable SSL, then, need to install a package mod_ssl-2.2.3-31.el5.i386.rpm
[root@sampath][/media/RHEL_5.4 i386 DVD/Server]
$ rpm -ivh mod_ssl-2.2.3-31.el5.i386.rpm
warning: mod_ssl-2.2.3-31.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
libdistcache.so.1 is needed by mod_ssl-2.2.3-31.el5.i386
libnal.so.1 is needed by mod_ssl-2.2.3-31.el5.i386
[root@sampath][/media/RHEL_5.4 i386 DVD/Server]
$ rpm -ivh distcache-1.4.5-14.1.i386.rpm
warning: distcache-1.4.5-14.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:distcache ########################################### [100%]
[root@sampath][/media/RHEL_5.4 i386 DVD/Server]
$ rpm -ivh mod_ssl-2.2.3-31.el5.i386.rpm
warning: mod_ssl-2.2.3-31.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:mod_ssl ########################################### [100%]
[root@sampath][/media/RHEL_5.4 i386 DVD/Server]
$ service httpd status
httpd is stopped
[root@sampath][/media/RHEL_5.4 i386 DVD/Server]
$ service httpd start
Starting httpd: [ OK ]
[root@sampath][/media/RHEL_5.4 i386 DVD/Server]
$ netstat -ntpl |grep 443
tcp 0 0 :::443 :::* LISTEN 29673/httpd
[root@sampath][/media/RHEL_5.4 i386 DVD/Server]

2. Cấu hình
- File cấu hình: etc/httpd/conf/httpd.conf
- DocumentRoot mặc định: /var/www/html/

Cài đặt Virtual host: ví dụ
<VirtualHost 201.25.45.12:80>
    ServerName demo.com
    DocumentRoot /path/to/document
...
</VirtualHost>
Có 2 dạng virtual host là base-name (cùng IP, khác tên) và base-IP (khác IP).
Cả 2 trường hợp, ta đều ghi IP lên phần <VirtualHost ...> và ServerName sẽ định danh name.

Cài đặt nhiều httpd deamon, chúng ta cài nhiều deamon trong trường hợp cần host nhiều site và muốn bảo mật cao, đồng thời lượng tài nguyên dồi dào.
Cài đạt bình thường, mỗi deamon phân biệt bằng Listen directive (cũng phải ghi bằng IP)

* Chú ý với VirtualHost:
Khi nhiều tên miền cùng trỏ về 1 IP và cùng host trên 1 máy chủ, ta cấu hình VirtualHost.
Thứ tự tìm kiếm của httpd deamon như sau:
Đầu tiên, nó sẽ tìm theo IP ở dòng <VirtualHost ...>
Sau đó, nếu có nhiều VirtualHost thỏa điều kiện, nó sẽ tìm trong ServerName và ServerAlias.
Nếu không có cái nào khớp, nó sẽ lấy mặc định VirtualHost trên cùng.
Do vậy, thông thường ta cấu hình như sau:
- VirtualHost đầu tiên là <VirtualHost *:80>
- Các trang web (tên miền) trên máy chủ đều có VirtualHost của mình, kể cả web (tên miền) mặc định
Ví dụ 
<VirtualHost *:80>
    ServerAdmin webmaster@demo.com
    DocumentRoot /var/www/html/demo.com
    ServerName demo.com
    ErrorLog logs/demo.com-error_log
    CustomLog logs/demo.com-access_log common
</VirtualHost>
<VirtualHost 192.168.1.13:80>
    ServerAdmin webmaster@demo.com
    DocumentRoot /var/www/html/demo.com
    ServerName demo.com
    ServerAlias www.demo.com
    ErrorLog logs/demo2.com-error_log
    CustomLog logs/demo2.com-access_log common
</VirtualHost>
<VirtualHost 192.168.1.13:80>
    ServerAdmin webmaster@demo2.com
    DocumentRoot /var/www/html/demo2.com
    ServerName demo2.com
    ServerAlias www.demo2.com
    ErrorLog logs/demo2.com-error_log
    CustomLog logs/demo2.com-access_log common

</VirtualHost>
Trong đó demo.com là mặc định nhưng vẫn có 1 VirtualHost riêng.

Tham khảo: http://httpd.apache.org/docs/current/en/vhosts/examples.html
Common directive: http://web.mit.edu/~mkgray/afs/bar/afs/sipb.mit.edu/project/subversion/src/httpd-2.0/docs/manual/mod/mpm_common.html


MySQL


1. Cài đặt, cấu hình cơ bản:
Cài đặt:
yum install mysql mysql-server php-mysql

Cấu hình bảo mật cơ bản:
sudo /usr/bin/mysql_secure_installation

Mở port 3306 nếu ta có ứng dụng từ máy khác cần kết nối tới MySQL:
-I INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
-I OUTPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

Update password cho root:
UPDATE mysql.user SET Password = PASSWORD('password') WHERE User = 'root';
FLUSH PRIVILEGES;
2. Cấu hình:
Đây là thứ tự các file cấu hình của MySQL:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf


Tham khảo:
http://articles.slicehost.com/2011/3/10/installing-mysql-server-on-centos
http://articles.slicehost.com/2011/3/10/configuring-mysql-server-on-centos


PHP
1. Cài đặt:
yum install php

Nhận xét