Nội dung
Tiếp với series LEMP Stack ở bài này mình sẽ hướng dẫn tạo website wordpress với LEMP trên Ubuntu 22.04
I. Yêu cầu
- Login vào máy chủ/VPS với quyền root hoặc sudo root
- Trên máy chủ/VPS đã có cài đặt LEMP Stack trên Ubuntu.
- Trỏ tên miền về IP của máy chủ/VPS
II. Các bước cấu hình và tạo website
Bước 1. Login SSH vào máy chủ/VPS
Để thực hiện việc tạo website, việc đầu tiên bạn cần làm là SSH hoặc truy cập VPS hoặc máy chủ của bạn với quyền root trước. Nếu bạn chưa biết cách SSH vào VPS hoặc Server của bạn thì bạn có thể tham khảo bài viết hướng dẫn sau:
Bước 2. Cấu hình vhost và tạo website
1. Cấu hình vhost cho website
Mặc định nginx sẽ có 1 file default
có cấu hình sẵn, bạn có thể xoá nội dung bên trong đi và sử dụng cấu hình mẫu của mình.
Đầu tiền bạn cần làm rỗng file cấu hình mặc định. File này nằm ở đường dẫn /etc/nginx/sites-enabled
, bạn di chuyển tới thư mục này và dùng lệnh sau.
echo > default
root@ubuntu-2204:/etc/nginx/sites-enabled# echo > default
Tiếp đến bạn mở file này ra và thêm đoạn cấu hình bên dưới vào.
server {
listen 80;
server_name <tên miền hoặc IP>;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
root /var/www/html/;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Trong đó:
- server_name: Tên miền/subdomain của bạn hoặc IP máy chủ/VPS.
- root: Đường dẫn chứa mã nguồn của website.
- fastcgi_pass: Đường dẫn của file sock php-fpm
- Để xem đường dẫn bạn mở file với đường dẫn
/etc/php/8.1/fpm/pool.d/www.conf
- Để xem đường dẫn bạn mở file với đường dẫn
Bạn lưu lại cấu hình gõ ” :wq “ và khởi động lại Nginx.
systemctl restart nginx
root@ubuntu-2204:~# systemctl restart nginx
Sau khi bạn thêm cấu hình Virtual Host xong, bạn di chuyển tới thư mục chứa mã nguồn của website và tải hoặc upload wordpress.
2. Tạo database name và database user
Để tạo database và user database mới, bạn truy cập vào mysql
và thực hiện như sau:
- Login
mysql -u root -p
root@ubuntu-2204:~# mysql -u root -p Enter password: #Nhập mật khẩu mysql.
- Tạo database và user database
CREATE DATABASE <Tên database>;
CREATE USER '<Tên user>'@'localhost' IDENTIFIED BY '<mật khẩu cho user>';
GRANT ALL PRIVILEGES ON <Tên database>.* TO '<Tên user>'@'localhost';
MariaDB [(none)]> CREATE DATABASE huongdanaz; Query OK, 1 row affected (0.002 sec) MariaDB [(none)]> CREATE USER 'user_huongdanaz'@'localhost' IDENTIFIED BY 'hLZw6***4nxh'; Query OK, 0 rows affected (0.015 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON huongdanaz.* TO 'user_huongdanaz'@'localhost'; Query OK, 0 rows affected (0.004 sec)
Để kiểm tra lại database vừa tạo, bạn sử dụng lệnh sau
show databases;
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | huongdanaz | #Database vừa tạo | information_schema | | mysql | | performance_schema | | phpmyadmin | | sys | +--------------------+ 6 rows in set (0.011 sec)
Sau khi đã kiểm tra và thấy database vừa tạo, bạn dùng lệnh quit;
để thoát ra khỏi mysql
3. Tạo website WordPress thủ công
Mặc định thư mục chứa mã nguồn của website sẽ nằm ở đường dẫn: /var/www/html
. Bạn di chuyển vào thư mục này và thực hiện tiếp các bước sau.
- Tải mã nguồn WordPress
Để tải mã nguồn wordpress bạn sử dụng lệnh bên dưới
wget https://wordpress.org/wordpress-5.9.3.zip
root@ubuntu-2204:/var/www/html# wget https://wordpress.org/wordpress-5.9.3.zip
Sau khi tải về bạn giải nén file
unzip wordpress-5.9.3.zip
root@ubuntu-2204:/var/www/html# unzip wordpress-5.9.3.zip
Chú ý: Nếu bạn thấy thông báo Command ‘unzip’ not found, but can be installed with thì trên máy chủ /VPS bạn chưa cài unzip. Để cài bạn dùng lệnh apt-get install unzip nhé!
Vơi mã nguồn download từ trang chủ, khi giải nén sẽ có sẵn một thư mục là wordpress. Vì vậy cần di chuyển mã nguồn ra document root, và phân quyền lại.
mv /var/www/html/wordpress/* /var/www/html/
chown -R www-data. *
root@ubuntu-2204:/var/www/html# mv /var/www/html/wordpress/* /var/www/html/ root@ubuntu-2204:/var/www/html# chown -R www-data. *
Bây giờ bạn truy cập với tên miền/subdomain hoặc IP máy chủ/VPS, để cài đặt WordPress.
4. Tạo website WordPress với WP-CLI
WP-CLI bạn có thể dễ dàng thao tác quản lý website WordPress của mình một cách đơn giản thông qua giao diện dòng lệnh (Command). Với cách thức thông thường , khi các bạn cần cài đặt Plugins, Themes, hay chỉnh sửa liên quan đến WordPress các bạn cần phải truy cập vào trình quản trị WordPress và thực hiện các thao tác bằng cách click chuột.
Để cài đặt WP-CLI, bạn sử dụng các lệnh như sau:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
Sau khi bạn cài WP-CLI xong, để cài wordpress bạn sử dụng lệnh bên dưới để cài.
wp core download --allow-root && wp core config --dbname='<Tên database>' --dbuser='Tên user database' --dbpass='pass của user' --allow-root && wp core install --url="<Tên miền>" --title="Blog Title" --admin_user="admin" --admin_password="<Pass admin>" --admin_email="admin@domain.com" --allow-root
root@ubuntu-2204:/var/www/html# wp core download --allow-root && wp core config --dbname='huongdanaz' --dbuser='user_huongdanaz' --dbpass='hLZw6***4nxh' --allow-root && wp core install --url="huonghuongdanaz.online" --title="Blog Title" --admin_user="admin" --admin_password="EV7H***RbNs" --admin_email="admin@huonghuongdanaz.online" --allow-rootc
Với lệnh CLI này mọi quá trình đều sẽ tự động và bạn chỉ cần đợi năm đến mười phút là sẽ hoàn tất việc cài wordpress.
Và với lệnh CLI bạn có thể kiểm tra nhiều thông tin hơn như phiên bản wordpress website đang dùng, danh sách các plugin đang dùng và cả danh sách theme.
wp core version --allow-root
wp plugin list --allow-root
wp theme list --allow-root
root@ubuntu-2204:/var/www/html# wp core version --allow-root #Xem phiên bản wordpress 5.9.3 root@ubuntu-2204:/var/www/html# wp plugin list --allow-root #Xem danh sách plugin +---------+----------+-----------+---------+ | name | status | update | version | +---------+----------+-----------+---------+ | akismet | inactive | available | 4.2.2 | | hello | inactive | none | 1.7.2 | +---------+----------+-----------+---------+ root@ubuntu-2204:/var/www/html# wp theme list --allow-root #Xem danh sách theme +-----------------+----------+--------+---------+ | name | status | update | version | +-----------------+----------+--------+---------+ | twentytwenty | inactive | none | 1.9 | | twentytwentyone | inactive | none | 1.5 | | twentytwentytwo | active | none | 1.1 | +-----------------+----------+--------+---------+
5. Cài đặt Redis Cache
- Cài đặt Redis
Bạn sử dụng lệnh bên dưới để cài redis
apt-get install redis-server -y
root@ubuntu-2204:~# apt-get install redis-server -y
Quá trình cài sẽ xuất hiện hộp thoại, bạn để theo mặc định và bấm tab để di chuyển xuống nút Ok
.
- Cài đặt PHP Extension
Để cài đặt extension redis bạn sử dụng lệnh bên dưới:
apt-get install php8.1-redis -y
root@ubuntu-2204:~# apt-get install php8.1-redis
- Kiểm tra và cấu hình Redis
Kiêm tra kết nối
redis-cli
root@ubuntu-2204:~# redis-cli 127.0.0.1:6379> ping PONG
Tiếp theo bạn cấu hình redis với wordpress bằng một plugin là Redis Object Cache
. Bạn đang nhập vào trang quản trị admin của website sau đó vào phần plugin và tìm, cài đặt plugin này.
Tiếp theo bạn mở file wp-config.php và thêm vào đoạn cấu hình sau.
define('WP_CACHE_KEY_SALT', '<Tên miền>');
Sau khi thêm vào bạn gõ :wq để lưu lại và thoát ra.
Vậy là việc cấu hình đã hoàn tất, bạn quay lại trang admin của website vào phần Settings tìm tới Redis và kích hoạt lên.
6. Cài chứng chỉ SSL cho website
Để tăng thêm tính bảo mật cho website, bạn có thể cài đặt chứng chỉ SSL của hãng Let’s Encrypt miễn phí. Ở đây mình sử dụng certbot, bạn dùng các lệnh bên dưới để cài.
sudo snap install core; sudo snap refresh core
root@ubuntu-2204:~# sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
root@ubuntu-2204:~# sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
root@ubuntu-2204:~# sudo ln -s /snap/bin/certbot /usr/bin/certbot
Quá trình cài certbot hoàn tất, tiếp theo cài chứng chỉ SSL cho website
sudo certbot --nginx -d <Tên miền> -d <www.Tên miền>
root@ubuntu-2204:~# sudo certbot --nginx -d huongdanaz.online
Lưu ý: Về phần <www.tên miền> bạn phải trỏ về record A với IP máy chủ/VPS hoặc record CNAME với tên miền trước, Nếu bạn chưa thao tác trỏ thì bỏ phần ” -d <www.tên miền> “ đi nhé! Ở đây mình không thao tác trỏ nên mình bỏ phần cài chứng chỉ cho www.tên miền
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): admin@huongdanaz.online #Điền email
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for huongdanaz.online
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/huongdanaz.online/fullchain.pem
Key is saved at: /etc/letsencrypt/live/huongdanaz.online/privkey.pem
This certificate expires on 2022-08-16.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for huongdanaz.online to /etc/nginx/sites-enabled/default
Congratulations! You have successfully enabled HTTPS on https://huongdanaz.online
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Quá trình cài chứng chỉ SSL hoàn tất, bạn truy cập lại website để kiểm tra.
Cảm ơn các bạn đã theo dõi bài viết này, tiếp tục về LEMP Stack trên Ubuntu 22.04.
Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:
- Hotline 247: 028 888 24768 (Ext 0)
- Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về: support@azdigi.com.