Cài đặt LEMP server trên Debian 10

Để chạy một website WordPress cần phải có hosting được cài đặt sẵn các dịch vụ cần thiết. Gần đây máy chủ VPS được bán với giá khá rẻ, thậm chí bạn còn có thể tìm được VPS miễn phí không khó. Nhưng hạn chế của VPS giá rẻ là có lượng RAM khiêm tốn (chỉ khoảng 256Mb hoặc 512Mb). Trước đây, tôi có cài đặt LEMP trên Ubuntu VPS với lượng RAM rất khiêm tốn chỉ 128Mb. Bẵng đi một thời gian khá lâu tôi không truy cập vào VPS để vọc thêm gì nữa cả. Cho đến hôm qua tôi dùng lệnh cập nhật cho VPS thì nó bị đứng và treo giữa chừng nên tiện tay tôi xóa và cài đặt lại hệ điều hành. Rất tiếc, Ubuntu 14 không còn trong mục tùy chọn cài đặt của VPS nên tôi bắt buộc phải nâng cấp. Lần này tôi thử cài đặt Debian bản mới nhất cho đến thời điểm hiện tại để chạy một web wordpress. Thành công! Với giá chỉ tầm khoảng 15USD/năm cho VPS chạy site wordpress thì tôi nghĩ nó khá là tiết kiệm cho những người mới bắt đầu làm site wordpress.

Để bắt đầu, bạn có thể tham khảo sơ qua bài viết lần trước. Mặc dù có một chút ít thay đổi về mysql, về file cấu hình nhưng tôi thấy lại dễ cài đặt hơn so với bản Ubuntu lần trước vì tôi thấy hầu như không phải gặp lỗi nào.

Lưu ý: Bài viết này thực hiện ở user root. Để tiện cho việc thực hiện ở user thông thường (ví dụ như user debian), thực hiện các lệnh sau ở tài khoản root.

# usermod -aG sudo username
# exec su -l username

Thay thế username bằng tên username của bạn. Ví dụ ubuntu

1. L - cài đặt phiên bản Linux

Lần này phiên bản cài đặt là Debian 10

2. E - cài đặt Nginx

Cài Nginx với một lệnh duy nhất:

sudo apt install nginx-full

Sau khi cài đặt xong Nginx, bạn có thể truy xuất website theo dạng tên miền hoặc địa chỉ IP

http://domain_hoặc_IP

3. M - cài đặt và cấu hình MySQL/Mariadb để quản lý dữ liệu website

$ sudo apt update
$ sudo apt install mariadb-server
$ mysql_secure_installation

Trên Debian 10 có thể bạn sẽ gặp lỗi như sau

ERROR 1698 (28000): Access denied for user ‘root’@‘localhost’

ERROR 1698 (28000): Access denied for user ‘root’@‘localhost’

Có thể khắc phục như sau:

$ sudo mysql -u root

mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

$ sudo systemctl restart mysql

Hướng dẫn trên được tôi tham khảo ở đây

Backup file cấu hình

$ sudo mv /etc/mysql/conf.d/mysql.cnf /etc/mysql/conf.d/mysql.cnf.backup

Tạo file cấu hình mysql.cnf ở thư mục /etc/mysql/conf.d/ với nội dung như file cấu hình tải tại đây.

4. P - cài đặt và cấu hình PHP Processor

PHP bản mặc định trên Debian 10 là php7.3, nếu bạn muốn cài phiên bản cao hơn thì có thể tham khảo các bài viết bên dưới. Bạn có thể tham khảo phiên bản mặc định ứng với từng Distro linux trên internet hoặc có thể sử dụng lệnh apt install php-fpm để xem phiên bản mặc định nào sẽ được cài đặt sau khi thực hiện lệnh.

$ sudo apt install php-fpm php-mysql php-zip php-xml php-curl

Kiểm tra trạng thái của php sau khi cài đặt

$ sudo systemctl status php7.3-fpm.service

Backup file cấu hình, tải về và upload lên thư mục fpm

$ sudo mv /etc/php/7.3/fpm/php.ini /etc/php/7.3/fpm/php.ini.backup
$ sudo nano /etc/php/7.3/fpm/php.ini
$ sudo systemctl restart php7.3-fpm 

5. Cấu hình Nginx để sử dụng PHP Processor

Backup file cấu hình hiện tại:

$ sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak

Tải file default và upload theo đường dẫn sau.

/etc/nginx/sites-available/

Khởi động lại nginx:

$ sudo systemctl restart nginx

Kiểm tra sự làm việc của nginx và php bằng cách tạo file test.php có nội dung bên dưới

$ sudo mkdir -p /srv/www
$ sudo nano /srv/www/test.php
<?php
phpinfo();
?>

Sau đó gõ vào trình duyệt địa chỉ sau:

http://domain_name_or_IP/test.php

6. Tạo cơ sở dữ liệu cho Mariadb

Sau khi mọi thứ đã ok bạn tiến hành tạo cơ sở dữ liệu cho maridb và bắt đầu cài đặt wordpress.

Để tạo một cơ sở dữ liệu tên là “skywirex” và một user tên là “skywire” và nâng tất cả quyền cho user “skywire” trên cơ sở dữ liệu “skywirex”, thực thi lệnh sau (mỗi hàng là một lệnh).

sudo mysql -u root
create database skywirex charset utf8; 
create user 'skywire'@'localhost' identified by 'passcuaban';
grant all privileges on skywirex.* to 'skywire'@'localhost' with grant option;
flush privileges;

Bây giờ VPS đã sẵn sàng để cài đặt và chạy Wordpress. Có thể xem thêm việc cài đặt chứng chỉ SSL sử dụng Cloudflare hoàn toàn miễn phí

7. Gỡ bỏ

Trong quá trình cài đặt có thể bạn sẽ gặp lỗi hoặc đơn giản bạn muốn gỡ bỏ một số thành phần nào đó.

Nginx

Những câu lệnh sau gỡ bỏ sạch sẽ nginx nếu cần cài đặt lại từ đầu:

sudo apt remove nginx-full nginx-common
sudo apt purge nginx-full nginx-common
sudo apt autoremove

BONUS

chmod cho site Wordpress

Giả sử thư mục chứa website là /srv/www. Bạn thực hiện những câu lệnh bên dưới để có chmod đúng cho thư mục chưa webite. Tham khảo ở đây.

sudo usermod -aG www-data $USER
groups $USER
sudo chown debian:www-data -R /srv/www/wp-content/*
cd /srv/www/wp-content
sudo find . -type d -exec chmod -R 775 {} \;
sudo find . -type f -exec chmod -R 664 {} \;

Tham khảo:

https://linuxize.com/post/how-to-add-user-to-sudoers-in-ubuntu/

https://gridscale.io/en/community/tutorials/mysql-datenbank-erstellen-loeschen/

https://www.linode.com/docs/web-servers/nginx/serve-php-php-fpm-and-nginx/

https://www.cyberciti.biz/faq/how-to-reload-restart-php7-0-fpm-service-linux-unix/

http://www.techspacekh.com/installing-and-configuring-mariadb-server-on-debian-9-stretch/

https://stackoverflow.com/questions/46378017/install-php5-6-in-debian-9