HocVPS Script là 1 bash script chạy trên SSH sẽ tự động cài đặt tất cả các thành phần cần thiết nhất cho VPS với một dòng lệnh duy nhất.

Không như những Control Panel khác, HocVPS Script không hề sử dụng bất kỳ tài nguyên server (CPU, RAM) và không thể mắc lỗi bảo mật nào để hacker khai thác được nên các bạn có thể hoàn toàn yên tâm sử dụng.

Ngoài ra, webserver sẽ được tự động tối ưu cấu hình để đảm bảo có hiệu suất hoạt động tốt nhất, bảo mật nhất. Ngay cả những bạn mới làm quen với VPS cũng có thể quản lý VPS thông qua menu dòng lệnh đơn giản, gọi bằng lệnh hocvps

HocVPS Script sẽ tự động cài đặt:

  • Webserver Nginx bản mới nhất.
  • Database MariaDB bản mới nhất 10.0 (chính là MySQL được tối ưu).
  • PHP phiên bản mới nhất tùy chọn: PHP 7.3, PHP 7.2, PHP 7.1, PHP 7.0, PHP 5.6; đi kèm Zend OPcache
  • phpMyAdmin mới nhất.
  • eXtplorer mới nhất để quản lý File Manager, có thể tạo user, phân quyền riêng biệt.

Những tính năng đặc biệt:

  1. Thông tin cài đặt đơn giản, chỉ cần lựa chọn phiên bản PHP, tên miền chính và port admin là đủ.
  2. Sử dụng Nginx repo thay vì compile từ source như những script khác giúp việc cài đặt Nginx nhanh hơn, sau này có nâng cấp cũng dễ dàng hơn rất nhiều.
  3. Thay thế MySQL bằng MariaDB cho kịp xu hướng (đây là phiên bản cải tiến từ MySQL, hoạt động tương tự nhưng cho hiệu suất cao hơn MySQL; ngoài ra phiên bản mới nhất CentOS 7 chính thức đã hỗ trợ MariaDB).
  4. Tương thích với cả CentOS 6 và CentOS 7, cả 32bit lẫn 64bit chơi hết. Lưu ý chưa dùng được trên CentOS 8.
  5. Tùy chọn sử dụng cài đặt phiên bản PHP 7.3 (mới nhất), PHP 7.2, PHP 7.1, PHP 7.0, PHP 5.6.
  6. Có trình quản lý File Manager eXtplorer trực tiếp ngay trên web.
  7. Tự động cài đặt module Zend Opcache và có thể theo dõi status ngay trên web.
  8. Sử dụng được với cả domain www và non-www, tự động redirect giúp bạn.
  9. Update tự động cho Nginx, PHP, MariaDB.
  10. Theo dõi tình trạng server ngay trên web, có thể sử dụng mobile truy cập mọi nơi.
  11. Thay đổi port SSH mặc định từ 22 sang 2222 hạn chế SSH Brute Force Attack, kèm theo Fail2ban block IP ngay nếu phát hiện login sai 3 lần (áp dụng cả SSH và HocVPS Script Admin).
  12. Toàn bộ thông tin quản lý sẽ được lưu trong file text ở /root/hocvps-script.txt
  13. Tham khảo thêm tính năng mới trong Changelog.

Yêu cầu hệ thống:

  1. RAM: tối thiểu 512MB
  2. Nên tạo swap trước khi cài (nếu sử dụng ổ cứng SSD hoặc RAID10)

Trước khi tiến hành cài đặt, bạn cần nắm một số kiến thức căn bản trong bài Bắt đầu, chủ yếu là cách sử dụng ZOC Terminal kết nối SSH.

1. Cài đặt HocVPS Script

Đầu tiên các bạn cần chuẩn bị một VPS mới tinh bằng cách Reinstall hoặc Rebuild, sử dụng CentOS 6 hoặc CentOS 7, bản 32bit hoặc 64bit đều được. Nên sử dụng bản CentOS 7 x64 với PHP 7.3.

Kết nối SSH sử dụng ZOC Terminal hoặc Putty với tài khoản root. Nếu tài khoản không có quyền root cần cấp quyền bằng cách chạy lệnh sudo su.
Chạy lệnh sau để tiến hành cài đặt:

curl -sO https://hocvps.com/install && bash install
– Cài đặt xong, khi connect SSH VPS bạn hãy sử dụng port 2222, không dùng port 22!
– HocVPS Script không hoạt động trên VPS chỉ có IPv6 (gói $2.5 của Vultr)

***Nếu muốn cài đặt luôn WordPress, hãy tham khảo script tự động cài đặt HocVPS Script và WordPress.

***Học VPS có dịch vụ cài đặt VPS/Server, nếu không muốn mất thời gian bạn hãy sử dụng cho chuyên nghiệp.

Chuẩn bị quá trình cài đặt

Trong bước này bạn cần lựa chọn:

  1. Phiên bản PHP muốn sử dụng: nên dùng PHP 7.3, có hiệu suất gấp 3 lần so với phiên bản cũ 7.1.
  2. Tên miền chính sử dụng với VPS, có thể nhập có www hoặc không có www tùy mục đích sử dụng, script sẽ tự động redirect giúp bạn.
  3. Port admin quản lý server: là port bí mật (nằm trong khoảng 2000 – 9999, thay đổi được sau khi cài) dùng để:
    • Truy cập link quản trị, có dạng: http://domain.com:port/
    • Sử dụng phpMyAdmin, link dạng: http://domain.com:port/phpmyadmin/
    • Quản lý File Manager, link dạng: http://domain.com:port/filemanager/
    • Theo dõi tình trạng hệ thống, link dạng: http://domain.com:port/serverinfo/
    • Theo dõi tình trạng Zend Opcache, link dạng: http://domain.com:port/op.php

Sau đó, bạn cứ để cho script tự động thực hiện quá trình cài đặt, có thể mất từ 3 – 5 phút tùy cấu hình và network của VPS/Server.

Cuối cùng, nếu không có vấn đề gì xảy ra, bạn sẽ nhận được thông báo cài đặt thành công và thông tin quản lý VPS như bên dưới. Đồng thời, thông tin này cũng sẽ được lưu trong file text có đường dẫn /root/hocvps-script.txt để bạn xem lại sau này.

Vậy là server sẵn sàng để bạn sử dụng rồi đấy.

2. Sử dụng HocVPS Script

HocVPS Menu được sử dụng qua lệnh hocvps trên SSH Terminal.

Sau khi cài đặt xong HocVPS Script, bạn có thể sử dụng sFTP để quản lý File, upload code lên thư mục /home/domain.com/public_html/ đồng thời trỏ tên miền về IP VPS và bắt đầu sử dụng.
Lưu ý: Sau khi upload source lên thư mục web, các bạn sử dụng hocvps menu 14 Phân Quyền Webserver để Nginx đọc được nội dung website.

Nếu muốn kết nối SSH bạn hãy sử dụng port 2222.

Trong quá trình sử dụng, đang ở bất kỳ chức năng nào bạn cũng có thể nhấn Ctrl + C sẽ thoát khỏi Script ngay lập tức.

Bảo mật an toàn tuyệt đối

Mình luôn đặt vấn đề bảo mật và sự đơn giản lên hàng đầu nên từ phiên bản HocVPS Script v1.6 sẽ bổ sung thêm một lớp bảo mật nữa khi truy cập các link có chứa port. Bạn có thể thay đổi password này cho dễ nhớ hơn khi truy cập link quản trị http://domain.com:port/.

Username mặc định cho tất cả các tool là admin, password tự động sinh ra sau khi cài đặt xong server. Nếu bạn nhập sai thông tin quá 3 lần, IP sẽ tự động bị block trong 1h. Nâng thêm thời gian theo hướng dẫn này.


– Cloudflare CDN chặn truy cập qua port bất thường nên domain sử dụng CDN Cloudflare(đám mây vàng) cần tắt CDN để truy cập domain:port. Nếu không, chỉ truy cập qua ip:port
– Cài đặt xong HocVPS Script, các bạn nên thiết lập luôn Script backup tự động nhằm đảm bảo an toàn cho data và database.
– HocVPS Script hoạt động rất tốt với WordPress, Joomla, Magento, PrestaShop, Xenforo (đã trực tiếp test)

3. Bài viết hay liên quan đến HocVPS Script

  1. Reset password quản lý server HocVPS Script
  2. Rclone – Backup toàn bộ VPS lên Google Drive
  3. Cài đặt chứng chỉ Let’s Encrypt trên server HocVPS Script
  4. Hướng dẫn cài đặt chứng chỉ SSL trên Nginx
  5. Tự động cài đặt HocVPS Script và WordPress
  6. Script tự động tải và cài đặt WordPress trên VPS
  7. Hướng dẫn config VPS chịu tải lớn với HocVPS Script 4k3 online trên VPS 2GB RAM
  8. Cách xử lý lỗi: Couldn’t resolve host

4. Một số vấn đề có thể gặp phải

Trong file config.php bạn hãy chuyển:

$config['Database']['dbtype'] = 'mysql';

thành

$config['Database']['dbtype'] = 'mysqli';

rồi thêm đoạn sau vào: define('DISABLE_HOOKS', true);

1. Đối với phiên bản HocVPS Script hiện tại

Các bạn chỉ cần chạy menu “hocvps” rồi chọn option 15) Nang cap server. Toàn bộ quá trình nâng cấp sẽ được tự động thực hiện.

2. Đối với phiên bản HocVPS Script cũ

PHP

Để kiểm tra phiên bản PHP hiện tại bạn dùng lệnh php -v hoặc php-fpm -v

– Nếu bạn đang dùng PHP 5.4.x và muốn nâng cấp lên bản cao nhất (cùng là 5.4.x)

yum --enablerepo=remi update php\*

– Nếu bạn đang dùng PHP 5.4.x và muốn nâng cấp lên 5.5.x hoặc đang dùng 5.5.x và muốn nâng cấp lên bản cao nhất

yum --enablerepo=remi-php55,remi update php\*

Nginx

Để kiểm tra phiên bản Nginx đang sử dụng bạn dùng lệnh nginx -v hoặc nginx -V

Nâng cấp Nginx lên phiên bản mới nhất:

yum --enablerepo=remi-php55,remi update nginx\*

MySQL-MariaDB

Để kiểm tra phiên bản MariaDB đang sử dụng bạn dùng lệnh mysql -p

Nâng cấp MariaDB lên phiên bản mới nhất:

yum upgrade MariaDB-server MariaDB-client

phpMyAdmin

Bạn hãy xóa toàn bộ file + folder trong thư mục /home/maindomain.com/private_html/ bằng lệnh rm rồi tải script phpMyAdmin mới nhất giải nén vào thư mục này.

Xem thêm hướng dẫn cài đặt phpMyAdmin trên CentOS

Để bảo mật, khi server dùng HocVPS Script không website nào có thể chèn được IFRAME từ site của bạn.

Trong trường hợp cần dùng IFRAME, hãy mở file/etc/nginx/nginx.conf xóa dòng add_header X-Frame-Options SAMEORIGIN; và reload Nginx là được ngay nhé.

service nginx reload

Linode tự động kích hoạt IPv6 nên khi gửi mail tới Gmail sẽ bị lỗi với lệnh test:

echo "Subject: test" | /usr/lib/sendmail -v admin@gmail.com

Để gửi được mail, đơn giản bạn chỉ cần disable IPv6 đi là xong.


Mặc định, HocVPS Script đã mở các port cần thiết: SSH(2222), HTTP/HTTPS(80/443), HocVPS Admin… Tuy vậy, một số nhà cung cấp VPS (Google Cloud, Amazon…) có thiết lập tường lửa riêng bên ngoài VPS và mặc định chỉ cho phép port SSH(22) và HTTP(80). Như vậy, bạn cần mở port thủ công tại trang quản lý của nhà cung cấp
Đối với Google Cloud, tạo rule allow trong Networkdefault như hình dưới để áp dụng mặc định cho toàn bộ VPS trong tài khoản.

Đối với EC2, bạn chỉnh ở mục NETWORK&SECURITY - Security Groups - Inbound. Tương tự, bạn cần mở thủ công port HTTPS(443), FTP… nếu cần.
Tagged:

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

7,993 Comments

    1. Luân Trần Admin

      Bạn chỉnh sửa và lưu rule trong file cấu hình domain ở thư mục /etc/nginx/conf.d/ nhé

  1. Nguyễn Hồng Kỳ 27 comment

    Luân ơi, không hiểu ở đâu ra mấy file này trên server của mình nữa. Trước có xuất hiện và mình đã cài đặt server mới tinh, sau 1 thời gian thì nó lại xuất hiện. Các domain thêm vào đều có hết. Bạn có mấy cái file này không? Server mình chậm hẳn đi.

    http://i.imgur.com/YbVtxID.jpg

        1. Luân Trần Admin

          Bạn cần tìm chuyên gia tư vấn và xử lý cho, không chuyển đi đâu cũng bị hack và chèn file lạ vào thôi.

  2. Minh Thanh 56 comment

    Làm thế nào để xem được RAM, CPU đang sử dụng và còn dư bao nhiu nhỉ ?

    1. Luân Trần Admin

      Hự, có vấn đề gì đó rồi. Gửi thông tin login root vào mail mình check cho.

  3. Vuong vu 3 comment

    Khi mình nhập mk vps đc cung cấp vào putty thì nó vẫn yêu cầu nhập mk.mình copy dán rồi enter vẫn k đc bạn ah

    1. Luân Trần Admin

      Bạn dùng DigitalOcean à, lần đầu đăng nhập phải đổi pass, pass trên Linux khi nhập sẽ không hiện gì cả, bạn cứ gõ bình thường.

  4. Toàn 3 comment

    bác cho em hỏi là hiện em có 2 website. Website đầu tiên em đã đưa lên vps chạy hocvps thì ok rồi. h đến website thứ 2 em cũng thêm vào vps đó thì phải làm như thế nào ạ

    1. Luân Trần Admin

      Bạn login SSH, chạy lệnh hocvps, chọn chức năng Thêm website là sẽ có thư mục mới cho website thứ 2 nha

  5. Tam 1 comment

    Mình xài vultr, 512M, cài học vps script + backup google drive + 1 website demo mà mysql stop hoài. Hix

    1. Luân Trần Admin

      MySQL Stop do thiếu RAM, bạn tối ưu cache, kích hoạt swap các kiểu lên nhé.

  6. cuong 3 comment

    ad ơi sao em cài xong up source wordpress lê mà vô wp-admin không cài plugin được ạ ? nó cứ báo sai mật khẩu mình phải cấu hình như nào ?

  7. Vu Nguyen 12 comment

    Chào Luận !

    Khi mình tạo database xong hết . Nó báo lỗi ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES) là lỗi gì thế bạn ? Làm sao fix nó !

  8. Bảo Dương 1 comment

    Cho mình hỏi mình muốn thay đổi tên domain thì phải làm thế nào vậy? ở bước cài đặt nhập tên domain mình nỡ nhập sai tên.

    1. Luân Trần Admin

      Cái này không quan trọng đâu, bạn cần thì chọn chức năng Thêm website để nhập domain mới vào và dùng.

  9. Vu Nguyen 12 comment

    Chào bạn !

    Do quá trình cài đặt HOCVPS bị lỗi nên mình muốn remove HOCVPS ra để cài lại. Mà mình không biết remove như thế nào. Bạn có thể giúp mình !

  10. Dong Ha Van 6 comment

    Hi admin, ngoài cài script này cần cài thêm gì nữa không? firewall, cache hay gì đó?
    Xin admin gợi ý, vì mình k biết sử dụng vps nhưng cài script hocvps thấy dễ xài hơn cả hosting.

  11. Chu Tuấn 23 comment

    Web https://phuonglong.com.vn của mình bị phản hồi máy chủ chậm dù đã tối ưu cache cho web đầy đủ cả. Cách nào cải thiện tình hình này, nhờ bác luân tư vấn giúp. Dùng hawk host thấy tốc độ còn nhanh hơn chứ 🙁

  12. tran minh 2 comment

    Bạn ơi giúp mình với, sau khi cài ssl mình trup cập ip:port/phpmyadmin là bị báo
    403 Forbidden
    nginx

    Mong sự giúp đỡ

  13. dũng 119 comment

    cho mình hỏi hocvps có thêm được : Domain Pointer được không
    nó là dạng domian khác nhưng chạy cùng trên 1 hosting ấy

  14. Toàn Nguyễn Hữu 16 comment

    Thấy lạ cái là mình đang cài 1 website trên VPS sử dụng Hocvps (web dùng WP ) sau đó xóa đi restore lại thì ra trang trắng tinh, chẳng biết lỗi gì nữa

  15. minh 1 comment

    Bạn ơi giúp với, sau khi cài ssl xong thì mình ko truy cập qua port để vào đc phpmyadmin nữa, có cách nào vào đc ngoài vào qua link đó ko bạn

    1. Luân Trần Admin

      Bạn gửi file cấu hình vào mail mình coi nhé. Hình như sai đoạn nào rồi.

  16. Bùi Xuân Thắng 6 comment

    Anh ơi em cần đổi pass admin khi truy cập vào http://ip:port thì làm như nào a. Em đã mất pass và vào trong file info xem pass nhưng vẫn ko dùng được. Em cảm ơn!

      1. Bùi Xuân Thắng 6 comment

        Thằng cu em nó cài. Nhưng ko biết nó có đổi pass hay không. Giờ nó cũng không nhớ pass nữa a ạ. Em vào file info của hocvps xem pass nhưng pass đó cũng k dùng được. Có đổi được pass ko a.

  17. loi pham 3 comment

    chuẩn quá anh ơi. tôi nay e mua vps cài thử mới được. a mà a có online cho e hỏi dùng vps nào tốt nhất cho thị trường việt nam vậy anh. e đã có vps DO rồi định mua con vps Vultr để cái theo hocvps script.
    cảm ơn anh mong a trợ giúp

  18. hoàng 1 comment

    Mình làm đúng như hướng dẫn, báo đã cài đặt thành công nhưng đến đoạn chạy http://domain.com:port/filemanager/ để vào file thì không được bỏ hết port đi thì thấy có Welcome to nginx! nhưng cứ thêm port vào là không được
    mình dùng vps free của googlecloud có ai tư vấn thêm cho mình được không

    1. Luân Trần Admin

      VPS của Google bạn phải mở port thủ công rồi. Thêm 1 bước nữa nhé.

  19. hung 1 comment

    sao mình thêm www cho domain thì không chạy được nhỉ không www thì chạy ok

  20. hai 2 comment

    @Luân,
    Mình vừa mua code này https://codecanyon.net/item/ninja-media-script-viral-fun-media-sharing-site/6822888?ref=devdojo
    họ yêu cầu phía server phải có những thứ sau
    PHP >= 5.4
    Apache Web Server
    MCrypt PHP Extension (available in most hosting providers)
    Allow_url_fopen enabled
    PDO Extension

    Hiện tại server mình dùng hocvps script (Cảm ơn Luân) để cài đặt.
    Vậy xin hỏi Luân để đáp ứng yêu cầu trên mình cần và nên làm những gì

    Cảm ơn Luân một lần nữa!

    1. Luân Trần Admin

      Cái Apache này hơi khó rồi, bạn check xem Nginx có hoạt động được không đã. Mấy cái còn lại check sau

  21. Nam Nguyễn 4 comment

    A luân cho e hỏi là thao tác setup cronjob cho hocvps như thế nào vậy ạ?

    e thực hiện theo hướng dẫn trên google ( Sử dụng Cron, Crontab từ động chạy script trên Server Linux ) nhưng không thấy hoạt động

    a giúp e được không a?

  22. omg 4 comment

    Bạn ơi choi minh hỏi, muốn chuyển index.html sang inden.php thì dùng lệnh gì vậy bạn?
    Mình cảm ơn

      1. omg 4 comment

        Vì mình mới chuyển sang ssl, vô bằng chrome và firefox thì nó tự chuyển sang https, còn vô safari thì nó ra trang http://…..index.html

      2. omg 4 comment

        Nó ra thông báo như này thì mình fix làm sao vậy bạn?

        If you are the website administrator:
        You may now add content to the directory /home/sim.yourdomain.com/public_html. Note that until you do so, people visiting your website will see this page, and not your content. To prevent this page from ever being used, replace this file (index.html). You may also wish to make modifications to /etc/nginx/nginx.conf and /etc/nginx/conf.d/virtual.conf.

        You are free to use the image below (and these) on web sites powered by the Nginx HTTP Server:

        Cám ơn bạn nhiều.

  23. Toàn Nguyễn Hữu 16 comment

    Mình nghe giới thiệu về NGINX thấy rất hứng thú tuy nhiên, liệu có rắc rối gì khi chuyển dữ liệu qua lại giữa website dùng Apacha với htacess và NGINX, có phải thay đổi gì so với việc chuyển dữ liệu giữa 2 apacha ko

    1. tho 8 comment

      Hi bạn , bạn dùng được hocvps scrip không , mình toàn bị lỗi này , bạn giúp mình chút với :

      “không hiểu sao sau khi cài xong hết rồi , chuyển ip cho domain rồi , minh login vao http://domain.com/wp-admin : toan bao loi .
      Riêng vào domain.com thi lai khong vao duoc , không hiểu sai bước nào nữa ”

      mình sửa db_host sang ip của VPS thì báo lỗi ” error establishing a database connection ”
      còn để localhost thì không vào được. hix . thanks

    2. Luân Trần Admin

      Tùy code bạn dùng là gì mà có cần cấu hình lại rule hay không nữa. Nếu WordPress thì chuyển vô tư.

  24. tho 8 comment

    không hiểu sao sau khi cài xong hết rồi , chuyển ip cho domain rồi , minh login vao http://domain.com/wp-admin : toan bao loi .
    Riêng vào domain.com thi lai khong vao duoc , không hiểu sai bước nào nữa

    ( mình dùng domain godaddy đang kèm theo gói host 12$ , thấy chuyển qua vps gian nan quá 🙁 )

    1. Luân Trần Admin

      Chuyển bình thường thôi, chắc bạn thao tác lỗi đoạn nào rồi. Domain của bạn là gì vậy?

      1. tho 8 comment

        minh thao tác không thấy lỗi đoạn nào cả , mình đã xóa wp-super cache trước khi chuyển rồi mà vẫn không được , dùng Sentora thì chuyển blog bé ok , nhưng có vẻ nó không ổn định lắm nên mình muốn dùng hocvps.hix

        1. Luân Trần Admin

          Giờ mình cần thông tin cụ thể hơn, chứ chung chung thế này ko hiểu bạn đang nói gì luôn.

  25. Tuấn Anh 7 comment

    Giúp e với. Ko biết e đã thay đổi gì trong iptables mà giờ tất cả các port bị refused to connect. Chỉ mỗi port 2222 của ssh là connect được :((

    1. Luân Trần Admin

      Magento 2 khó xài quá, mình chưa mò ra. Khả năng phải cài mới server, không kết hợp được với HocVPS Script rồi.

      1. Dinh Le Giang 51 comment

        Cài nginx thuần thì OK rồi, mò cả 2 tiếng mới cài được, khổ cái là mấy cái nginx, cache, rồi mariadb phải tối ưu tay hết, đuối, sai cái là mò thấy bà chưa ra

      2. Dinh Le Giang 51 comment

        Mà hỏi cái nữa, hocscript có cho set lại cái nginx của domain không, tại cái file nginx thằng magento2 này nó khác người quá.
        upstream fastcgi_backend {
        server unix:/run/php/php7.0-fpm.sock;
        }

        server {

        listen 80;
        server_name datnen.vip;
        set $MAGE_ROOT /var/www/magento2;
        set $MAGE_MODE developer;
        include /var/www/magento2/nginx.conf.sample;
        }