Dùng thử miễn phíDịch vụ hosting giá rẻ, ổ cứng SSD Raid 10 tốc độ cao

Hướng dẫn cài đặt LEMP trên ubuntu 18.04 step by step

Hướng dẫn cài đặt LEMP trên ubuntu 18.04 step by step

LEMP la gì?

LEMP server là một webserver trên môi trường Linux, LEMP( Linux, Nginx, MySql và PHP (hoặc Perl/Python))

LEMP

Các thành phần cấu thành LEMP stack cũng gần tương tự với LAMP, chỉ khác là Apache sẽ được thay thế bởi nginx. Nginx được đọc là “engine-x”, giải thích cho chữ E trong “LEPM”, nginx cũng là một ứng dụng HTTP proxy nhưng không có được danh tiếng ấn tượng như Apache, tuy nhiên, nó có ưu điểm là cho phép xử lý tốc độ tải cao hơn đối với các HTTP request

Nginx là một máy chủ proxy và proxy hiệu suất cao với mức tiêu thụ bộ nhớ thấp. Hầu hết các trang web quy mô lớn như Netflix, Pinterest, CloudFlare, GitHub đều sử dụng Nginx.

Trong bài viết này mình sẽ hướng dẫn cách cài đặt LEMP trên ubuntu 18.04 và PHP 7.2, Mysql

Xem thêm Hướng dẫn cài đặt LAMP trên ubuntu 18.04

Cài đặt LEMP trên ubuntu 18.04

Trước tiên các bạn cần update ubuntu

sudo apt update

Bước 1: Cài đặt Nginx

Trong bước này, mình sẽ cài đặt máy chủ web Nginx từ  Ubuntu repository.

sudo apt install nginx -y

Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ Nginx và cho phép nó khởi chạy mỗi khi khởi động hệ thống

systemctl start nginx
systemctl enable nginx

Cấu hình firewall cho webserver Nginx

Ubuntu 18.04 sử dụng UFW firewall, chúng ta sẽ mở port 80 và 443 cho webserver

ufw allow https
ufw allow http

Khởi động UFW firewall và cho phép khởi động cùng hệ thống.

ufw enable

cấu-hình-UFW-firewall-cho-phép-nginx

Ok xong

Bước 2 Cài đặt Mysql / MariaDB

Các bạn có thể sử dụng Mysql hoặc MariaDb

1 Sử dụng Mysql

MySQL là Hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) phổ biến nhất được tạo bởi Oracle Corporation. Đây là thành phần trung tâm của LEMP Stack và mình sẽ cài đặt phiên bản MySQL mới nhất từ ​​kho lưu trữ Ubuntu.

Cài đặt MySQL bằng lệnh apt bên dưới.

sudo apt install mysql-server mysql-client -y

Sau khi cài đặt MySQL hoàn thành, thực hiện tự khởi động Mysql sau khi reboot hệ thống

systemctl start mysql
systemctl enable mysql

Tiếp theo chúng ta cần thiết lập bảo mật mysql

mysql_secure_installation

Bạn sẽ được yêu cầu thiết lập các thông tin dưới đây

Securing the MySQL server deployment.
Enter password for user root: <-- Enter the MySQL root password
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:
Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : <-- Choose 'y' here if you like to enable the password validation, I don't need that function, so I choose 'n' here.
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL 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? (Press y|Y for Yes, any other key for No) : <-- 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? (Press y|Y for Yes, any other key for No) : <-- y
Success.
By default, MySQL 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? (Press y|Y for Yes, any other key for No) : <-- 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? (Press y|Y for Yes, any other key for No) : <-- y
Success.
All done!

Ok vậy là xong

2. Sử dụng MariaDB

Để thực hiện cài đặt phiên bản mới nhất hay theo yêu cầu các bạn cần tạo MariaDB repository trên ubuntu, truy cập vào kho cài đặt mariadb tại đây

Lựa chọn phiên bản cần cài và thực hiện theo hướng dẫn, ở đây mình sẽ cài MariaDB 10.3 trê ubuntu 18.04, chúng ta sẽ thêm MariaDB repository như sau

apt-get install software-properties-common

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mariadb.biz.net.id/repo/10.3/ubuntu bionic main'

Xong chạy các lệnh sau để cài đặt MariaDb trên ubuntu

apt update

apt install mariadb-server

Chúng ta cần thiết lập bảo mật cho MariaDB

mysql_secure_installation

Hoàn thành các yêu cầu

Enter current password for root (enter for none): <-- press enter
Set root password? [Y/n] <-- y
New password: <-- Enter the new MariaDB root password here
Re-enter new password: <-- Repeat the password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

Ok cài đặt cơ sở dữ liệu hoàn  tất

Bước 3 Install PHP-FPM

PHP-FPM hoặc FastCGI Process Manager là một giải pháp thay thế cho FastCGI PHP cũ hơn, cung cấp các tính năng bổ sung và cải thiện tốc độ.

Mình sẽ cài đặt PHP7.2-FPM với một số phần mở rộng bổ sung theo yêu cầu của phpmyadmin.

Cài đặt PHP-FPM bằng lệnh bên dưới.

sudo apt install php7.2 php7.2-fpm php7.2-cli php7.2-curl php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php-pear -y

Khởi động PHP-FPM cùng hệ thống

systemctl start php7.2-fpm
systemctl enable php7.2-fpm

Bước 4 Cấu hình Nginx và PHP-FPM

Cấu hình Nginx

Đi đến thư mục  ‘/etc/nginx‘ và chỉnh sửa file ‘nginx.conf

cd /etc/nginx/
nano nginx.conf

Bỏ comment các dòng dưới đây

keepalive_timeout 2;
server_tokens off;

Xong lưu lại và thoát

Tiếp tục chỉnh sửa file  default Nginx virtual host

nano sites-available/default

Bỏ ghi chú dòng PHP hiển thị bên dưới và thay đổi dòng sock

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        # # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        # # With php-cgi (or other tcp sockets):
        # fastcgi_pass 127.2.0.1:9000;
        }

Xong lưu lại và thoát

Kểm tra Nginx hoạt động đảm bảo không có lỗi và khởi động lại Nginx

nginx -t
systemctl reload nginx
Cấu hình PHP-FPM

Đi đến thư mục ‘/etc/php/7.2‘  và sửa file ‘php.ini

cd /etc/php/7.2/
nano fpm/php.ini

Bỏ comment dòng ‘cgi.fix_patinfo‘ và thay đổi  value thành ‘0‘.

cgi.fix_pathinfo=0

Lưu lại và thoát

Khởi động lại PHP-FPM service.

systemctl reload php7.2-fpm

Ok xong

Bước 5: test kểm tra cài đặt LEMP

Đi đến thư mục web-root: / var / www / html,  tạo một tệp PHP  (info.php) để kiểm tra việc Nginx xử lý PHP thành công chưa

nano /var/www/html/info.php
<?php
phpinfo();

Ok mở trình duyệt web lên và kiểm tra kết quả

Hướng dẫn cài đặt LEMP trên ubuntu 18.04

Cài đặt phpMyAdmin để quản lý CSDL

Chạy lệnh sau để cài đặt phpmyadmin

sudo apt install phpmyadmin -y

Trong quá trình cài đặt nó sẽ hỏi web server configuration for phpmyadmin, các bạn không chọn option nào hết và chọn OK. ( chúng ta sẽ cấu hình với Nginx sau)

Sau khi cài đặt xong  chúng ta cần cấu hình phpmyadmin để chạy dưới máy chủ web Nginx và định cấu hình truy cập phpmyadmin của người dùng MySQL

Đi đến thư mục ‘/etc/nginx‘ và chỉnh sửa file default virtual host

cd /etc/nginx/
nano sites-available/default

Copy nội dung dưới đây và dán vào bên dưới ‘server {…}

location /phpmyadmin {
    root /usr/share/;
    index index.php;
    try_files $uri $uri/ =404;

location ~ ^/phpmyadmin/(doc|sql|setup)/ {
    deny all;
    }

location ~ /phpmyadmin/(.+\.php)$ {
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
    }
}

Lưu lại và thoát

Kiểm tra cài đặt và khởi động lại nginx service.

nginx -t
systemctl reload nginx

Tạo tài khoản truy cập phpmyadmin

Chúng ta sẽ tạo một người dùng MySQL mới có tên “admin” với cùng đặc quyền so với người dùng root.

Đăng nhập vào cơ sở dữ liệu MySQL với tư cách người dùng root trên shell:

mysql -u root

Tạo một user với tên “admin” và mật khẩu “@ad12345”.

CREATE USER 'admin'@'localhost' IDENTIFIED BY '@ad12345';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

Ok giờ bạn có thể truy cập phpMyAdmin qua trình duyệt web http://your_IP_webserver/phpmyadmin/

Vậy là mình đã hướng dẫn xong các bước cài đặt LEMP trên ubuntu 18.04, trong bài viết sau mình sẽ hướng dẫn các bạn cách cài đặt LEMP trên centos 7

Add a Comment

Your email address will not be published. Required fields are marked *