Hướng dẫn cài đặt LEMP ( NGINX, PHP-FPM, MARIADB) và tạo VirtualHost trên centos 7
I.Chuẩn bi
Cài đặt kho epel và remi ,Tham khảo link sau Click Here
Cập nhật hệ thống
# yum update -y
Trong CentOS 7.0 sử dụng Firewall-cmd, vì vậy ta sẽ tùy chỉnh nó bằng lệnh như sau.
Ví dụ ta mở công 80 và 3306
# firewall-cmd --permanent --zone=public --add-port=80/tcp
# firewall-cmd --permanent --zone=public --add-port=3306/tcp
Khởi động lại filewall
# firewall-cmd --reload
II.Tiến hành
Bước 1: Tạo kho để cài đặt nginx
Nếu bạn muốn dùng phiên bản nginx 1.10. thì phải tạo kho cài đặt , còn dùng bản nginx 1.0, thì không cần làm bước này
Tạo file nginx.repo
# nano /etc/yum.repos.d/nginx.repo
Trong file nginx.repo ta tạo nội dung sau
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
Cho hệ thống update
# yum update -y
Bước 2: cài đặt nginx và php-fpm
Dùng lệnh sau để cài đặt nginx
# yum install nginx -y
Khởi động nginx
# systemctl start nginx
Để nginx chạy cùng hệ thống
# systemctl enable nginx
Kiểm tra phiên bản của nginx
# nginx -v
Dùng lệnh sau để cài đặt php-fpm và php-mysql để php làm việc với cơ sở dữ liệu
# yum install php php-mysql php-fpm
Có thể cài thêm một số modun php cần thiết
# yum -y install php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel
# yum -y install php-pecl-apc
Cấu hình bộ xử lý PHP
Truy cập vào file php.ini
# nano /etc/php.ini
Tìm dòng cgi.fix_pathinfo bỏ dấu ghi chú và thêm số 0 vào ,để cho php làm việc chính xác và phù hợp hơn với hệ thống
cgi.fix_pathinfo = 0
Sau đó ta truy cập vào file www.conf
# nano /etc/php-fpm.d/www.conf
Tìm các dòng sau và thay đổi
Thiết lập use và group làm việc cho nginx
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
Tìm dòng listen và thay đổi như sau
; Note: This value is mandatory.
listen = /var/run/php-fpm/php-fpm.sock
Tiếp tục ta sửa như sau
listen.owner = nginx
listen.group = nginx
;listen.mode = 0660
Khởi động php-fpm
# systemctl start php-fpm
Đến đây sau khi thiết lập cho php lắng nghe sock ta phải cấp quyền cho nó
# chmod -R 666 /var/run/php-fpm/php-fpm.sock
# chown nginx:nginx /var/run/php-fpm/php-fpm.sock
Khởi động lại php và cho khởi động cùng hệ thống
# systemctl restart php-fpm
# systemctl status php-fpm
# systemctl enable php-fpm
Cấu hình nginx để làm việc với php
Tạo 1 file backup file cấu hình chính của nginx
# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bk
# nano /etc/nginx/conf.d/default.conf
có nội dung như sau
server {
listen 80;
server_name localhost;# note that these lines are originally from the "location /" block
root /usr/share/nginx/html;
index index.php index.html index.htm;location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Sửa file /nginx.conf
# nano /etc/nginx/nginx.conf
Thêm dòng vàng sau vào
access_log /var/log/nginx/access.log main;
index index.php index.html index.htm;
Khởi động lại nginx
# systemctl restart nginx
Kiểm tra xem nginx và php đã làm việc với nhau chưa bằng cách tạo 1 file info.php
# nano /usr/share/nginx/html/info.php
<?php
phpinfo();
?>
Truy cập vào Web địa chỉ http://ip-vps/info.php để xem kết quả
Xem xong chúng ta xóa file này đi để bảo mật
# rm -rf /usr/share/nginx/html/info.php
Bước 3: Cài đặt MariaDB
Thêm kho MariaDB repo
Nếu bạn dùng mariaDB 5 thì cứ cài như bình thường
Để cài đặt MariaDB 10 ,bạn cần thêm một repository sau vào hệ thống bằng cách chạy lệnh sau
# wget -O /etc/yum.repos.d/MariaDB.repo http://mariadb.if-not-true-then-false.com/centos/$(rpm -E %centos)/$(uname -i)/10
Sau đó hãy xóa cache của yum đi
# yum clean all
update lại hệ thống để yum để nó cập nhật package của MariaDB
# yum update -y
Nếu bạn không làm 2 bước trên nó sẽ báo lỗi như sau
Transaction Check Error:
file /usr/share/mysql/ukrainian/errmsg.sys from install of MariaDB-server-10.0.25-1.el6.x86_64 conflicts with file from package mysql-libs-5.5.50-1.el6.remi.x86_64
Error Summary
Xem thêm link tham khao nâng cấp mariaDB từ 5. lên mariaDB 10. click here
Cài đặt MariaDB 5.5
# yum install -y MariaDB MariaDB-server
Khởi động MariaDB
# systemctl start mariadb
Cho MariaDB khởi động cùng hệ thống
# systemctl enable mariadb
Đặt mật khẩu cho tài khoản root MariaDB:
# mysql_secure_installation
Sẽ hiện ra các câu sau
câu 1 : Enter current password for root (enter for none)<Nhập mật khẩu hiện tại cho root (nhập cho không có)> : cứ enter là xong
câu 2 : Set root password? [Y/n]<Đặt mật khẩu gốc> chọn Y và nhập mật khẩu
câu 3 : Remove anonymous users? [Y/n]<xóa người dùng vô danh> chọn Y
câu 4 : Disallow root login remotely? [Y/n]<Không cho phép đăng nhập root từ xa> chọn Y
câu 5 : Remove test database and access to it? [Y/n]<xóa cơ sở dữ liệu kiểm tra và truy cập vào nó> chọn Y
câu 6 : Reload privilege tables now? [Y/n]<khởi động lại> Chọn Y
Để đăng nhập vào mariaDB
# mysql -u root -p
Một số câu lệnh của mariaDB
Hiển thị toàn bộ databases:
MariaDB [(none)]> SHOW DATABASES;
Tạo database:
MariaDB [(none)]> CREATE DATABASE tên cở sở dữu liệu;
Sử dụng một database:
MariaDB [(none)]> USE tên cở sở dữu liệu;
Xóa một database:
MariaDB [(none)]> DROP DATABASE tên cở sở dữu liệu;
Bước 4: Tạo VirtualHost
Giả sử ta có domain là maxserver.net
Ta sẽ tạo một số file như sau
Tạo 1 thư mục chứa các file log
# mkdir -p /home/nginx/maxserver.net/log
Tạo 1 file ghi các lỗi
# touch /home/nginx/maxserver.net/log/error.log
Tạo thư mục chứa code của web
# mkdir -p /home/nginx/maxserver.net/public_html
Gán use và group và phân quyền
# chown -R nginx:nginx /home/nginx
# chmod -R 755 /home/nginx/
Tạo 1 file cấu hình riêng cho domain
# cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/maxserver.net.conf
Chỉnh sửa file maxserver.net.conf
# nano /etc/nginx/conf.d/maxserver.net.conf
sửa dòng sau
server_name localhost;
Sửa thành
server_name www.maxserver.net maxserver.net;
Thêm dòng vàng sau
error_log /home/nginx/xobic.com/log/error.log error;
Tìm tất cả các dòng đường dẫn sau:
root /usr/share/nginx/html;
Và sửa thành
root /home/nginx/maxserver.net/public_html;
Khởi động lại nginx
# systemctl restart nginx.service
Test virtualhost bằng cách tạo 1 file
# nano /home/nginx/maxserver.net/public_html/index.html
Vội dung như sau
<html>
<head>
<title>maxserver</title>
</head>
<body>
<h1>Chuc mot ngay tot lanh, ban da tao virtualhost thanh cong</h1>
</body>
</html>
Và truy cập vào http://ip-vps/index.html và xem kết quả