Hướng Dẫn Cài Đặt Nginx, MariaDB, PHP (LEMP) Trên VPS CentOS Hostinger

Ngay sau khi bạn đã mua VPS từ một nhà cung cấp Hosting (mình lựa chọn VPS của Hostinger) để tạo một website bạn cần phải có một web server giúp nó có thể chạy các phần mềm trên server (máy chủ), từ đó cung cấp các dịch vụ hay xử lý các yêu cầu truy cập từ client (máy khách).

Hướng Dẫn Cài Đặt Nginx, MariaDB, PHP (LEMP) Trên CentOS VPS Hostinger

Có 2 loại web server phổ biến nhất hiện nay đó là Apache và Nginx. Nginx và Apache có những ưu, nhược điểm riêng biệt. Nhưng mình vẫn thích dùng Nginx hơn vì nó là một web server nhỏ gọn, phù hợp với website của mình, tốn ít RAM, mạnh mẽ, cân bằng tải rất tốt và có hiệu suất hoạt động cao hơn.

Vậy Thì LEMP Có Nghĩa Là Gì?

LEMP là một bộ webserver mã nguồn mở gồm Linux + Nginx + MariaDB + PHP (PHP-FPM) đang được người dùng trên các máy chủ Web sử dụng phổ biến hay đơn giản là những người dùng VPS như mình ^^. LEMP cũng có các thành phần cấu tạo tương tự như LAMP, chỉ khác là thay vì LEMP sử dụng Nginx thì LAMP lại sử dụng web server là Apache mà thôi.

Ở bài viết này mình sẽ hướng dẫn các bạn cài đặt LEMP trên hệ điều hành CentOS 7 64bit, các phiên bản khác như CentOS 6.5/6.4/6.3/6.2/6.1/6/5.10 cũng tương tự nhé. Mình sử dụng Gói level 2 VPS của nhà cung cấp Hostinger, các bạn có thể lựa chọn các gói phù hợp với nhu cầu cũng như “ví tiền” của bạn nhé!

Hướng Dẫn Cài Đặt Nginx, MariaDB, PHP (LEMP) quản lý vps

Sau khi VPS của bạn đã ở tình trạng “đang chạy” thì hãy bắt đầu với việc cài đặt LEMP nên máy chủ của bạn thôi :))). CentOS cũng như các distro Linux khác các thao tác cài đặt trên VPS đều phải thông qua dòng lệnh console. Và để thực hiện được điều đó bạn cần phải sử dụng một trong các phần mềm như: PuTTY, Zoc7 Terminal,…

Nhưng mình thích dùng ZOC7 Terminal hơn vì có thể copy/paste dễ dàng giúp việc cài đặt của bạn dễ dàng hơn. Ví dụ như bạn copy câu lệnh trong bài hướng dẫn của mình và paste vào Zoc trên máy bạn chẳng hạn!!!  À nè! đó là đối với Windows thôi nhé. Còn nếu máy bạn đang sử dụng là Linux hay Mac thì bạn không cần phải download các phần mềm như trên đâu. Bạn có thể kết nối tới Server thông qua Terminal thông qua command sau:

ssh [email protected] (sau @ chính là ip VPS của bạn)

Ta sẽ bắt đầu vào việc cài đặt LEMP thôi nào :))

Các Cách Cài Đặt LEMP Trên CentOS

Có 2 cách để cài đặt LEMP trên máy ảo CentOS của bạn đó là cài đặt tự động và cài đặt thủ công từng dịch vụ.

1. Cài Đặt LEMP Tự Động

Cách này sẽ phù hợp hơn đối với những bạn không chuyên về việc sử dụng câu lệnh trên Linux hay đơn giản chỉ là thích “nhanh, gọn, lẹ” . Đối với việc cài đặt LEMP tự động này bạn có thể lựa chọn control panel (sử dụng giao diện web) nhưng nhược điểm của nó là bảo mật kém và tốn nhiều RAM. Lựa chọn thứ hai đơn giản hơn đó là sử dụng script tự động, vì nó sử dụng giao diện console nên ít tốn RAM và khả năng bảo mật cao hơn. Các bạn có thể lựa chọn các loại script như: HocVPS, Centmin Mod, VPSSIM.

Nhưng mình khuyến khích bạn sử dụng script HocVPS hơn vì nó chỉ cài đặt các thành phần bắt buộc phải có với mỗi web server nên đỡ “ngốn” RAM hơn, Script này cũng đã được sử dụng phổ biến nhất hiện nay, nó được phát triển bởi anh Luân Trần – admin của website hocvps.com rất nổi tiếng. Hướng dẫn chi tiết của script HocVPS này bạn có thể xem tại đây.

2. Cài Đặt LEMP Thủ Công

Nói là thủ công nhưng không phải quá khó mà bạn không làm được, bạn có thể copy lần lượt các câu lệnh dưới đây từng bước theo hướng dẫn của mình nhé. Sau đó paste vào ZOC7 Terminal (hoặc Putty nếu bạn đã cài) và tất nhiên bạn cần phải đăng nhập trên phần mềm này bằng tài khoản SSH IP, Port (22), Username và Password rồi.

Do Nginx không sẵn có trên CentOS 7 nên để cài phiên bản mới nhất của Nginx thì trước tiên các bạn cần phải tạo các gói repo cần thiết lần lượt như sau:

Hướng Dẫn Cài Đặt Nginx, MariaDB, PHP (LEMP) - Thêm repo

+ EPEL repository

yum install epel-release

+ Remi repository

Tùy từng version CentOS trên VPS của bạn mà hãy sử dụng một trong những câu lệnh sau:

--- CentOS 7 ---
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

--- CentOS 6 ---
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

--- CentOS 5 ---
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

+ Nginx repository

--- CentOS 7 ---
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

--- CentOS 6 ---
rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

--- CentOS 5 ---
rpm -Uvh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm

 + Cài Đặt Nginx trên CentOS 7/6/5

---PHP 7.1 ---
yum --enablerepo=remi,remi-php71 install -y nginx php-fpm php-common
--- PHP 7.0 ---
yum --enablerepo=remi,remi-php70 install -y nginx php-fpm php-common
--- PHP 5.6 ---
yum --enablerepo=remi,remi-php56 install -y nginx php-fpm php-common
--- PHP 5.5 --- 
yum --enablerepo=remi,remi-php55 install -y nginx php-fpm php-common
--- PHP 5.4 --- 
yum --enablerepo=remi install -y nginx php-fpm php-common
--- PHP 5.3 ---
yum install -y nginx php-fpm php-common

+ Cài Đặt Các PHP Module Cần Thiết

Bạn có thể lựa chọn cài một số module PHP thông dụng như:

  • MySQL (php-mysqlnd)
  • PostgreSQL (php-pgsql)
  • MongoDB (php-pecl-mongo)
  • SQLite (php-pecl-sqlite)
  • OPcache (php-opcache)
  • APCu (php-pecl-apc)
  • CLI (php-cli)
  • PEAR (php-pear)
  • PDO (php-pdo)
  • Memcache (php-pecl-memcache)
  • Memcached (php-pecl-memcached)
  • MBString (php-mbstring)
  • MCrypt (php-mcrypt)
  • GD (php-gd)
  • XML (php-xml)

Bằng câu lệnh sau:

yum --enablerepo=remi,remi-php56 install ten_module

Ví dụ bạn muốn cài hết các module trên thì hãy sử dụng câu lệnh sau:

yum --enablerepo=remi,remi-php56 install -y php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongo php-pecl-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

+ Stop httpd service(Apache)

--- CentOS 7 ---
systemctl stop httpd.service
--- CentOS 6.5 ---
service httpd stop
--- CentOS 5.10 --- service httpd stop

+ Start Nginx

--- CentOS 7 ---
systemctl start nginx.service
--- CentOS 6.5/5.10 ---
service nginx start

+ Start PHP-FPM

--- CentOS 7 ---
systemctl start php-fpm.service

--- CentOS 6.5/5.10 ---
service php-fpm start

+ Cài đặt tắt httpd (Apache) khi boot

--- CentOS 7 ---
systemctl disable httpd.service
 
--- CentOS 6.5/5.10 ---
chkconfig httpd off

+ Cài đặt Autostart Nginx (Tự động khởi động Nginx)

--- CentOS 7 ---
systemctl enable nginx.service
 
--- CentOS 6.5/5.10 ---
chkconfig --add nginx
chkconfig --levels 235 nginx on

+ Cài đặt tự động khởi động PHP-FPM

--- CentOS 7 ---
systemctl enable php-fpm.service
 
--- CentOS 6.5/5.10 ---
chkconfig --add php-fpm
chkconfig --levels 235 php-fpm on

+ Cấu hình Nghinx

  • Sử dụng nano để thay đổi worker_processes
nano /etc/nginx/nginx.conf

Tại đây bạn hãy chỉnh worker_processes bằng với số processor VPS của bạn nhé ( processor VPS là số nhân(core) của VPS, bạn có thể thấy ở trong trang quản lý VPS, bạn cũng có thể kiểm tra bằng lệnh # cat /proc/cpuinfo)

  • Tiến hành cấu hình virtual hosts trên Nginx
nano /etc/nginx/conf.d/default.conf

file default.conf được mở ra bạn hãy thay đổi thông tin như sau, bạn hãy thay đổi theo các phần bị bôi đỏ nhé:

#
# The default server
#
server {
    listen       80 default_server; // <== port mac dinh
    server_name tenwebcuaban.com; //<== Nhap ten mien cua ban

    location / {
        root   /usr/share/nginx/html; // <== duong dan document root
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/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$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
  • Sau đó bạn hãy Restart lại Nginx
--- CentOS 7 ---
systemctl restart nginx.service
 
--- CentOS 6.5/5.10 ---
service nginx restart

+ Cấu hình PHP-FPM

Sử dụng câu lệnh:

nano /etc/php-fpm.d/www.conf

Bạn hãy thay đổi theo chữ màu đỏ sau:

[...]
 ; Unix user/group of processes
 ; Note: The user is mandatory. If the group is not set, the default user's group
 ; will be used.
 ; RPM: apache Choosed to be able to access some dir as httpd
 user = nginx
 ; RPM: Keep a group allowed to write in log dir.
 group = nginx
 [...]

Sau đó lại Restart PHP-FPM

--- CentOS 7 ---
systemctl restart php-fpm.service

--- CentOS 6.5/5.10 ---
service php-fpm restart

+ Cài đặt MariaDB trên CentOS 7/6/5

  • Cài đặt MariaDB Repo

*** Phiên bản CentOS 7 đã được có sẵn nên bạn không cần phải cài. Ngược lại với các version cũ thì bạn có thể cài đặt theo lệnh sau:

--- CentOS 6/5 MariaDB 10.0 ---
wget -O /etc/yum.repos.d/MariaDB.repo http://mariadb.if-not-true-then-false.com/centos/$(rpm -E %centos)/$(uname -i)/10
  • Cài đặt MariaDB
--- CentOS 7 ---
yum install -y mariadb mariadb-server

--- CentOS 6.5-5.10 ---
yum install -y MariaDB MariaDB-server
  • Khởi động MariaDB và cài đặt tự động chạy khi boot
--- CentOS 7 ---
systemctl start mariadb.service
systemctl enable mariadb.service

--- CentOS 6.5/5.10 ---
service mysql start
chkconfig --levels 235 mysql on
  • Cấu hình MariaDB

Sử dụng lệnh:

/usr/bin/mysql_secure_installation

Lúc đầu nó sẽ hỏi password root, bạn cứ Enter cái nhé. Sau đó hãy làm theo như dưới đây nhé!:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we\'ll need the current
password for the root user. If you\'ve just installed MariaDB, 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):
OK, successfully used password, moving on...

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

Set root password? [Y/n] y // <== Bam phim y
New password: // <== Nhap pass moi
Re-enter new password: // <== Nhap pass moi lai
Password updated successfully!
Reloading privilege tables..
... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB 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] y // <== Nhap phim y
... 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] y // <== Nhap phim y
... Success!

By default, MariaDB 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] y // <== Nhap phim y
- 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] y // <== Nhap phim y
... Success!

Cleaning up...

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

Thanks for using MariaDB!

Thế là bạn đã hoàn tất việc cài đặt LEMP trên VPS CentOS của bạn rồi đó^^

Chúc các bạn cài đặt thành công!!!

***Nguồn: Bài viết này mình cũng tham khảo thêm bài Hướng dẫn cài đặt LEMP (Linux, Nginx, MariaDB, PHP) trên CentOS của hocvps.com của anh Luân

Hướng Dẫn Cài Đặt Nginx, MariaDB, PHP (LEMP) Trên VPS CentOS Hostinger
5 (100%) 1 vote

Bình luận

avatar
  Đăng ký  
Thông báo của
How to whitelist website on AdBlocker?

How to whitelist website on AdBlocker?

  1. Click on the AdBlock Plus icon on the top right corner of your browser
  2. Click on "Enabled on this site" from the AdBlock Plus option
  3. Refresh the page and start browsing the site