Lưu trữ danh mục: Kiến Thức Về Website

Hướng dẫn cấu hình Apache MPM

I. Giới thiệu và so sánh sự khác nhau giữa 3 mode chính

Apache MPM là các module muti-processing quyết định cách thức mà Apache sẽ tiếp nhận và xử lý các request từ client. MPM là module của apache nên có thể enable hay disable trong file config của apache. Apache từ version 2.4 trở đi hỗ trợ 3 modules multi-processing : worker, prefork và event (lưu ý : trong một thời điểm chỉ sử dụng được 1 trong 3 modules này).

  1. MPM Perfork
    Sử dụng nhiều tiến trình con (chill process) trong apache và mỗi chill process đó chỉ có 1 luồng (thread) để xử lý một request tại cùng một thời điểm.

    • Ưu điểm: Các process được xử lý hoàn toàn một cách độc lập không liên quan gì đến nhau, cho nên nếu một process chết thì các process còn lại vẫn hoạt động và vẫn hoàn thành công việc của nó. Đây là module mặc định và là module ổn định nhất, tương thích với các phần mềm cũ hơn.
    • Nhược điểm: do xử lý không phân luồng nên tạo ra quá nhiều process sẽ chiếm dụng lượng tài nguyên server lớn.
    • Thông số cần lưu ý:
      • StartServers : số process được tạo ra lúc apache start
      • MinspareServer : số process tối thiểu được chuẩn bị sẵn.
      • MaxSpareServer : số process tối đa được chuẩn bị sẵn
      • ServerLimit : Giá trị lớn nhất của Maxclient trong thời gian chạy apache
      • MaxClient : số process lớn nhất được chạy
      • MaxRequestsPerChild : số lượng request tối đa mà một process có thể phục vụ
      • MaxRequestWorkers : số lượng tiến trình con tối đa có thể tồn tại cùng một lúc
  2. MPM Worker
    Sử dụng nhiều tiến trình con (chill process) trong apache và mỗi chill process sẽ có nhiều luồng (thread) và mỗi luồng sẽ xứ lý một request tại một thời điểm.

    • Ưu điểm: có thể xử lý nhiều tiến trình cùng 1 lúc. Nhanh hơn prefork và có thể xử lý nhiều khách truy cập hơn.
    • Nhược điểm: do xử lý nhiều nên tính ổn định sẽ không cao so với prefork.
    • Thông số cần lưu ý:
      • StartServers : số process được tạo ra lúc apache start
      • MaxClient : tổng số connections đồng thời sẽ được xử lý
      • MinSpareThread : số Thread tối thiểu được chuẩn bị sẵn
      • MaxSpareServer : Số Thread tối đa được chuẩn bị sẵn
      • ThreadsPerChild : số thread có trong một process
      • MaxrequestsPerchild : tổng số connections đồng thời được process xử lý.
      • MaxRequestWorkers : tổng số luồng tối đa có thể hoạt động đồng thời.
  3. MPM Event
    Event MPM dựa trên mô hình Worker MPM để hoạt động. Event MPM sử dụng các tiến trình parent ( tiến trình cha ) chịu trách nhiệm chạy các chill process, mỗi chill process sẽ tạo ra nhiều thread để xứ lý các request.

    • Ưu điểm : là cải tiến từ mpm worker với mục tiểu chỉ sử dụng các luồng cho các kết nối có xử lý tích cực và là module nhanh nhất, sử dụng ít tài nguyên nhất.
    • Nhược điểm : Do xử lý phức tạp và xử lý nhiều tiến trình hơn cho với 2 module trên nên tính ổn định kém nhất.

II. Kiểm tra module MPM đang chạy trên server

Để kiểm tra module mpm nào đang chạy trên server, Quý khách có thể thực hiện lệnh sau:

  • Centos: httpd -V | grep -i mpm
  • Ubuntu: apachectl -V | grep -i mpm

III. Tính toán và thiết lập các thông số để tối ưu phù hợp

  1. Tính toán các thông số:
    • Cài đặt python ps_mem.py
      wget https://raw.githubusercontent.com/pixelb/ps_mem/master/ps_mem.py
      chmod a+x ps_mem.py
      python ps_mem.py


      Như ví dụ trong bài viết này đang có 3 process size apache (httpd) tiêu thụ 4.6MB, vì vậy mỗi apache process đang sử dụng khoảng 1.5MB RAM và mỗi PHP process size sẽ sử dụng khoảng 4.5MB

    • Công thức tính MaxrequestWorkers và ServerLimit:
      MaxRequestWorkers = (Total RAM – Memory used for Linux, DB, etc.) / process size
      MaxRequestWorkers = (3770 – 925) / 1.5 = 1896
    • Công Thức tính php-fpm max-children
      Max-children = (Tổng RAM – Bộ nhớ được sử dụng cho Linux, DB, v.v.) / PHP process zise
      Max-children = (3770 – 925) / 4.5 = 632
  2. Điều chỉnh cấu hình
    • Vào file cấu hình của module MPM đang chạy để chỉnh sửa ví dụ trong bài viết đang chạy MPM Event thì ta vào đường dẫn ” /etc/apache2/mods-enabled/mpm_event.conf ”
    • Lưu ý rằng cài đặt mặc định không chứa “server limit “, vì vậy thêm nó vào đây còn các thông số khác thì để mặc định.
    • Cấu hình thông số php-fpm (8.1 là version trong bài  viết này sử dụng), vào file config của php-fpm “/etc/php/8.1/fpm/pool.d/www.conf”
      pm = dynamic
      pm.max_children =  640
      pm.start_servers = (cpu cores * 4)
      pm.min_spare_servers =  (cpu cores * 2)
      pm.max_spare_servers =  (cpu cores * 4)
      pm.max_requests = 1000
    • Lưu lại và restart service apache để áp dụng cấu hình mới.

Như vậy, Long Vân đã hoàn thành hướng dẫn Quý khách cách cấu hình module mpm trong máy chủ Apache. Chúc Quý khách thành công!

Hướng dẫn cài đặt DLEMP

I. DLEMP là gì?

DLEMP là bộ phần mềm tích hợp trên Linux (CentOS) với nhiều đoạn mã được cấu hình sẵn, giúp việc sử dụng & cấu hình máy chủ Linux trở nên đơn giản. Thành phần bao gồm: Đoạn script cấu hình sẵn, Linux, Engine-x, MySQL và PHP. DLEMP được các lập trình viên tại Việt Nam phát triển miễn phí cho cộng đồng dựa trên nền tảng VPSSIM cũ (VPSSIM là nền tảng có tính phí) do VPSSIM đột ngột ngừng hỗ trợ người dùng từ năm 2020.

Trang chủ DLEMP tại https://dlemp.net/

II. DLEMP là một công cụ quản lý hosting tốt

DLEMP nhanh, nhẹ và an toàn: Không giống như hầu hết các Hosting Controller khác, DLEMP chỉ là đoạn script được cấu hình và tối ưu sẳn, chỉ thực thi lệnh lệnh khi được gọi, nó không có bất kỳ dịch vụ dư thừa nào chạy ngầm. Vì thế DLEMP sẽ gọn và nhẹ hơn rất nhiều.

DLEMP nhiều tính năng & tiện ích, đáng kể đến như :

  • Tự động cài đặt và cấu hình WordPress.
  • Cài đặt và tự động gia hạn SSL miễn phí.
  • Hỗ trợ cấu hình backup dữ liệu tự động hằng này.
  • Tự động upload backup lên Google Drive để bảo vệ dữ liệu.
  • Dễ dàng cấu hình & thay đổi phiên bản Engine-x, MySQL và PHP.
  • Và rất nhiều tiện ích khác,…

DLEMP dễ sử dụng: Thay vì sử dụng từng lệnh phức tạp, Quý khách chỉ cần chọn hành động theo số đã được các lập trình viên cấu hình sẵn. Nhưng để sử dụng DLEMP một cách tốt nhất, quản trị viên cần phải có kiến thức cơ bản về Linux và giao diện dòng lệnh.

DLEMP được phát triển vì cộng đồng và hoàn toàn miễn phí.

III. Hướng dẫn cài đặt DLEMP

  1. Bước 1: Chuẩn bị
    • Cập nhật các bản update mới nhất của phiên bản hệ điều hành CentOS hiện tại với lệnh
      yum update -y
    • Reboot lại server sau khi hoàn thành quá trình update.
  2. Bước 2: Cài đặt
    • Thực hiện lệnh sau để bắt đầu quá trình cài đặt:
      curl -L https://script.dlemp.net -o dlemp && bash dlemp

    • Tiếp tục nhấn 1 để cài đặt DLEMP.
    • Nhập các tùy chọn và nhấn Enter để tiếp tục, bao gồm:
      • Type in  PhyMyAdmin Port :  Port để chạy PhpMyAdmin (tùy chọn ).
      • Type in Your eMail [ENTER] : điền mail cá nhân hoặc email sử dụng cho việc quản lý.
      • Type in the password protect phpMyAdmin [ENTER] : nhập mật khẩu truy cập PhpMyAdmin.
      • Type in the password for root of MySQL  [ENTER] : nhập mật khẩu user root trong MySQL.
      • Choose MariaDB Version (chọn phiên bản MariaDB) : Tùy thuộc vào nhu cầu của mình sử dụng mà lựa chọn cho phù hợp.
      • Choose NGINX Version : Tùy thuộc vào nhu cầu sử dụng của Quý khachs có thể chọn Nginx Mainline version hay  Nginx Stable VerStab. Có thể tham khảo thêm ở đây : https://www.nginx.com/blog/nginx-1-6-1-7-released/
    • Sau khi hoàn thành thiết lập, DLEMP sẽ hiển thị lại các tùy chọn và yêu cầu xác nhận, Quý khách chú ý kiểm tra và chọn 1 để xác nhận.
    • DLEMP tiến hành cài đặt theo các tùy chọn đã thiết lập. Khi hoàn thành server sẽ tự động reboot.
  3. Bước 3: Hoàn thành:
    • Truy cập vào server sau khi reboot.
    • Sử dụng lệnh dlemp để mở giao diện làm việc của DLEMP.

IV. Hướng dẫn cài đặt WordPress trên DLEMP

  1. Bước 1: mở giao diện làm việc của DLEMP bằng lệnh:
    dlemp
  2. Bước 2: chọn Add Website & Code để thêm mới một website, tiếp tục chọn 3 Add website + WordPress (Auto Setup) để tự động cài đặt WordPress .
  3. Bước 3: chọn plugin Cache muốn sử dụng cho website WordPress bao gồm:
    • WP Super Cache
    • W3 Total Cache
    • Redis Cache
    • WP Fastest Cache
    • Other Plugin Cache : trong trường hợp sử dụng plugin Cache khác.
  4. Bước 4: Nhập tên domain và các thông tin quản lí cần thiết như username, password để cài đặt wordpress :
  5. Bước 5: hoàn thành quá trình cài đặt
  6. Bước 6: xem lại thông tin databases
    • Chọn 0 để quay về menu chính. Hoặc mở giao diện dlemp bằng lệnh dlemp
    • Chọn 15) WordPress Blog Tools.
    • Trong giao diện WordPress Blog Tools, chọn 12) View Database info để xem thông tin database của wordpress được tạo tự động. Dưới đây là hình ảnh thông tin database đã được tạo kèm theo quá trình tạo website WordPress tự động

Như vậy, Long Vân đã hoàn thành việc hướng dẫn Quý khách cài đặt DLEMP và tự động cài đặt một website WordPress trên công cụ này. Chúc Quý khách thành công!

Hướng dẫn cấu hình chặn SPAM referer trên NGINX

I. Tổng quan

Tiêu đề referer trong HTTP header sẽ hiển thị địa chỉ website trước đó mà từ đó có một liên kết đến trang trang web đang được kiểm tra. Nói một cách đơn giản hơn, referer là URL mà từ đó máy chủ nhận được một yêu cầu. Một ví dụ điển hình là nếu bạn nhấp vào một liên kết trên trang trên trang web ở địa chỉ website.com/page để chuyển đến mysite.com/link, HTTP Referer nhận được trên mysite.com sẽ có giá trị là website.com/page.

Việc tạo ra một yêu cầu với giá trị referer là khá dễ dàng, do vậy bên ngoài có thể lợi dụng việc này để truy vấn liên tục đến website làm tăng tài nguyên đột ngột trên server.

Trong bài viết này, Long Vân sẽ hướng dẫn các bạn cấu hình các rule để lọc các truy vấn với giá trị referer giả mạo, qua đó hạn chế các truy vấn xấu.

II. Khi nào cần sử dụng

  1. Khi website có dấu hiện bị spam liên tục bởi các request có referer trong headhe, như hình dưới:
    • Trong log access
    • Trong các dòng log error sẽ có giá trị referer
  2. Ngoài ra, bạn có thể chủ động cấu hình để ngăn chặn trước nguy cơ bị phá hoại.

III. Hướng dẫn cấu hình

  1. Bước 1: Tạo file /etc/nginx/referer_blacklist.conf chứa các website cần chặn referder nội dung như sau:
    map $http_referer $void_referer {
        hostnames;
        default                    0;
        "~*.example.com"          1;
        "~*.example.org"          1;
    }

    Kỹ tự đầu tiên ở mỗi dòng phải là “~”. Mỗi biểu thức sẽ được so sánh đầu sau “http://” hoặc “https://” . Giá trị “.example.com” sẽ khớp với các tên máy chủ như example.com, abcexample.com và sub.example.com.

  2. Bước 2: Cấu trong file nginx.conf . Đưa danh sách blacklist vào khối http chính để nó có thể được sử dụng trong mọi website trên server.
    http {
        [...]
        # void_referer
        include referer_blacklist.conf;
        [...]
  3. Bước 3: Cấu hình trong file cấu hình nginx của website, bỏ trong thẻ server trong file cấu hình
    server {
        [...]
        if ($void_referer) {
            return 403;
        }
        [...]
  4. Bước 4: Reload lại service nginx bằng lệnh
    sudo systemctl reload nginx
  5. Bước 5: Kiểm tra lại cấu hình với lệnh url
    • Với truy vấn thông thường, server tiếp nhận và xử lý thành công:
      $ curl -s -o /dev/null -I -w "%{http_code}n" https://domain.test.io
      200
    • Với truy vấn sử dụng referer từ google (một URL không có trong phần blacklist), kết quả vẫn truy vấn thành công
      $ curl -s -o /dev/null -I -w "%{http_code}n" --referer http://google.com https://domain.test.io
      200
    • Với truy vấn sử dụng referer từ example.com, kết quả truy vấn lỗi.
      curl -s -o /dev/null -I -w "%{http_code}n" --referer http://example.com https://domain.test.io
      403

Như vậy, Long Vân đã hướng dẫn Quý khách cấu hình ngăn chặn các truy vấn referer spam đến server. Chúc Quý khách thàng công !

Hướng dẫn cài đặt wordpress trên Ubuntu

I. Tổng quan

WordPress là một CMS (content management system) mã nguồn mở cho phép người dùng xây dựng và quản lý nội dung trên website. WordPress cung cấp cơ sở hạ tầng cơ bản để xây dựng một website, do đó nó phù hợp với hầu hết đối tượng người sử, bao gồm cả đối tượng là người sử dụng có ít kiến thức về lập trình.

Có nhiều cách để cài đặt một website WordPress, trong đó có những cách khá đơn giản đã được tích hợp sẳn trên các công cụ Hosting Control Panel (DirectAdmin, Cpanel,…) . Hướng dẫn dưới đây sẽ cài đặt WordPress thông qua cửa sổ dòng lệnh trên hệ điều hành Linux. Đây là cách cài đặt phức tạp và yêu cầu nhiều bước tiến , nhưng mặt khác cung cấp cho người dùng phương thức quản lý tốt hơn đối với website WordPress và môi trường mà nó chạy trên.

Môi trường cụ thể:

  • Hệ điều hành: Ubuntu 18.04
  • Web Server: Apache 2.4.54 + PHP 7.4
  • SQL Server: MySQL 10.6.9

II. Hướng dẫn cụ thể

  1. Cài đặt APACHE
    • Thực hiện lệnh cài đặt:
      # sudo apt install apache2
    • Start và enable dịch vụ Apache, đảm bảo Apache sẽ chạy cùng hệ điều hành
      sudo systemctl start apache2
      # sudo systemctl enable apache2
    • Tiến hành kiểm tra trạng thái dịch vụ Apache bằng lệnh:
      # sudo systemctl status apache2
  2. Cài đặt MYSQL
    • Trước tiên ta  tiến hành update  trước khi cài đặt một thứ gì đó bằng lệnh:
      # sudo apt update && sudo apt upgrade -y
    • Tiếp đến ta tiến hành cài đặt các  gói mysql-server:
      # sudo apt install mysql-server
    • MySQL chưa được khởi động sau khi install MySQL trên Ubuntu , nên bạn cần khởi động
      # systemctl start mysql
      # systemctl enable mysql
    • Tiến hành tạo 1 database cho website wordpress theo bằng các lệnh sau
      # mysql -u root -p

      Tạo một database trong MariaDB

      > create database wordpress;

      Tiếp đến tạo tạo một User

      > create user 'user1'@'địa chỉ Ip' IDENTIFIED BY 'password';

      Thiết lập quyền cho user để có quyền truy cập vào cơ sở dữ liệu.

      > GRANT ALL PRIVILEGES ON wordpress.* TO 'user1'@'%' IDENTIFIED BY 'password';

      > flush privileges;

  3. Cài đặt PHP-FPM
    • Để cài đặt PHP-FPM ta nên sử dụng ppa:ondrej/php PPA để có thể cài đặt phiên bản PHP-FPM mới nhất
      # sudo add-apt-repository ppa:ondrej/php
    • Tiếp theo các bạn cài đặt PHP bằng lệnh sau.
      # sudo apt -y install php7.4 php7.4-fpm
    • Đầu tiên các bạn backup lại file cấu hình mặc định
      # sudo cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/www.conf.bak
    • Tiếp theo ta thực hiện lệnh Sed để thay đổi các thông số trong file www.conf
      # sudo sed -i 's/;listen.mode = 0660/listen.mode = 0660/g' /etc/php/7.4/fpm/pool.d/www.conf
      # sudo sed -i 's/;security.limit_extensions = .php .php3 .php4 .php5 .php7/security.limit_extensions = .php .php3 .php4 .php5 .php7/g' /etc/php/7.4/fpm/pool.d/www.conf
    • Cuối cùng tiến hành khởi động PHP-FPM
      # systemctl start php7.4-fpm
      # systemctl enable php7.4-fpm
  4. Cài đặt WORDPRESS
    • Đầu tiên ta cần tạo 1 foder Public_Apache
      # mkdir /home/wordpress/Public_Apache
    • Tiến hành cài download wordpress
      # cd /home/wordpress/
      # wget https://vi.wordpress.org/latest-vi.tar.gz
    • Giải nén file source wordpress bằng lệnh
      # tar -xvf latest-vi.tar.gz
    • Sau khi giải nén, bạn sẽ có file source wordpress như sau:
  5. Cấu hình Virtual Host:
    • Tạo file cấu hình virtual host cho website wordpress như sau :
      # touch /etc/apache2/site-availables/wordpress.conf
      # ln -s /etc/apache2/site-availables/wordpress.conf /etc/apache2/site-enables/
    • Ta truy cập vào file /etc/apache2/site-availables/wordpress.conf và cấu hình như sau:
      <VirtualHost *:80>
              DocumentRoot /home/wordpress/Public_Aphache/wordpress                  
              ServerName httai.tk                  
              ServerAlias www.httai.tk          
              <Directory "/home/wordpress/Public_Aphache/wordpress">
                       DirectoryIndex index.html index.php                          
                       Options FollowSymLinks                            
                       AllowOverride All                           
                       Require all granted          
               </Directory> 
      </VirtualHost>
    • Đến đây ta tiến hành cấp quyền cho thư mục
      # chown -R 755 /home/wordpress/Public_Aphache/wordpress
      # chown -R www-data:www-data /home/wordpress/Public_Aphache/wordpress
    • Truy cập vào wordpress và sử dụng thông tin MySQL đã tạo ở Phần 2 để kết nối đến database.
      Hình ảnh này chưa có thuộc tính alt; tên tệp của nó là image.png
    • Trong trường hợp gặp lỗi trong quá trình kết nối database, bạn có thể cấu hình trực tiếp ở file config trong resouce của WordPress như sau:
      # cd /home/wordpress/Public_Apache
      # mv wp-config-sample.php wp-config.php
      # vi wp-config.php
      Nhập thông tin database theo hướng dẫn ở hình dưới.
    • Tiếp tục thiết lập các thông tin của website WordPress và user quản lý, và cuối cùng nhấn Install WordPress để tiến hành cài đặt WordPress với thông tin đã cấu hình
    • Sau khi cài đặt xong, tiến hành login với tài khoản đã thiết lập ở trên.

Như vậy, Long Vân đã hoàn thành hướng dẫn Quý khách cài đặt WordPress trên server Ubuntu. Chúc Quý khách thành công!

Hướng dẫn cài đặt HestiaCP

I. HestiaCP là gì

HestiaCP là một Web Control Panel mã nguồn mở và hoàn toàn miễn phí, đồng thời là một nhánh của VestaCP. Nó cung cấp một giao diện web đơn giản và sạch sẽ, đồng thời cung cấp khả năng cho quản trị viên quản lý các tính năng cốt lõi của máy chủ web của họ, bao gồm quản lý và triển khai trang web, email, DNS và cơ sở dữ liệu một cách dể dàng.

HestiaCP cũng cung cấp giao diện dòng lệnh, bạn có thể đọc thêm trong tài liệu HestiaCP  Hestia Control Panel (hestiacp.com)

Là một nhánh của VestaCP nên HestiaCP cũng sẽ có giao diện làm việc khá tương đồng. Điều khác biệt cơ bản nhất là Hestia sẽ hỗ trợ Ubuntu và Debian, cụ thể bao gồm các phiên bản OS sau:

  • Debian 9
  • Debian 10
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS

II. Hướng dẫn cài đặt HestiaCP

Trong hướng dẫn này, Long Vân sẽ sử dụng hệ điều hành Ubuntu 18.04 LTS.

  1. Bước 1 : SSH vào máy chủ :
    Để cài đặt HestiaCP, chúng ta sẽ cần truy cập đến máy chủ bằng console hoặc SSH của với quyền root. bạn có thể tham khảo bài viết hướng dẫn sau để SSH vào server.
    https://longvan.net/cong-dong/huong-dan-su-dung-phan-mem-putty-de-ssh-den-server/
  2. Bước 2: tải file cài đặt bằng lệnh sau:
    # wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
  3. Bước 3: tiến hành cài đặt với file vừa tải về
    • Chạy lệnh sau
      # bash hst-install.sh

    • Nhấn chọn y để tiếp tục
    • Hestia sẽ yêu cầu nhập các thông tin bao gồm domain chính và địa chỉ email để thiết lập các cài đặt ban đầu
    • Sau khi nhập đầy đủ các thông tin yêu cầu, HestiaCP sẽ tiến hành cài đặt hoàn toàn tự động cho đến khi có thông báo hoàn thành.
  4. Bước 4: truy cập Hestia CP
    • Để đăng nhập vào Web Control bằng thông tin hiển thị ở trên. Bạn sử dụng https://my-ip:8083 đăng nhập nhé. Và đây là giao diện đăng nhập HestiaCP.
    • Sau khi login thành công, giao diện Hestia CP sẽ hiển thị như sau:

Như vậy, Long Vân đã hoàn thành hướng dẫn Quý khách cách cài đặt HestiaCP, chúc Quý khách thành công !

Hướng dẫn reset password MYSQL8

MYSQL là một hệ quản trị cơ sở dữ liệu rất phổ biến, đặc biệt là đối với các máy chủ chạy dịch vụ web. Trong bài viết này, Long Vân sẽ hướng dẫn Quý khách cách reset lại password cho MYSQL phiên bản 8.0. Các bước cụ thể như sau:

  1. Bước 1: Kiểm tra phiên bản MYSQL đang sử dụng bằng lệnh
    # mysqld -V


    Theo hình, phiên bản MYSQL đang sử dụng là 8.0.31

  2. Bước 2: Tạm dừng service MYSQL thực hiên lệnh
    # systemctl stop mysql
    # systemctl status mysql ( kiểm tra đảm bảo trạng thái mysql đã stop).

  3. Bước 3: Tạo thư mục chứa /var/run/mysqld’. Sau đó phân quyền thư mục vừa tạo.
    Bước này nhằm tránh lỗi “If mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists”

    # mkdir -p /var/run/mysqld
    # chown mysql:mysql /var/run/mysqld
  4. Bước 4: Chạy lại MYSQL với tùy chọn “–skip-grant-tables” để chạy mysql mà không cần root password.

    # sudo mysqld_safe --skip-grant-tables &

  5. Bước 5: Tiến hành truy cập lại MYSQL mà không cân password sau đó cài đặt lại password mới.

    # mysql -u root
    > UPDATE mysql.user SET authentication_string=null WHERE User='root';
    > flush privileges;
    > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_root_password';
    > flush privileges;
    > quit

  6. Bước 6: Khởi động lại MYSQL và kiểm tra truy cập với password vừa thiết lập

Vậy là mình đã hướng dẫn xong phần reset password Mysql8 trên hệ điều hành Ubuntu 22.04. Chúc các bạn thành công.

Hướng dẫn upload website lên HestiaCP

I. HestiaCP

HestiaCP là một Web Control Panel mã nguồn mở và hoàn toàn miễn phí, đồng thời là một nhánh của VestaCP. Nó cung cấp một giao diện web đơn giản và sạch sẽ, đồng thời cung cấp khả năng cho quản trị viên quản lý các tính năng cốt lõi của máy chủ web của họ, bao gồm quản lý và triển khai trang web, email, DNS và cơ sở dữ liệu một cách dể dàng.

HestiaCP cũng cung cấp giao diện dòng lệnh, bạn có thể đọc thêm trong tài liệu HestiaCP  Hestia Control Panel (hestiacp.com)

Là một nhánh của VestaCP nên HestiaCP cũng sẽ có giao diện làm việc khá tương đồng. Điều khác biệt cơ bản nhất là Hestia sẽ hỗ trợ Ubuntu và Debian, cụ thể bao gồm các phiên bản OS sau:

  • Debian 9
  • Debian 10
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS

II. Hướng dẫn upload Website lên HestiaCP

  1. Bước 1:  Đăng nhập vào HestiaCP với quyền User.
    Bạn có thể đăng nhập trực tiếp từ https://my-ip:8083 với user và password đã tạo trước đó. Hoặc truy cập từ tài khoản admin như hình dưới.
  2. Bước 2: tạo một domain mới
    Trong giao diện làm việc của Hestia, chọn Tab Web, sau đó nhấn chọn Add Web Domain để thêm một domain mới.
    Trong giao diện Add Web Domain, nhập các thông tin:

    • Domain: nhập vào tên domain
    • IP Address: Nếu VPS có nhiều hơn 1 IP bạn chọn tương ứng IP ở đây, nếu 1 IP thì bạn giữ nguyên.
    • Create DNS zone: Nếu bạn cần tạo DNS zone thì tick vào ô này.
    • Enable mail for this domain: để tạo email cho domain
    • Cuối cùng nhấn biểu tượng Save để tạo mới domain.
  3. Bước 3: upload source code
    • Trong giao diện làm việc của HestiaCP, ở dòng trên cùng, chọn tab Files.
    • Tìm đến thư mục web, sau đó chọn thư mục với tên domain vừa tạo.
    • Trong đó, thư mục public_html sẽ chứa toàn bộ source code của website. Truy vập vào thư mục public_html và xóa tất cả các file trong thư mục này (để tránh bị trùng với các file source code sẽ upload lên sau đó).
    • Bên trong thư mục public_html, nhấn chọn Add file và upload source code dưới dạng file nén (.zip). Sau đó giải nén như hình dưới.
  4. Bước 4: tạo database
    • Trong giao diện làm việc của Hestia, chọn tab Record > tab DB để vào giao diện quản lý database.
    • Nhấn chọn Add Database để tạo mới một database
    • Trong giao diện Add Database, nhập các thông tin bao gồm:
      • Database: Nhập tên Database
      • Username: Nhập tên Username truy cập database
      • Password: Nhập vào pass cho user
      • Type: Để mặc định
      • Host: Để localhost
      • Charset: Để mặc định
    • Cuối cùng nhấn Save để tạo database.
  5. Bước 5: import database
    • Trong giao diện làm việc của Hestia, chọn tab Record > tab DB để vào giao diện quản lý database.
    • Nhấn vào phpMyAdmin để truy cập vào phpMyAdmin trên server HestiaCP.
    • Tiếp tục sử dụng công cụ phpMyAdmin để import dữ liệu và database đã tạo ở bước 4. Quý khách có thể tham khảo thêm hướng dẫn ở Hướng dẫn import / export database trong phpMyAdmin – Long Vân (longvan.net)
  6. Bước 6: cấu hình kết nối database trong source
    • Vào trong thư mục chứa source code và tùy chỉnh lại cấu hình kết nối database với thông tin database đã tạo ở bước 4. Trong bài hướng dẫn này, Long Vân sử dụng source WordPress, file cấu hình sẽ là wp-config.php
  7. Bước 7: kiểm tra truy cập.
    Sau khi cấu hình kết nối database thành công, Quý khách có thể kiểm tra lại kết nối đến domain vừa tạo

Như vậy, Long vân đã hoàn thành hướng dẫn upload một website lên HestiaCP. Chúc Quý khách thành công !

Hướng dẫn cài đặt nhiều phiên bản PHP trên HestiaCP

I. HestiaCP

HestiaCP là một Web Control Panel mã nguồn mở và hoàn toàn miễn phí, đồng thời là một nhánh của VestaCP. Nó cung cấp một giao diện web đơn giản và sạch sẽ, đồng thời cung cấp khả năng cho quản trị viên quản lý các tính năng cốt lõi của máy chủ web của họ, bao gồm quản lý và triển khai trang web, email, DNS và cơ sở dữ liệu một cách dể dàng.

HestiaCP cũng cung cấp giao diện dòng lệnh, bạn có thể đọc thêm trong tài liệu HestiaCP  Hestia Control Panel (hestiacp.com)

Là một nhánh của VestaCP nên HestiaCP cũng sẽ có giao diện làm việc khá tương đồng. Điều khác biệt cơ bản nhất là Hestia sẽ hỗ trợ Ubuntu và Debian, cụ thể bao gồm các phiên bản OS sau:

  • Debian 9
  • Debian 10
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS

II. Hướng dẫn cài đặt nhiều phiên bản PHP trên HestiaCP

  1. Bước 1: SSH vào server HestiaCP.
  2. Bước 2. Thực hiện các lệnh sau:
    # cd /usr/local/hestia/bin
    # ./v-add-web-php 7.4
    • Lưu ý : 7.4 bạn có thế thay thế bằng các version php khác
  3. Bước 3: Thay đổi phiên bản PHP trên website
    • Truy cập vào panel quản trị hestiacp http://[ip-address]:8083
    • Chọn domain mong muốn cấu hình hoặc thay đổi version PHP.
    • Tại mục web ta chọn Edit Web Domain
    • Ở phần Backend Template, chọn version PHP đã thiết lập, ở đây Quý khách sẽ thấy HestiaCP sẽ hiển thị nhiều phiên bản PHP trong tùy chọn.
    • Nhấn OK và kiểm tra lại website đã thiết lập phiên bản PHP.
    • Quý khách có thể tạo một file info.php với nội dung như sau trong source code để kiểm tra chính xác phiên bản php đang chạy.
      <?php
          phpinfo();
      ?>

Như vậy, Long Vân đã hoàn thành hướng dẫn Quý khách chạy nhiều phiên bản php trên HestiaCP. Chúc Quý khách thành công !


Hướng dẫn đổi IP trên Control Web Panel

I. Tổng quan:

Control Web Panel (CWP) hay trước đây với tên gọi là là CentOS Web Panel là một Web Panel trên nền tảng Linux mà chủ yếu là CentOS, với hai phiên bản hoạt động ổn định là:

  • CentOS 7
  • CentOS 8 Stream

CWP cung hầu hết các công cụ đầy đủ để quản trị viên có thể quản lý tốt một Web Server. CWP sử dụng Apache và còn có thêm tùy chọn sử dụng Nginx làm proxy.

Hiện tại, với phiên bản miễn phí CWP giới hạn 10 tài khoản, với nhu cầu cao hơn Control Web Panel cung cấp thêm phiên bản CWP Pro kèm với nhiều chức năng hơn. Quý khách có thể tham khảo tại đây.

Trong nội dung bài viết này, Long Vân sẽ hướng dẫn Quý khách cách thay đổi địa chỉ IP của một máy chủ CWP.

II. Các bước Thay đổi IP trên cwp ( Centos WebPanel):

  1. Bước 1: Login vào CWP với quyền Admin.
  2. Bước 2: Trong Dashboard, chọn CWP Settings, tiếp tục chọn Edit settings. Trong cửa sổ Control Web Panel Settings, thay thế địa chỉ IP mới ở khung Shared IP, nhấn chọn Save Changes để lưu lại cấu hình.

  3. Bước 3: Truy cập  User Accounts  –> List Accounts. Trong giao diện List Account, cần vào phần Edit Account của tất cả tài khoản trên máy chủ và thay thế bằng địa chỉ IP mới. Sau đó nhấn Save Changes để lưu lại cấu hình.
  4. Bước 4: Truy cập DNS Functions –> Edit Nameservers IPs thay thế tất cả các IP NS1 và NS2 bằng địa chỉ IP mới, Nhấn Save Changes để lưu lại cấu hình.

  5. Bước 5: Sau cùng tiến hành rebuid lại các file cấu hình trên server bằng cách sau: 
    Trong Dashboard chọn WebServer Setting –> Select WebServers, chọn loại Web Server tương ứng (mặc định là Apache, trong trường hợp đang sử dụng Nginx & Apache, cần chọn đúng loại này). Cuối cùng nhấn vào  Save & Rebuild Configuration để lưu và rebuild lại cấu hình.

  6. Bước 6: Reboot lại server sau khi rebuild hoàn thành.

Như vậy, Long Vân đã hoàn thành hướng dẫn đổi IP trên Control Web Panel, Chúc quý khách thành công!

Hướng dẫn cấu hình Virtual Host trên Apache

I. Tổng quan

Virtual Host là một phương thức cho phép bạn chạy nhiều website khác nhau trên một máy chủ web. Virtual Host phân biệt và phục vụ các trang web khác nhau dựa trên địa chỉ IP hoặc tên miền của từng trang web.

Với Virtual Host, bạn có thể cấu hình các thiết lập riêng cho từng trang web, bao gồm cả các tệp cấu hình, định tuyến và các tính năng khác. Việc sử dụng Virtual Host giúp bạn quản lý nhiều trang web trên cùng một máy chủ một cách dễ dàng và tiết kiệm chi phí phát triển và quản lý hệ thống.

Trong bài viết này, Long Vân sẽ hướng dẫn về cách cấu hình Virtual Host trên máy chủ Apache2.

II. Cài đặt Apache2 trên Ubuntu

  1. Truy cập vào server chạy các lệnh sau để cài đặt Apache:
    # apt-get update
    # apt-get install apache2
  2. Sau khi cài xong ta bắt đầu khỏi chạy dịch vụ
    # systemctl enable apache2
    # systemctl start apache2
  3. Mở firewall cho service apache2
    # ufw allow 80
    # ufw allow 443

III. Cấu hình Virtual Host

  1. Tạo 1 đường dẫn source web và cấp quyền cho đường dẫn đó:
    Trong hướng dẫn này, Long Vân sử dụng domain lvtest.com với source được lưu ở thư mục /var/www/html/lvstest/public_html/

    # mkdir -p /var/www/html/lvstest/public_html/
    # chown -R $USER:$USER /var/www/lvstest/public_html/
    # chmod -R 755 /var/www/
  2. Tạo 1 file Virtual Host mới và thêm nội dung
    <VirtualHost *:80>
        ServerAdmin admin@lvstest.com
        ServerName lvstest.com
        DocumentRoot /var/www/html/lvstest/public_html/
        ErrorLog /var/log/apache2/lvstest.error.log
        CustomLog /var/log/apache2/lvstest.access.log combined
    </VirtualHost>
    • Trong đó:
      • ServerAdmin là từ khóa khai báo địa chỉ email của admin
      • ServerName là tên miền mà ta muốn chạy website
      • DocumentRoot là từ khóa khai báo đường dẫn của source code khi người dùng truy cập vào domain được cấu hình. Đường dẫn này có thể nằm ở bất kỳ một phân vùng nào.
      • ErrorLog là đường dẫn file log thì có lỗi
      • CustomLog là đường dẫn file log ghi lại tất cả các request và người dùng truy cập.
  3. Kích hoạt Virtual Host
    # a2ensite lvstest.conf
  4. Sau đó ta kiểm tra lỗi cấu hình bằng lệnh sau
    # apache2ctl configtest
  5. Sau đó khởi động lại dịch vụ apache2

IV. Kiểm tra

  1. Tạo một trang web test đơn giản với lệnh
    touch /var/www/html/lvstest/public_html/index.html
  2. Nội dung như sau:
    <html>
        <head>
            <title> website test</title>
        </head>
        <body>
            <h1> Long Van xin chao quy khach!</h1>
        </body>
    </html>
  3. Kiểm tra kết quả bằng cách truy cập tên miền http://lvstest.com

Như vậy, Webviet đã hoàn thành hướng dẫn Quý khách cách cấu hình Virtual Host trên Apache2. Chúc Quý khách thành công!