Cài NGINX, PHP 5, MySQL Server (LEMP) và phpMyAdmin trên Ubuntu

22 Tháng Một, 2015

Mình đã có một bài cách cài LAMP trên Ubuntu cách đây không lâu, và đã có hướng dẫn cho LAMP thì dĩ nhiên cũng nên bổ sung cách cài đặt LEMP trên Ubuntu để cho nó đầy đủ. Về việc cài LEMP trên Ubuntu bạn sẽ thấy nó nhanh và đơn giản hơn là cài LEMP trên CentOS vì chúng ta không cần phải nạp thêm repo vì gói cài đặt ứng dụng có sẵn của Ubuntu đã có sẵn NGINX.

Bạn có thể sử dụng Ubuntu 12.04 hoặc Ubuntu 14.04 nhưng tất cả đều nên chưa cài đặt cái gì để tránh xảy ra các xung đột nhé.

Tham khảo:

Cập nhật package

Trước khi cài chúng ta nên cập nhật gói ứng dụng có sẵn của Ubuntu lên phiên bản mới nhất nhé.

apt-get update

I. Cài đặt NGINX

Để cài đặt NGINX trên Ubuntu, bạn hãy gõ lệnh sau:

apt-get install nginx

Sau khi cài xong, hãy truy cập vào IP của bạn là sẽ thấy giao diện Welcome của NGINX.

Trang Welcome của NGINX

I.1) Thêm domain vào NGINX

Như bao cách thêm domain khác, chúng ta cần phải tạo ra một thư mục dành cho domain cần thêm vào.

mkdir -p /home/cddos.net/public_html mkdir -p /home/cddos.net/log

Tạo luôn 1 file tên index.html và đặt vào thư mục public_html vừa tạo với nội dung kiểu thế này để tí nữa dễ kiểm tra:

<h1>Them Domain Thanh Cong!

Tiếp theo là hãy copy file /etc/nginx/sites-available/default thành một file cấu hình cho domain muốn thêm vào với tên là /etc/nginx/sites-available/cddos.net.

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/cddos.net

Sau đó mở file cddos.net ra, ở phần listen 80 hãy tìm:

 server_name localhost;

Sửa localhost thành domain của bạn như thế này:

server_name www.cddos.net cddos.net;

Tìm tiếp:

root /usr/share/nginx/html;

Sửa thành đường dẫn tới thư mục public_html đã tạo ở trên:

root /home/cddos.net/public_html;

Tìm:

listen 80 default_server;

Xóa chữ default_server đi cho thành listen 80;.

Tìm và xóa đoạn này:

listen [::]:80 default_server ipv6only=on;

Và thêm đoạn sau vào bên dưới đoạn server_name để nó lưu log thành một file riêng cho dễ debug sau này:

error_log /home/cddos.net/log/error.log error;

Sau đây là nội dung file cấu hình của mình (đã bỏ bớt một số phần bị comment dấu # cho gọn, bạn có thể copy và sửa lại các thông tin cần thiết):

 server { listen 80; 	root /home/cddos.net/public_html; 	index index.html index.htm; 	# Make site accessible from http://localhost/ 	server_name www.cddos.net cddos.net; 	location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules 	} #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; 	#} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 	# 	#location ~ .php$ { #	fastcgi_split_path_info ^(.+.php)(/.+)$; 	#	# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini 	# 	#	# With php5-cgi alone: 	#	fastcgi_pass 127.0.0.1:9000; 	#	# With php5-fpm: 	#	fastcgi_pass unix:/var/run/php5-fpm.sock; 	#	fastcgi_index index.php; 	#	include fastcgi_params; 	#}  }

Lưu lại, sau đó chạy lệnh sau để tạo một symlink cho file này bên thư mục /etc/nginx/sites-enabled:

ln -s /etc/nginx/sites-available/cddos.net /etc/nginx/sites-enabled/cddos.net

Ok, khởi động lại NGINX:

service nginx restart

Bây giờ hãy truy cập vào domain bạn vừa thêm sẽ thấy nội dung file index.html mà ta đã tạo ở trên.

Nếu bạn thích, bạn cũng có thể tối ưu NGINX như bài này.

II. Cài đặt PHP5-FPM

Để cài PHP5-FPM trên Ubuntu và các module cần thiết trên Ubuntu thì sử dụng lệnh sau:

apt-get install php5-fpm

Cài xong, hãy mở lại file cấu hình domain bạn vừa t
hêm vào NGINX, tìm đoạn:

 	# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 	# 	#location ~ .php$ { #	fastcgi_split_path_info ^(.+.php)(/.+)$; 	#	# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini 	# 	#	# With php5-cgi alone: 	#	fastcgi_pass 127.0.0.1:9000; 	#	# With php5-fpm: 	#	fastcgi_pass unix:/var/run/php5-fpm.sock; 	#	fastcgi_index index.php; 	#	include fastcgi_params; 	#}

Thay toàn bộ thành

 	# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 	location ~ .php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; 	}

Tìm tiếp:

index index.html index.htm;

Sửa thành

index index.php index.html index.htm;

Kế tiếp là mở file /etc/php5/fpm/php.ini ra và tìm:

;cgi.fix_pathinfo=1

Xóa dấu ; và thay giá trị 1 thành 0.

cgi.fix_pathinfo=0

Tiếp tục mở file /etc/php5/fpm/pool.d/www.conf và tìm:

listen = /var/run/php5-fpm.sock

Thay thành

listen = 127.0.0.1:9000

Và tìm đoạn listen.allowed_clients = 127.0.0.1 rồi xóa dấu ; đằng trước đi.

Và khởi động lại NGINX và PHP5-FPM.

service nginx restart service php5-fpm restart

Bây giờ hãy tạo một file info.php với nội dung sau và đặt nó vào thư mục public_html của domain vừa thêm vào:

<?php phpinfo(); ?>

Chạy file đó nếu nó ra thông tin PHP là thành công.

III. Cài đặt MySQL Server

Cách cài đặt MySQL Server trên Ubuntu thì khá đơn giản, hãy chạy lệnh dưới đây rồi cài như bài hướng dẫn LAMP trên Ubuntu là được.

apt-get install php5-mysql mysql-server

Nhớ khởi động lại PHP5-FPM nữa nhé.

III.1) Cài đặt phpMyAdmin

Cách cài đặt phpMyAdmin trên Ubuntu bạn cũng làm y hệt như ở bài cài LAMP cho Ubuntu. Nhưng nhớ bật mod mcrypt lên.

  apt-get install php5-mcrypt  php5enmod mcrypt

Khởi động lại PHP5-FPM:

service php5-fpm restart

Và sau đó tạo một symlink cho phpMyAdmin trong thư mục public_html của domain cần sử dụng phpMyAdmin:

  cd /home/cddos.net/public_html  ln -s /usr/share/phpmyadmin

Bây giờ bạn có thể truy cập với đường dẫn http://domain/phpmyadmin, nếu muốn sửa /phpmyadmin thành cái tên khác thì cứ đổi cái file symlink trong thư mục public_html là được.

Phân quyền thư mục & file

Hãy nhớ rằng sau này nếu cài website vào để chạy thì các file và thư mục đó phải được gắn quyền sở hữu của user www-data để PHP có thể làm việc tốt.

chown -R www-data:www-data /home/cddos.net

Lời kết

Vậy là bạn đã cài được một webserver sử dụng NGINX và PHP5-FPM trên Ubuntu rồi và đã có thể chạy tốt một website sử dụng PHP & MySQL trên máy chủ của mình. Nếu có gì gặp lỗi trong lúc làm theo bài này thì hãy comment nhé.