Cách cài đặt và cấu hình Laravel với Nginx trên Ubuntu 20.04 (LEMP)

Lượt xem
Home

Laravel là một framework PHP mã nguồn mở cung cấp một bộ công cụ và tài nguyên để xây dựng các ứng dụng PHP hiện đại. Laravel ngày càng trở nên phổ biến trong những năm vừa qua và được nhiều nhà phát triển lựa chọn làm framework cho quá trình phát triển tối ưu hóa. Bài viết dưới đây của Vietnix sẽ hướng dẫn bạn cách cài đặt và cấu hình Laravel trên Ubuntu 20.04 với Nginx. Sau khi hoàn thành, bạn sẽ có một ứng dụng Laravel kết nối với cơ sở dữ liệu MySQL 8.

Yêu cầu chuẩn bị để cài đặt và cấu hình Laravel với Nginx trên Ubuntu 20.04

Để thực hiện quá trình cài đặt theo hướng dẫn dưới đây, trước hết bạn cần chuẩn bị một số yêu cầu sau đây đối với máy chủ Ubuntu 20.04:

  • Tạo một user sudo và kích hoạt ufw
  • Cài đặt LEMP stack với MySQL8.
  • Cài đặt Composer. Quá trình cài đặt sẽ sử dụng Composer để cài đặt Laravel và các dependency. (Bài viêt hướng dẫn cách cài đặt Composer trên Ubuntu 20.04 tại đây)
LEMP stack
LEMP stack

Các bước cài đặt và cấu hình Laravel với Nginx trên Ubuntu 20.04

Sau khi đã hoàn thiện các bước chuẩn bị cho máy chủ Ubuntu 20.04, bạn tiến hành cài đặt và cấu hình Laravel với Nginx theo các bước dưới đây.

Bước 1: Cài đặt các module PHP cần thiết

Trước khi cài đặt Laravel, bạn cần cài đặt một số module PHP được yêu cầu bởi framework. Sử dụng apt để cài đặt các module php-mbstring, php-xml, php-bcmath. Những phần mở rộng này được cung cấp bổ sung cho việc xử lý mã hóa ký tự, XML và phép toán cao cấp. 

Nếu đây là lần đầu sử dụng apt trong phiên làm việc, bạn cần chạy lệnh update trước để cập nhật cache gói quản lý:

$ sudo apt update

Sau đó, bạn có thể bắt đầu cài đặt các gói cần thiết với câu lệnh:

$ sudo apt install php-mbstring php-xml php-bcmath

Hệ thống đã sẵn sàng để cài đặt Laravel thông qua Composer. Tuy nhiên trước khi tiến hành cài đặt, bạn cần tạo một cơ sở dữ liệu cho ứng dụng, hãy theo dõi tiếp ở bước sau.

Bước 2: Tạo cơ sở dữ liệu cho ứng dụng

Để thực hiện cài đặt và sử dụng Laravel, bạn cần tạo ứng dụng travel list hiển thị danh sách những nơi người dùng muốn tìm đến và danh sách các nơi mà họ thực tế đã đến. Các thông tin này có thể được lưu trữ trong places table với một trường cho vị trí, được gọi là name và một trường đánh dấu visited hay not vistied. Bên cạnh đó, bạn cần một trường id để xác định tính duy nhất của mỗi mục.

Để kết nối đến cơ sở dữ liệu từ ứng dụng Laravel, bạn cần tạo một MySQL user riêng biệt và cấp quyền đầy đủ cho user này trên cơ sở dữ liệu travellist.

Bạn cần phải thiết lập database user với phương thức xác thực mysql_native_password để có thể kết nối với cơ sở dữ liệu MySQL PHP.

Để bắt đầu, hãy đăng nhập vào MySQL console với tài khoản root của cơ sở dữ liệu bằng lệnh sau:

$ sudo mysql

Để tạo một cơ sở dữ liệu mới, hãy chạy câu lệnh sau từ MySQL console:

mysql> CREATE DATABASE travellist;

Bây giờ bạn có thể tạo một user mới và cấp quyền đầy đủ trên cơ sở dữ liệu tùy chỉnh mà bạn vừa tạo. Ví dụ dưới đây đang tạo một user có tên travellist_user với mật khẩu password. Tuy nhiên bạn nên thay đổi mật khẩu của riêng mình để bảo đảm độ an toàn:

mysql> CREATE USER 'travellist_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

Thực hiện cấp quyền cho user trên cơ sở dữ liệu travellist bằng câu lệnh sau:

mysql> GRANT ALL ON travellist.* TO 'travellist_user'@'%';

Điều này sẽ cung cấp cho travellist_user toàn quyền trên cơ sở dữ liệu travellist đồng thời ngăn chặn user này tạo hoặc sửa đổi các cơ sở dữ liệu khác trên máy chủ.

Sau khi thực hiện xong, tiến hành thoát khỏi MySQL shell:

mysql> exit

Để kiểm tra lại xem user đã được cấp đầy đủ quyền truy cập hay chưa, bạn có thể đăng nhập lại vào MySQL console và sử dụng thông tin đăng nhập của người dùng tùy chỉnh:

mysql -u travellist_user -p

Lưu ý flag -p trong câu lệnh này yêu cầu bạn nhập mật khẩu được sử dụng khi tạo travellist_user. Sau khi đăng nhập vào MySQL console, hãy xác nhận rằng bạn có quyền truy cập vào cơ sở dữ liệu travellist.

mysql> SHOW DATABASES;

Kết quả trả về như sau:

Output
+-----------------------------+
 | Database                  |
+-----------------------------+
 | information_schema |
 | travellist                   |
+-----------------------------+
2 rows in set (0.01 sec)

Tiếp theo, hãy tạo một bằng có tên là places trong cơ sở dữ liệu travellist. Từ MySQL console, chạy câu lệnh sau:

mysql> CREATE TABLE travellist.places (
mysql> id INT AUTO_INCREMENT,
mysql> name VARCHAR(255),
mysql> visited BOOLEAN,
mysql> PRIMARY KEY(id)
mysql> );

Sau đó, bạn thêm dữ liệu theo mẫu vào bảng places:

mysql> INSERT INTO travellist.places (name, visited) 
mysql> VALUES ("Tokyo", false),
mysql> ("Budapest", true),
mysql> ("Nairobi", false),
mysql> ("Berlin", true),
mysql> ("Lisbon", true),
mysql> ("Denver", false),
mysql> ("Moscow", false),
mysql> ("Olso", false),
mysql> ("Rio", true),
mysql> ("Cincinnati", false),
mysql> ("Helsinki", false);

Để xác nhận dữ liệu đã được lưu vào bảng thành công, hãy chạy lệnh sau:

mysql> SELECT * FROM travellist.places;

Bạn sẽ nhận được kết quả tương tự như sau:

Output
+---+---------------+----------+
 | id | name         | visited |
+---+---------------+----------+
 |  1 | Tokyo         |       0   |
 |  2 | Budapest   |       1   |
 |  3 | Nairobi       |       0   |
 |  4 | Berlin         |       1   |
 |  5 | Lisbon        |       1   |
 |  6 | Denver       |       0   |
 |  7 | Moscow      |       0   |
 |  8 | Oslo            |       0  |
 |  9 | Rio              |       1  |
 | 10 | Cincinnati  |       0  |
 | 11 | Helsinki     |       0   |
+----+---------------+---------+
11 rows in set (0.00 sec)

Khi xác nhận đã có dữ liệu hợp lệ trong test table, bạn thoát khỏi MySQL console bằng lệnh:

mysql> exit

Giờ đây bạn đã có thể bắt đầu tạo ứng dụng và cấu hình để kết nối cơ sở dữ liệu mới.

Bước 3: Tạo ứng dụng Laravel mới

Bạn cần tạo một ứng dụng Laravel mới bằng cách sử dụng lệnh composer create-project. Lệnh Composer này thường được dùng để khởi tạo các ứng dụng mới trên các framework và hệ thống quản lý nội dung.

Trong hướng dẫn này sẽ sử dụng travellist để làm ví dụ, bạn hoàn toàn có thể thay đổi theo ý muốn. Ứng dụng travellist sẽ hiển thị danh sách những vị trí được lấy từ một máy chủ MySQL cục bộ, nhằm thể hiện cấu hình cơ bản của Laravel và xác nhận kết nối đến cơ sở dữ liệu.

Trước tiên, hãy di chuyển đến thư mục home của user:

$ cd ~

Sau đó sử dụng câu lệnh sau để tạo ra một thư mục travellist mới chứa ứng dụng khuôn Laravel dựa trên các cài đặt mặc định:

$ composer create-project --prefer-dist laravel/laravel travellist

Bạn sẽ nhận được kết quả tương tự như sau:

Output
Installing laravel/laravel (v5.8.17)
  - Installing laravel/laravel (v5.8.17): Downloading (100%)         
Created project in travellist
> @php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 80 installs, 0 updates, 0 removals
  - Installing symfony/polyfill-ctype (v1.11.0): Downloading (100%)         
  - Installing phpoption/phpoption (1.5.0): Downloading (100%)         
  - Installing vlucas/phpdotenv (v3.4.0): Downloading (100%)         
  - Installing symfony/css-selector (v4.3.2): Downloading (100%)     
...

Sau khi hoàn tất quá trình cài đặt, bạn truy cập vào ứng dụng và chạy lệnh artisan của Laravel để xác nhận tất cả các thành phần đã được cài đặt thành công:

$ cd travellist
$ php artisan

Kết quả trả về tương tự như sau:

Output
Laravel Framework 7.11.0
Usage:
  command [options] [arguments]
Options:
  -h, --help                   Display this help message
  -q, --quiet                  Do not output any message
  -V, --version               Display this application version
       --ansi                    Force ANSI output
       --no-ansi               Disable ANSI output
  -n, --no-interaction    Do not ask any interactive question
       --env[=ENV]         The environment the command should run under
  -v|vv|vvv, --verbose   Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
...

Kết quả này xác nhận rằng các tệp ứng dụng đã được cài đặt đúng vị trí và các dòng lệnh Laravel hoạt động đúng ý định. Tuy nhiên bạn vẫn cần cấu hình ứng dụng để thiết lập cơ sở dữ liệu và một vài chi tiết khác.

Để cài đặt và cấu hình Laravel với Nginx trên Ubuntu 20.04, bạn cần có một máy chủ Ubuntu 20.04. Nếu chưa có máy chủ hoặc muốn nâng cấp máy chủ, bạn có thể liên hệ với Vietnix để được tư vấn và lựa chọn một máy chủ VPS phù hợp với nhu cầu.

Vietnix hiện đang cung cấp nhiều gói VPS có cấu hình đa dạng như VPS Giá Rẻ, Cloud Server, VPS Cao Cấp và VPS NVMe với nhiều ưu điểm như:

  • Giá thành hợp lý, chỉ từ 89.000 VND/Tháng. Đăng ký chu kỳ càng dài thì giảm càng nhiều.
  • Tốc độ cao, ổn định.
  • Hỗ trợ backup tự động hàng tuần.
  • Hỗ trợ nhiều hệ điều hành bao gồm cả Ubuntu 20.04.
  • Kích hoạt nhanh chóng, quản trị đơn giản.
  • Đặc biệt, tặng bản quyền theme và plugin WordPress trị giá đến 26.000.000 VND.

Liên hệ với đội ngũ của Vietnix để được tư vấn chi tiết hơn.

Bước 4: Cấu hình Laravel

Các file cấu hình Laravel được lưu trữ trong thư mục config, bên trong thư mục gốc của ứng dụng. Ngoài ra khi bạn cài đặt Laravel bằng Composer sẽ tạo đồng thời một environment file chứa các cài đặt cụ thể cho môi trường ứng dụng đang chạy và ưu tiên hơn các giá trị được đặt trong tập cấu hình được lưu trong thư mục config.

Mỗi lần cài đặt trên một môi trường mới đòi hỏi environment file được điều chỉnh để xác định các thông số như cài đặt kết nối database, tùy chọn gỡ lỗi, URL của ứng dụng và một số mục khác.

Lưu ý đặc biệt, tệp cấu hình môi trường (environment configuration file) chứa các thông tin nhạy cảm của máy chủ, cao gồm thông tin đăng nhập cơ sở dữ liệu và các khóa bí mật. Do đó, bạn không nên chia sẻ tệp này công khai.

Bạn cần chỉnh sửa tệp .env để tùy chỉnh các tùy chọn cấu hình cho môi trường ứng dụng hiện tại. Mở tệp .env bằng trình chỉnh sửa văn bản, ví dụ dưới đây sử dụng nano:

$ nano .env

Mặc dù có nhiều biến cấu hình trong tệp này, bạn không nhất thiết phải thiết lập chúng ngay. Thông tin cơ bản về các biến như sau:

  • APP_NAME: Tên ứng dụng, được sử dụng cho các thông báo và tin nhắn.
  • APP_ENV: Môi trường ứng dụng hiện tại.
  • APP_KEY: Được sử dụng để tạo ra salts và hash, khóa duy nhất này được tạo tự động khi cài đặt. Laravel thông qua Composer, vì vậy bạn không cần phải thay đổi nó.
  • APP_DEBUG: Cho phép có/không hiển thị thông tin gỡ lỗi trên phía máy khách.
  • APP_URL: Địa chỉ URL cho ứng dụng, được sử dụng để tạo các liên kết.
  • DB_DATABASE: Tên cơ sở dữ liệu.
  • DB_USERNAME: Tên người dùng kết nối với cơ sở dữ liệu.
  • DB_PASSWORD: Mật khẩu kết nối với cơ sở dữ liệu.

Mặc định các giá trị này được cấu hình cho local development environment sử dụng Homestead, một Vagrant box được có sẵn do Laravel cung cấp. Bạn thực hiện thay đổi các giá trị này để thiết lập môi trường ứng dụng.

Ở ví dụ này, bạn đang cài đặt Laravel trong development environment hoặc testing environment cho nên có thể bật tùy chọn APP_DEBUG. Việc này cung cấp thông tin gỡ lỗi quan trọng khi kiểm thử ứng dụng từ trình duyệt. Biến môi trường APP_ENV cần được thay đổi thành development hoặc testing.

Đối với trường hợp cài đặt Laravel trong production environment, bạn nên tắt tùy chọn APP_DEBUG vì nó hiển thị cho người dùng cuối những thông tin nhạy cảm của ứng dụng. Biến môi trường APP_ENV trong trường hợp này được thiết lập thành production.

File .env dưới đây cấu hình cho ứng dụng trong development environment:

Lưu ý, biến APP_KEY chứa khóa duy nhất đã được tạo tự động khi cài đặt Laravel qua Composer, bạn không cần phải thay đổi giá trị này. Nếu muốn tạo một khóa an toàn mới, hãy sử dụng lệnh php artisan key:generate.

APP_NAME=TravelList
APP_ENV=development
APP_KEY=APPLICATION_UNIQUE_KEY_DONT_COPY
APP_DEBUG=true
APP_URL=http://domain_or_IP

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=travellist
DB_USERNAME=travellist_user
DB_PASSWORD=password
…

Chỉnh sửa các biến tương ứng. Sau khi hoàn thành, nhấn lưu và đóng file để cập nhật các thay đổi. Nếu sử dụng nano, bạn có thể nhấn tổ hợp phím CTRL+X sau đó nhấn Y rồi ENTER để xác nhận.

Như vậy, ứng dụng Laravel đã được thiết lập. Tuy nhiên bạn cần phải cấu hình web server để truy cập ứng dụng từ trình duyệt. Trong bước tiếp theo sẽ hướng dẫn bạn cách cấu hình Nginx để phục vụ ứng dụng Laravel.

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

Ở bước trên, bạn đã cài đặt Laravel trên local folder của thư mục người dùng từ xa. Mặc dù điều này tốt cho môi trường phát triển cục bộ nhưng lại không được khuyến khích cho các web server sử dụng trên internet công khai. Bạn cần di chuyển thư mục ứng dụng đến /var/www thường dùng cho các ứng dụng web chạy trên Nginx.

Đầu tiên, hãy sử dụng lệnh mw để di chuyển thư mục ứng dụng cùng tất cả nội dung đến /var/www/travellist:

$ sudo mv ~/travellist /var/www/travellist

Bạn cần phải cấp quyền ghi cho người dùng web server đối với thư mục storagecache, nơi Laravel lưu trữ các tệp được tạo bởi ứng dụng:

$ sudo chown -R www-data.www-data /var/www/travellist/storage
$ sudo chown -R www-data.www-data /var/www/travellist/bootstrap/cache

Mặc dù các tệp ứng dụng đã được cấu hình nhưng bạn vẫn cần phải cấu hình Nginx để đáp ứng nội dung. Để làm điều này, hãy tạo một tệp cấu hình virtual host mới tại /etc/nginx/sites-available:

$ sudo nano /etc/nginx/sites-available/travellist

Tệp cấu hình sau chứa các cài đặt được khuyến nghị cho các ứng dụng Laravel trên Nginx: 

server {
    listen 80;
    server_name server_domain_or_IP;
    root /var/www/travellist/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Sao chép nội dung trên vào file /etc/nginx/sites-available/travellist, thay đổi các giá trị server_domain_or_IP, travellist để phù hợp với cấu hình của bạn. Sau đó nhấn lưu và đóng file.

Để kích hoạt file cấu hình virtual host mới tạo, hãy tạo một symbolic link đến travellist trong sites-enable:

$ sudo ln -s /etc/nginx/sites-available/travellist /etc/nginx/sites-enabled/

Lưu ý, nếu bạn có một virtual host file khác đã được cấu hình trước đó với cùng server_name được sử dụng cho travellist virtual host, bạn có thể vô hiệu hóa cấu hình cũ bằng cách xóa symbolic link tương ứng trong /etc/nginx/sites-enabled/.

Để chắc chắn cấu hình không bị lỗi cú pháp nào, chạy câu lệnh sau:

$ sudo nginx -t

Kết quả nhận được như sau:

$ 
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
$ nginx: configuration file /etc/nginx/nginx.conf test is successful

Để áp dụng các thay đổi, reload lại Nginx với lệnh:

$ sudo systemctl reload nginx

Bây giờ, hãy truy cập ứng dụng bằng trình duyệt và sử dụng tên miền hoặc địa chỉ IP máy chủ được xác định bởi server_name trong file cấu hình:

http://server_domain_or_IP

Bạn sẽ nhận được kết quả hiển thị trang như sau:

Giao diện hiển thị ứng dụng Laravel
Giao diện hiển thị ứng dụng Laravel

Điều này cho biết máy chủ Nginx đã được cấu hình đúng để phục vụ Laravel. Giờ đây bạn có thể bắt đầu xây dựng ứng dụng trên nền tảng được cung cấp bởi cài đặt mặc định.

Trong bước tiếp theo, bạn sẽ được hướng dẫn sửa đổi main route của ứng dụng để truy vấn dữ liệu trong database bằng DB facade của Laravel.

Bước 6: Tùy chỉnh trang chính

Các bước trên đã hướng dẫn bạn cách cài đặt ứng dụng Laravel và một bảng database có tên places chứa một số mẫu dữ liệu. Bây giờ bạn cần chỉnh sửa tệp định tuyến ứng dụng để truy vấn cơ sở dữ liệu và trả về nội dung cho chế độ xem ứng dụng.

Hãy mở file định tuyến routes/web.php:

$ nano routes/web.php

Tệp mặc định này đi kèm với nội dung sau:

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

Các route được xác định trong tệp bằng cách sử dụng static method Route::get nhận một path và một callback function làm đối số.

Đoạn code dưới đây thay thế main route callback function, thực hiện 2 truy vấn đến database bằng cách sử dụng flag visited để lọc kết quả. Kết quả trả về là chế độ xem có tên là travellist. Sao chép nội dung sau vào file routes/web.php, thay thế đoạn code đã có:

<?php

use Illuminate\Support\Facades\DB;

Route::get('/', function () {
  $visited = DB::select('select * from places where visited = ?', [1]);
  $togo = DB::select('select * from places where visited = ?', [0]);
  return view('travellist', ['visited' => $visited, 'togo' => $togo ] );
});

Lưu và đóng file sau khi cập nhật xong. Tiếp theo bạn cần tạo view để hiển thị kết quả database cho người dùng. Tạo một file mới trong thư mục resources/views:

$ nano resources/views/travellist.blade.php

Mẫu dưới đây tạo ra hai danh sách place dựa trên các biến visited togo. Sao chép nội dung này vào file view:

<html>
<head>
       <title>Travel List</title>
</head>

<body>
      <h1>My Travel Bucket List</h1>
      <h2>Places I'd Like to Visit</h2>
      <ul>
         @foreach ($togo as $newplace)
               <li>{{ $newplace->name }}</li>
         @endforeach
      </ul>

      <h2>Places I've Already Been To</h2>
      <ul>
        @foreach ($visited as $place)
                <li>{{ $place->name }}</li>
        @endforeach
        </ul>
</body>
</html>

Lưu và đóng file sau khi hoàn thành. Hãy mở trình duyệt web ra và tải lại ứng dụng, bạn sẽ nhận được một trang tương tự như sau:

Giao diện hiển thị hai list place trên ứng dụng
Giao diện hiển thị hai list place trên ứng dụng

Như vậy, bạn đã thiết lập xong một ứng dụng Laravel hoạt động trên cơ sở dữ liệu MySQL.

Nếu bạn đang cần thuê VPS để triển khai các dự án, hãy liên hệ với Vietnix để được hỗ trợ tư vấn lựa chọn gói dịch vụ phù hợp với nhu cầu.

Vietnix là nhà cung cấp VPS tốc độ cao uy tín hàng đầu tại Việt Nam với nhiều điểm mạnh để bạn hoàn toàn yên tâm về chất lượng dịch vụ tại đây:

  • Vietnix có kinh nghiệm 10 năm trong lĩnh vực cung cấp dịch vụ VPS và đã được hơn 50.000 khách hàng trong và ngoài nước lựa chọn.
  • Hơn 100.000 dịch vụ đã được kích hoạt.
  • Vietnix cũng đã nhận giải thưởng Thương hiệu Việt Nam xuất sắc năm 2022.
  • Ngoài ra, 97% khách hàng sử dụng VPS tại Vietnix đều có đánh giá 5 sao và giới thiệu cho người quen.

Liên hệ cho Vietnix theo những thông tin dưới đây để được tư vấn giải đáp VPS tốc độ cao, ổn định hàng đầu trên thị trường.

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn

Lời kết

Trong bài viết về cách cài đặt và cấu hình Laravel với Nginx trên Ubuntu 20.04 trên, Vietnix đã hướng dẫn bạn cách thiết lập ứng dụng Laravel trên nền tảng LEMP (Linux, Nginx, MySQL, PHP) chạy trên Ubuntu 20.04. Đồng thời thiết lập route mặc định để truy vấn nội dung cơ sở dữ liệu và hiển thị kết quả trong một view tùy chỉnh. Từ đây bạn có thể tạo các route mới cho các trang bổ sung khi cần thiết. Nếu có bất kỳ ý kiến đóng góp nào liên quan, hãy để lại bình luận ngay dưới nhé.

Chia sẻ lên

Theo dõi trên

Logo Google new

Đánh giá

5/5 - (55 bình chọn)

Hưng Nguyễn

Kết nối với mình qua

Icon Quote
Icon Quote
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix

Bình luận

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Chỉ số tăng trưởng

Điểm Desktop

100 (+39)

Điểm Mobile

100 (+67)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

99 (+28)

Điểm Mobile

100 (+50)

Core Web Vitals

Passed

Lĩnh vực

SEO

Chỉ số tăng trưởng

Điểm Desktop

99 (+26)

Điểm Mobile

98 (+59)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

100 (+8)

Điểm Mobile

98 (+35)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Chỉ số tăng trưởng

Điểm Desktop

100 (+61)

Điểm Mobile

100 (+61)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Võ Thiên Tòng

25 Tháng 2 lúc 21:09

·

Mình muốn gửi lời cảm ơn chân thành đến Team Vietnix, anh Hưng Nguyễn, anh Vietnix Trung, em Quốc Huy đã hỗ trợ tối ưu Page Speed Insight (PSI) cho website vanvoiminhhoa.vn của mình.
Biết đến anh Hưng đã lâu nhưng chưa có duyên sử dụng dịch vụ bên anh. Tình cờ thấy được bài Post của anh về việc hỗ trợ tối ưu PSI miễn phí chỉ với vài Slot, thấy AE cmt khá nhiều nên cũng không nghĩ tới lượt mình. Hôm sau đánh liều inbox 1 phen xem sao thì may mắn được đưa vào danh sách. Vài ngày sau được Team Vietnix liên hệ và hỗ trợ.
Kết quả đạt được:
• Điểm xanh lè xanh lét
• Tốc độ tải trang nhanh hơn hẳn
• Các chỉ số cũng được cải thiện đáng kể
• Và mình tin rằng với việc PSI được cải thiện cũng thúc đẩy những thứ khác đi lên theo!
Mình thực sự hài lòng với dịch vụ của Vietnix và muốn giới thiệu đến tất cả mọi người:
• Dịch vụ Wordpress Hosting: Tốc độ nhanh, ổn định, bảo mật cao, hỗ trợ kỹ thuật 24/7. (https://vietnix.vn/wordpress-hosting/)
• Dịch vụ Business Hosting: Dung lượng lớn, phù hợp cho website có lượng truy cập cao, tích hợp nhiều tính năng cao cấp. (https://vietnix.vn/business-hosting/)
Đặc biệt, Vietnix đang có chương trình ưu đãi:
• Giảm giá 20% trọn đời khi nhập code THIENTONG_PAGESPEED tại trang thanh toán (Chu kỳ 12 tháng trở lên)
• Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website
Cám ơn Vietnix một lần nữa!
#Vietnix #Vanvoiminhhoa #Pagespeedinsight
Trước khi tối ưu
Sau khi tối ưu
Thiện Nguyễn - CEO SEO Dạo

5 Tháng 3 lúc 16:21

·

CORE WEB VITAL YẾU TỐ XẾP HẠNG TÌM KIẾM SEO
Core Web Vitals là một tập hợp các chỉ số đo lường hiệu suất của trang web từ góc độ người dùng, được Google sử dụng để đánh giá trải nghiệm người dùng trên các trang web. Các chỉ số chính bao gồm:
– Largest contentful paint (LCP): Tốc độ render của page. Mục tiêu là dưới 2,5 giây.
– First input delay (FID): Tốc độ phản hồi của website với tương tác của người dùng. Mục tiêu là dưới 100ms.
– Cumulative Layout Shift (CLS): Độ ổn định của bố cục trang. Mục tiêu là dưới 0.1.
Tất cả các chỉ số này đo lường các khía cạnh quan trọng của trải nghiệm người dùng trên trang web. Google đã công bố rằng từ tháng 5 năm 2021, các Core Web Vitals sẽ được sử dụng làm một trong các yếu tố đánh giá trong việc xếp hạng trang web trên kết quả tìm kiếm. Do đó, hiểu và cải thiện các Core Web Vitals là rất quan trọng đối với SEO.
Tóm lại, Core Web Vitals không chỉ giúp cải thiện hiệu suất và xếp hạng trang web trên công cụ tìm kiếm, mà còn cải thiện trải nghiệm của người dùng khi họ truy cập và tương tác với trang website.
P/s: mình đang có gói hỗ trợ đặc biệt cho anh em tối ưu tốc độ bên VIETNIX:
– Giảm 20% lifetime dịch vụ Hosting Business và Hosting Wordpress chu kỳ 12 tháng trở lên.
– Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website.
Anh em có nhu cầu đăng ký qua bạn Vietnix Trung này nhé và nhập mã SEODAO_PAGESPEED để được ưu đãi nhé.😁
Trước khi tối ưu
Sau khi tối ưu SEO Dạo
Icharm review

5 Tháng 3 lúc 15:43

·

[Mình vừa được hỗ trợ tối ưu page speed website]
Trước khi được tối ưu, web của mình điểm rất thấp, đặc biệt là mobile chỉ có 39. Cơ duyên thế nào lúc lướt face lại va phải chương trình tối ưu pagespeed bên Vietnix.
Sau khi được Trần Hoàng Phúc và team Vietnix hỗ trợ nhiệt tình, điểm web vọt lên 98 99 (như hình bên dưới). Dùng thử web thì thấy quá là mượt, 10 điểm cho team Vietnix.
Nói thật thì mình thật sự ấn tượng về sự nhiệt huyết, tận tâm và rất chuyên nghiệp bên Vietnix.
Anh em có nhu cầu về hosting hay có vấn đề về website như:
1. Web load chậm
2. Khách rời web vì đợi tải nội dung, hình ảnh lâu
3. Hay tất tần tật mọi thứ về website
THÌ LIÊN HỆ NGAY VIETNIX NHÉ!
Và đừng quên dùng pass “ICHARM_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting. Quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
Trước khi tối ưu
Sau khi tối ưu
Hoàng Nguyễn

29 Tháng 2 lúc 17:04

·

Xin chào mọi người! Vừa rồi mình có sử dụng dịch vụ tối ưu website, tăng tốc độ tải trang pagespeed của Vietnix kết quả trên cả tuyệt vời nên mình viết bài này để chia sẻ thông tin với các bạn.
Lý do mình chọn dịch vụ tối ưu tốc độ website của Vietnix:
✅ Đội ngũ chuyên gia giàu kinh nghiệm: Đã tối ưu thành công cho hàng nghìn website trong nhiều lĩnh vực khác nhau. Các bạn nhân viên rất thân thiện, nhiệt tình và chủ động trong quá trình làm việc để cập nhật tiến độ.
✅ Quy trình chuyên nghiệp:
– Kiểm tra và phân tích: Vietnix sử dụng các công cụ tiên tiến để kiểm tra và phân tích tốc độ website của bạn.
– Xác định nguyên nhân: Vietnix xác định nguyên nhân khiến website tải chậm và đưa ra giải pháp tối ưu phù hợp.
– Tối ưu hóa website: Vietnix áp dụng các kỹ thuật tối ưu tiên tiến nhất để tăng tốc độ tải trang.
– Báo cáo kết quả: Vietnix cung cấp báo cáo chi tiết về kết quả tối ưu hóa website.
Công nghệ tiên tiến: Vietnix sử dụng các công nghệ tối ưu mới nhất như LiteSpeed, LSCache, Memcached, Redis, v.v.
✅ Cam kết kết quả: Vietnix cam kết tăng tốc độ website của bạn lên tối thiểu 90%.
✅ Giá cả cạnh tranh: Vietnix cung cấp dịch vụ tối ưu tốc độ website với mức giá cạnh tranh nhất trên thị trường.
📣 Để đăng ký sử dụng dịch vụ tối ưu tốc độ website và các dịch vụ khác như hosting, vps, domain… các bạn có thể đăng ký tại https://portal.vietnix.vn/aff.php?aff=57 hoặc Inbox cho sếp Vietnix Trung nhé.
Các bạn có thể kiểm tra tốc độ trang của mình https://lasan.edu.vn hoặc một vài trang khác đã sử dụng dịch vụ của Vietnix như sau:
https://pagespeed.web.dev/…/https…/v8beqewyt2…
https://pagespeed.web.dev/…/https…/etiohjvtl4…
https://pagespeed.web.dev/…/https…/yczuqpw6d1…
https://pagespeed.web.dev/…/https…/xf9y65kuzk…
https://pagespeed.web.dev/…/https…/fdrsms15en…
https://pagespeed.web.dev/…/https…/s7p9cgzeri…
Trước khi tối ưu
Sau khi tối ưu
Dũng cá xinh

30 Tháng 1 lúc 19:09

·

[Đỉnh]
Em có dùng hosting, vps, cloud vps, cloud server, dedicated server của rất nhiều bên từ trong nước đến nước ngoài để hosting khoảng 2,000+ domain. Mỗi bên đều có ưu nhược khác nhau, nhưng có 1 số bên đặc biệt “bá đạo”, trong đó có: Vietnix!!!!

Lần đầu tiên em được cả CEO Hưng Nguyễn lẫn Master về dev Vietnix Trung của 1 đơn vị hàng đầu liên quan đến Hosting, Server support từ A – Z (từ Zalo, Tele, đến FB và cả Phone)

Em có khá nhiều web dạng Big Data (bài, ảnh, database, data) lên đến hàng trăm Gb. Càng to thì nó càng có nhiều vấn đề về phần phản hồi ban đầu (nhược điểm cố hữu của php wordpress so với nativejs, reactjs, html, headless,…), và anh em Vietnix có nhã ý hỗ trợ xử lý phần Speed Insight này.

Kết quả thực sự kinh ngạc, từ cách trao đổi đến xử lý vấn đề, cut off những cái cần cut off, xử lý rất sâu vấn đề và gợi ý rất nhiều ý tưởng optimize hệ thống!!!! Thực sự quá hài lòng về kết quả cũng như cách tương tác của các đầu tầu bên Vietnix ^^!!!

Nhân cơ duyên được kết nối với những cao thủ của Vietnix, em xin chia sẻ và lan tỏa để nhiều anh em có cơ hội được sử dụng những dịch vụ tốt nhất với giá vô cùng hợp lý!!!!

1 – Với anh em chưa có hosting, em đặc biệt recommend sử dụng hosting bên Vietnix:
– Sử dụng mã DUNGCAXINH_PAGESPEED sẽ được giảm 20% trọn đời (lifetime luôn)
– Áp dụng các gói Hosting Business, Hosting wordpress và reg 1 năm trở lên
– Anh em chưa biết cách reg thì còm men hoặc ib để em hướng dẫn hoặc nhờ các bạn bên Vietnix support từ A – Z

2 – Anh em có hosting rồi và muốn build blog hoặc web = wordpress mà chưa có giao diện thì nhân tiện em đang có tài khoản Premium bên Envato, em sẽ tặng bất kỳ giao diện nào có trên Envato Themes (Link em để dưới còm men) ạ. Cả nhà còm hoặc ib em Themes mà mọi người “chim ưng”, em sẽ cho anh em tải về, up drive và gửi ạ!!! (Chương trình này kéo dài đến ngày 29 tết âm lịch ạ)

3 – BEST NHẤT luôn!!!! Anh em nào mua hosting dùng mã DUNGCAXINH_PAGESPEED sẽ được tối ưu 100 điểm tốc độ cho 1 web (đây là ưu đãi riêng của CEO Hưng Nguyễn dành cho bạn bè của #dungcaxinh ^^) (Giá trị nhất là cái vụ số 3 này anh chị em nhé ^^), cơ hội vàng để move về đơn vị hosting uy tín là đây ^^!!!!

Một lần nữa xin chân thành cám ơn 2 đồng chí em: Hưng Nguyễn và Vietnix Trung đã giải được một bài toán khó cho các trang WP Big data mà anh loay hoay bao lâu nay chưa tìm ra đáp án!!! Chúc Vietnix ngày càng phát triển và có một năm 2024 đại đại thắng nhé ^^ !!!!!
#SEO #Vietnix #dungcaxinh

Trước khi tối ưu
Sau khi tối ưu
Hiếu AI

2 Tháng 2 lúc 21:06

·

UY TÍN – TẬN TÂM – TỐC ĐỘ

3 từ trên là vẫn chưa đủ để nói về quy trình làm việc cực chuyên nghiệp của team Vietnix.Chuyện là mình có con website chính đang có lượt truy cập organic hàng ngày cũng tương đối (hình 1)

Vấn đề là, con site này đang nằm trên hosting dùng chung nên tốc độ load chưa nhanh, tốc độ load chưa nhanh thì trải nghiệm visitor chưa tốt, trải nghiệm visitor chưa tốt thì tỷ lệ chuyển đổi ra đơn hàng kiểu gì thì kiểu cũng sẽ bị ảnh hưởng.

Biết rõ là đang mất tiền nhưng không biết xử lý như lào, nghĩ mà cay.

Đang loay hoay thì vận may nó tới, hôm qua đang lướt phở bò thấy a Nguyễn Việt Dũng đăng bài, rảnh nên thả cái comment hóng hớt, ai ngờ ngoằng phát thấy ông Dũng tạo nhóm với Vietnix Trung luôn.

Ae Vietnix thì siêu tốc độ, lập tức lấy thông tin vào việc, không hỏi han lằng nhằng, không kỳ kèo chốt đơn dù lúc đấy cũng đang đêm muộn.
Sáng hôm sau dậy vẫn còn đang lơ ngơ mở điện thoại check tin nhắn thì đã thấy ae Vietnix báo xong việc, trong khi mình vẫn chưa biết có chuyện gì xảy ra @@.

Được cái bấm thử website thì thấy load siêu nhanh, chưa tới một giây là thông tin các thứ hiện hết. Quá phê, thả con ảnh trước sau (hình 2,3) để ace tiện đối chiếu nhé. Thế này thì mình gửi gắm nốt 15 em website còn lại cho team Vietnix thôi chứ không cần nghĩ ngợi gì nữa. 10/10.

Nên là:

  1. Anh chị em muốn có một con website tốc độ load nhanh như tốc độ trở mặt của nyc – Dùng ngay dịch vụ hosting của Vietnix
  2. Anh chị em có website rồi muốn tìm bên hosting uy tín, chuyên nghiệp hỗ trợ không quản ngày đêm – Liên hệ ngay Vietnix Trung
  3. Anh chị em quan tâm đến trải nghiệm khách hàng, từ những cái nhỏ nhất như tăng tốc độ website – Better call Vietnix Trung

Và đừng quên dùng pass “HIEUAI_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting, quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
#SEO #Vietnix #hieuai

Website
Trước khi tối ưu
Sau khi tối ưu

Chỉ số tăng trưởng

Điểm Desktop

100 (+43)

Điểm Mobile

100 (+74)

Core Web Vitals

Passed

Lĩnh vực

AI