Lab 4.3 Cài đặt Nginx trên Centos 6.5

root

Leader IT/Architect
Dec 31, 2012
1,153
72
48
- Để cài Nginx, bạn nên kiểm tra trên server bạn có cài software làm web server khác cùng tính năng. Nếu có bạn hãy tắt chúng đi, hoặc Remove hoàn toàn nếu bạn có ý định chuyển hẳn sang dùng Nginx.
- Thường với Centos thì máy chủ web hay dùng là Apache, hoặc có thể là Litespeed, Lighhttpd. Bạn tắt các phần mềm này bằng các câu lệnh sau:
service httpd stop
service lsws stop
service lighhttpd stop

- Sau đây là các bước cài đặt Nginx

1. Bước 1: tạo repository
- Vì Nginx hiện chưa có trên thư viện phần mềm của Centos, nên bạn cần phải bật chức năng này để tiến trình YUM có thể nhận ra được nơi chứa Nginx để tiền hành cài đặt.
[root@svuit ~]# vi /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
2. Bước 2: cài đặt Nginx
- Cài đặt Nginx bằng YUM
[root@svuit ~]# yum -y install nginx
- Tập tin cấu hình nginx ( đối với cài từ yum )
  • Tập tin cấu hình mặc định: /etc/nginx/nginx.conf
  • Tập tin cấu hình SSL mặc định: /etc/nginx/conf.d/ssl.conf
  • Tập tin cấu hình virtual hosting mặc định: /etc/nginx/conf.d/virtual.conf
  • Thư mục gốc của website mặc định: /usr/share/nginx/html
- Khởi động nginx
[root@svuit ~]# /etc/init.d/nginx start
3. Bước 3: Firewall open port 80
- Trên Firewall mở port 80 cho Nginx chạy
[root@svuit ~]# vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

- Kiểm tra port 80 đã mở và Nginx đang chạy
[root@svuit ~]# netstat -tulpn | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2268/nginx

- Client truy cập thử website default của Nginx thành công

 
II. Cài đặt và cấu hình PHP
1. Overview
- Apache:
  • việc thông dịch PHP script code khá đơn giản, vì Apache cung cấp sẵn 1 module có tính năng khi cần thông dịch PHP, Apache sẽ thông qua Module này gọi chương trình thông dịch trực tiếp để thực hiện.
  • Ngoài ra, nếu bạn sử dụng FastCGI thì quy trình có phức tạp hơn một chút nhưng cũng dùng Module tích hợp sẵn. Và việc phải dùng FastCGI là không bắt buộc.
- Nginx:
  • để thông dịch được PHP, nginx bắt buộc phải sử dụng FastCGI.
  • Cơ chế hoạt động của Nginx cũng khác hoàn toàn. Ở đây, Nginx đóng vai trò như một Proxy, thông qua spawn-fcgi, sản sinh ra một tiến trình phục vụ cho thao tác thông dịch. Tiến trình này sẽ điều khiển PHP Server. Và PHP Server tiến hành thông dịch rồi trả kết quả ngược lại quy trình trên.
2. Cài đặt PHP
- cài các package của php sau
Code:
yum install php-pear-Net-Socket php-pear php-common php-gd php-devel php php-mbstring php-pear-Mail php-cli php-imap php-snmp php-pdo php-xml php-pear-Auth-SASL php-ldap php-pear-Net-SMTP php-mysql
- Cài đặt Spawn-FCGI là một chương trình đơn giản để quản lý việc sinh ra tiến trình hoạt động trong FastCGI
Code:
[FONT=arial][B]yum install spawn-fcgi[/B][/FONT]
- Lưu ý: Một số trường hợp, khi bạn cài server tại Việt Nam có thể không cài đặt được spawn-fcgi theo cách trên, vì trên kho dữ liệu phần mềm của các Mirror tại Việt Nam không có, bạn có thể chạy lệnh kết hợp như sau:
Code:
[SIZE=3][FONT=times new roman]yum install nginx php-cli php make automake gcc gcc-c++ spawn-fcgi wget[/FONT][/SIZE]
Tiếp theo, cài tập lệnh điều khiển spawn-fcgi bằng dòng lệnh sau:
# wget http://bash.cyberciti.biz/dl/419.sh.zip
# unzip 419.sh.zip
# mv 419.sh /etc/init.d/php_cgi
# chmod +x /etc/init.d/php_cgi

- Chạy ứng dụng PHP tương tự như server biên dịch bằng dòng lệnh sau:
# /etc/init.d/php_cgi start
# netstat -tulpn | grep :9000

3. Cấu hình Nginx để thông dịch code PHP
- Để thông dịch được PHP, bắt buộc phải cấu hình cho Nginx làm việc với FastCGI và PHP server. Cũng vì thế, sau này nếu muốn chia server ra thành nhiều hosting, phục vụ cho nhiều domain khác nhau, thì mỗi hosting cũng phải cấu hình cho Nginx để thông dịch PHP.

- Khi mới cài đặt Nginx, bạn cần cấu hình trong file /etc/nginx/conf.d/default.conf để kiểm tra hoạt động của Nginx và PHP.

- Chi tiết file cấu hình như sau:
server {
listen 80;
server_name localhost;// tên nameserver của bạn

#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;

location / {
root /usr/share/nginx/html; // đường dẫn lưu trữ website mặc định của nginx
index index.php; //trang web mặc định sẽ được load lên
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}

4. Khởi chạy Nginx và kiểm tra
- Để khởi chạy Nginx, và cho phép khởi động khi reboot bạn dùng dòng lệnh:
service nginx start
chkconfig nginx on

- Thử tạo 1 file có tên index.php trong thư mục mặc định của Nginx là /etc/nginx/conf.d/default.conf với nội dung như sau:
<?php
phpinfo();​
?>

- Save lại, sau đó dùng trình duyệt bất kỳ truy cập vào địa chỉ:

- Nếu kết quả trả về là trang bao gồm tổng thể các thông tin về chương trình PHP thì bạn đã thành công trong việc cài đặt Nginx và cấu hình FastCGI thông dịch PHP.
 

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu