Công việc test và thử nghiệm VPS yêu cầu mình thường xuyên phải cài đặt mã nguồn WordPress. Tuy nhiên qui trình cứ lặp đi lặp lại khá buồn tẻ nên mình đã tìm cách tạo ra 1 script tự động cài đặt giúp tiết kiệm được khá nhiều thời gian.

Chú ý: nếu bạn muốn tạo mới server và tự động cài đặt WordPress, hãy tham khảo Script tự động cài đặt HocVPS Script và WordPress.

Nếu các bạn muốn sử dụng script này cần tạo trước database, MySQL account, di chuyển đến folder cần cài đặt rồi chạy lệnh sau:

curl -sO https://hocvps.com/scripts/wp && bash wp

Mã nguồn WordPress mới nhất sẽ được tự động tải xuống, giải nén.

Cuối cùng bạn chỉ cần truy cập vào domain, giao diện cài đặt WordPress quen thuộc sẽ xuất hiện để bạn bắt đầu.

Cai dat WordPress

Tham khảo script:

#!/bin/bash

# Script tu dong tai ban WordPress moi nhat va cai dat tao boi Luan Tran - https://hocvps.com/

while [ 1 ];do
clear
printf "=========================================================================\n"
printf "Chuan bi qua trinh tai ban cai dat WordPress... \n"
printf "=========================================================================\n"

printf "Ban hay dien thong tin nhu yeu cau: \n"
# DB Variables
echo -n "MySQL Host (localhost): "
read mysqlhost
if [ "$mysqlhost" = "" ]; then
	mysqlhost="localhost"
fi

echo -n "MySQL DB Name: "
read mysqldb

echo -n "MySQL DB User: "
read mysqluser

echo -n "MySQL Password: "
read mysqlpass

if [ "$mysqldb" != "" ] && [ "$mysqluser" != "" ] && [ "$mysqlpass" != "" ]; then
	break
fi
done

clear
printf "=========================================================================\n"
printf "Downloading... \n"
printf "=========================================================================\n"

# Download latest WordPress and uncompress
wget http://wordpress.org/latest.tar.gz
tar zxf latest.tar.gz
mv wordpress/* ./

# Grab Salt Keys
wget -O /tmp/wp.keys https://api.wordpress.org/secret-key/1.1/salt/

# Butcher our wp-config.php file
sed -e "s/localhost/"$mysqlhost"/" -e "s/database_name_here/"$mysqldb"/" -e "s/username_here/"$mysqluser"/" -e "s/password_here/"$mysqlpass"/" wp-config-sample.php > wp-config.php
sed -i '/#@-/r /tmp/wp.keys' wp-config.php
sed -i "/#@+/,/#@-/d" wp-config.php

# Tidy up
rmdir wordpress
rm latest.tar.gz
rm /tmp/wp.keys
rm wp

# Chown
if [ -f /etc/redhat-release ]; then #CentOS
 if ps ax | grep -v grep | grep 'httpd' > /dev/null; then #Apache
 chown -R apache:apache *
 elif ps ax | grep -v grep | grep 'nginx' > /dev/null; then #Nginx
 chown -R nginx:nginx *
 fi
elif [ -f /etc/lsb-release ]; then #Ubuntu
 chown -R www-data:www-data * #Both for Apache and Nginx
fi

clear
printf "=========================================================================\n"
printf "Xong, gio ban hay truy cap vao domain de cai dat WordPress! \n"
printf "Hoac truy cap https://hocvps.com \n"
printf "=========================================================================\n"

Chạy được trên cả CentOS và Ubuntu nhé (đã thêm chức năng tự động phân quyền cho webserver).

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.

146 Comments

  1. Quang Anh 1 comment

    Admin ơi cho mình hỏi, mình đã chạy câu lệnh “curl -sO https://hocvps.com/scripts/wp && bash wp” để cài wordpress, sau đó mình đã nhập database, host, user, pass. Thế nhưng khi mình chạy thử domain thì nó báo lỗi ko truy cập đc trang web và nó cũng ko hiện ra giao diện cài đặt wordpress như trên. Admin cho mình hỏi cách khắc phục với?

  2. webchat 8 comment

    Bạn cho mình hỏi muốn cài vào thư mục con (thư mục chính có web) thì nginx config thêm như thế nào ạ

  3. Khanh 1 comment

    Chào bạn,
    Sau khi mình vào root, và chạy dòng lệnh curl -sO https://hocvps.com/scripts/wp && bash wp
    để cài wp, nhưng hệ thống nó ra một loạt dòng lênh, dài quá mình k ghi hết, mình ghi mấy câu dưới:
    cd /etc/hocvps/scripts.conf
    rm -f install
    cd /root/
    if[“i”=wordpress] then…
    Mà mình k biết làm sao? như vậy đã xong chưa bạn, web mình chưa trỏ domain về server, vậy làm thế nào để truy cập.
    Nhờ mọi người chỉ dùm, cảm ơn nhiều

  4. chung 6 comment

    Hi anh em có vấn đề muốn hỏi . E có domain A đã cài bằng hocvps , e đã cài thêm domain B chạy thêm 1 site khác trong vps . Trong file Vhost em đã thêm listen 8001 cho domain A và listen 8002 cho domain B . Nhưng mỗi khi truy cập domain B đều hiên domainB:8002 , còn domain A thì ko bị . Có cách nào để fix ko hiện port khi truy cập doman ko ạ . Em cảm ơn anh.

  5. Chung 6 comment

    Hi anh . Em cài xong hocvps . Vô phần ip:port/filemanager thì bị http 500 error . Em có login thử với ftp qua port 22 cũng ko được . Anh cho em hỏi cách khắc phục với .

  6. Luc 1 comment

    Em cài 2 site cùng 1 VPS, Các bước e cài website thứ 2:
    – Tạo domain mới trong hocvps
    – Tạo Database mới
    – e có dùng câu lệnh cd đến đúng thư mục đã tạo domain thứ 2 trên hocvps
    – cài script wp
    Nhưng khi vô check lại trên FPT thì lại không thấy folder wp đâu.
    Lỗi nghiêm trọng hơn là giờ site thứ nhất chạy hơn 1 tháng ngon lành, nó báo lỗi This page isn’t working *domain* redirected you too many times.ERR_TOO_MANY_REDIRECTS
    Tìm mọi cách clear cookie rồi mà không được, mấy anh giúp em tìm nguyên nhân với.

    1. Việt Phương Moderator

      Domain 1 thì bạn phải kiểm tra lại toàn bộ Nginx, cấu hình DNS domain cũng như SSL (nếu có)

  7. Hoàng Cửu Long 1 comment

    Error establishing a database connection

    giup e loi nay voi a 🙁 mac du da nhap dung thong tin db

  8. Phương 35 comment

    Ngày xưa mình dùng hocvps tạo wordpress ngon lành, nhưng ko hiểu sao dạo này tạo xong, web chạy bình thường, nhưng khi cài plugin vào và active thì báo lỗi không tạo được table trong database.
    Mình dùng mysql user và dòng lệnh để tạo table hoặc tạo thủ công trong phpmyadmin thì được, nhưng cài bất cứ plugin nào cũng ko tạo được tables, cài 10 plugin thì số lượng table vẫn là 12, số lượng table mặc định.
    Cảm giác như kiểu database bị chế độ read-only ấy 🙁

    1. Việt Phương Moderator

      1. Plugin bạn dùng là gì? Để mình thử test trên bản HocVPS mới cài
      2. Bạn check log php-fpm và debug WP xem ra vấn đề không

      1. Việt Phương Moderator

        Note: Một số plugin chưa tương thích hoàn toàn với mã nguồn WP phiên bản mới

  9. Hung 1 comment

    Cho mình hỏi: Đã cài hocvps script, letsencrypt, wordpress cho website thứ nhất, hoạt động ok.
    Mình muốn thêm website thứ 2, trình tự thao tác ntn cho đúng? Mình làm:
    1. Vào menu hocvps, chọn Thêm domain
    2. Cài đặt letsencrypt cho domain thứ 2
    service nginx stop
    /opt/letsencrypt/certbot-auto certonly –standalone
    3. Cấu hình Nginx theo hướng dẫn
    Không thiết lập HocVPS Admin Port
    Bỏ tham số default_server bên cạnh listen 443
    4. Tạo database mới
    5. Cài đặt wordpress
    curl -sO https://hocvps.com/scripts/wp && bash wp
    Nhập thông tin db

    Cám ơn vì đã đọc!

  10. Ngoc Tu 5 comment

    Mình cài đặt lệnh này nhưng do mình để 1-2 tuần mình mới truy cập domain để chạy setup wordpress (đặt Title, username, pass admin wordpress) thì nó lại vào thẳng trang wordpress chứ không ra phần cài đặt nữa.
    Vậy mọi người cho mình hỏi user, pass mặc định là gì? có cách nào để mình vào được phần quản trị web trong trường hợp này không?
    Cảm ơn a e.

      1. Ngoc Tu 5 comment

        Cảm ơn bạn nhé mình làm được rồi, lúc trước chạy lại lệnh mà không xóa nên nó không được

  11. Trang 1 comment

    Mình dùng lệnh này, cuối cùng blog không được cài wordpress mà cài ghost? Nếu hocvps đã đổi mã nguồn của lệnh thì cũng nên thông báo cho mọi người chứ.

    1. Việt Phương Moderator

      Bạn có nhầm không, lệnh cài đặt wordpress mà. Bạn kiểm tra lại thứ mình đã cài đặt nhé

  12. Phong Thanh 5 comment

    Các bác cho em hỏi chút với ạ. Em dùng VPS cài HocVPS trên CentOS 7, tải và setup WP lên thư mục /home/ten-mien.com/public_html/wp/ .
    Em cài được xong xuôi rồi, tất cả chức năng của trang quản trị WP đều dùng bt, nhưng trang WP thì chỉ vào được trang chủ https://ten-mien.com/wp/ còn tất cả các trang như:
    https://ten-mien.com/wp/about/
    https://ten-mien.com/wp/shop/
    https://ten-mien.com/wp/san-pham/iphone-x/
    thì đều báo file not found.

    Em vào file /etc/nginx/conf.d/ten-mien.com.conf có thử sửa dòng:
    fastcgi_param SCRIPT_FILENAME /home/ten-mien.com/public_html$fastcgi_script_name;
    thành:
    fastcgi_param SCRIPT_FILENAME /home/ten-mien.com/public_html/wp$fastcgi_script_name;
    thì các trang trên load được thành công, nhưng đến lượt toàn bộ link trong trang quản trị wp/wp-admin/ báo file not found.

    Bác nào chỉ em cách fix với. 🙁 Em cài WP trên hosting dùng Apache hoặc trên VPS dùng Virtualmin/Webmin đều chưa gặp tình trạng này bao giờ. 🙁

  13. BinhDuongMicro 1 comment

    Mình thì chưa hiểu để làm gì? hosting thường thì dịch vụ cung cấp có chức năng 1 click vào wordpress cực nhanh, or tự bung wordpres, hoặc cài mới cũng khá nhanh, chắc script này sử dụng cho người quản trị VPS..Chứ mình có đến 4 con VPS mà cũng chẳng dùng chức năng này

  14. Don 4 comment

    =========================================================================
    Chuan bi qua trinh tai ban cai dat WordPress…
    =========================================================================
    Ban hay dien thong tin nhu yeu cau:
    MySQL Host (localhost):

    Cho hỏi chỗ “MySQL Host (localhost): ” mình điền vào cái gì bác?

      1. Don 4 comment

        Cảm ơn Việt Phương.
        Mình còn bị 1 chỗ nữa là khi trỏ tên miền về web mình mới tạo thì nó chuyển hướng về website 1 luôn.
        Mình làm như sau:
        Mình dùng tên miền của exabytes.com và VPS Vultr
        Cấu hình tên miền: chỗ Nameservers thì mình chuyển về Nameservers của Vultr.
        Còn VPS thì mình vào DNS thêm tên miền mới và để ip default là ip hiện tại của VPS.
        Cấu hình như vậy có đúng không bạn?
        https://uphinhnhanh.com/image/TQNLaV
        https://uphinhnhanh.com/image/TQNNdW

        1. Việt Phương Moderator

          Đúng, nhưng bạn đã cấu hình webserver trên VPS chưa?
          Website 1 cũng của VPS đó đúng không?

          1. Việt Phương Moderator

            Website 1 bạn cấu hình như thế nào thì website 2 bạn cấu hình như thé, sửa đường dẫn thư mục source code và server_name
            Bạn dùng hệ thống gì trên VPS?

          2. Việt Phương Moderator

            Vậy site 2 bạn dùng menu hocvps 2)Them Website là được. Nếu vẫn bị tức nginx của bạn có vấn đề
            nginx -t có kết quả như thế nào

  15. Nam 28 comment

    1. Em muốn cài đặt một version nào đó, chẳng hạn 4.7.7 của wordpress mà không phải latest version thì config như thế nào ạ?
    Em đoán là sửa đoạn này của script mà ko biết sửa sao ?
    wget http://wordpress.org/latest.tar.gz
    2. Với script trên em copy tạo thành 1 file *.bat hay file đuôi là gì để có thể tự run bằng câu lệnh cmd như bài viết là curl -sO https://hocvps.com/scripts/wp && bash wp
    Xin cám ơn support em.

    1. Việt Phương Moderator

      1. Bạn thay link của phiên bản WP bạn cần thôi
      2. Bash Script là .sh nhé bạn. Thực ra không cần .sh, chỉ cần nó có quyền execute là được

    1. Việt Phương Moderator

      1. Tạo các website tiếp theo bằng HocVPS menu 2
      2. Tạo các database trắng bằng HocVPS menu 8
      3. Truy cập đến thư mục chứa nội dung website, thường là /home/domain/public_html
      4. Chạy lệnh cài WordPress theo bài viết curl -sO https://hocvps.com/scripts/wp && bash wp

      1. tran hung 50 comment

        Khi mình sử dụng menu hocvps menu 2 thì nó phần nhập domain mới, gõ xong enter thì nó đứng im luôn ạ. Sau đó thấy lâu quá mình nhấn ctrl+C rồi tiếp tục bước menu 8. Cho mình hỏi, bước tiếp theo làm sao để trỏ domain về website mới tạo thêm ạ?

          1. tran hung 50 comment

            Mình thử trỏ domain về IP VPS thì nó ra lại domain chính.

          2. Việt Phương Moderator

            Không cần bạn nhé. Và bạn comment 1 nơi thôi cho bớt loãng. service nginx statusnginx -t của bạn ra kết quả gì

          3. Việt Phương Moderator

            Thế mình đoán chắc Nginx bạn lỗi bung bét rồi. Bạn kiểm tra lại service của nginx và varnish nhé. Nếu dùng varnish rồi thì mỗi website mới tạo cũng phải cấu hình Nginx tương ứng cho chạy Varnish

          4. tran hung 50 comment

            Web chính của mình vẫn chạy bình thường, chỉ có vấn để là ko tạo đc thêm domain mới thôi. Mình cũng làm theo tất cả hướng dẫn của hocvps mà. Sao giờ thành bung bét hết vậy 🙁

          5. Việt Phương Moderator

            Nginx lỗi thì sẽ không nhận thêm các websever mới nên dù đã có trong hệ thống nhưng webserver không nhận. Bạn kiểm tra lại nginx và varnish đi. Và như mình nói, nếu bạn dùng varnish thì mọi website trong VPS bạn phải cấu hình lại Nginx để xài Varnish, chứ không phải chỉ cấu hình mỗi 1 site

          6. tran hung 50 comment

            Vậy mình phải thiết lập bằng tay hết à? Trong hocvps có bài nào hướng dẫn trường hợp này ko vậy bạn? cảm ơn ạ.

          7. Việt Phương Moderator

            Bạn phải thiết lập bằng tay hết nhé. Như trong bài hướng dẫn Varnish đó thôi. Lỗi thì mình detect ra là do Nginx và Varnish đó, bạn chỉ cần tập trung 2 vấn đề này thôi

          8. tran hung 50 comment

            Cảm ơn bạn. Mình cũng làm được rồi. Mình tạo file conf trong nginx mới với chỉnh sửa thêm trong file default.vcl là được.

  16. Chung 2 comment

    Chào bạn, site mình up từ hosting khác sang. Nhưng lỗi đẫy mình xử lý được rồi bạn à, nó do lỗi của 1 plugin, và mình đã tắt nó đi thì vào quản trị oke. Mà bạn cho mình hỏi giờ mình muốn trỏ nhiều domain về 1 thư mục hosting thì có làm được không hả bạn, nếu có thì xử lý như thế nào. Vì mình thấy trong hocvps mỗi lần add domain thì sẽ tạo ra 1 thư mục trùng tên với domain đó, chứ không link về được những thư mục khác. Thanks bạn

    1. Việt Phương Moderator

      Nhiều domain cùng 1 thư mục là thì bạn dùng ParkDomain nhé. HocVPS menu có chức năng đó

  17. Quang Tran 3 comment

    Bạn ơi cho mình hỏi. Mình gặp rắc rối về tên miền.

    Mình dùng script của anh Luân để cài WordPress trên Digital Ocean.

    Sau đó, mình trỏ tên miền về thì bị lỗi này.

    Mình vào trang chính thì okie: http://quangsilic.com/

    Nhưng khi mình vào từng bài viết, thì nó ra URL thế này: http://139.59.122.112/2017/06/09/ve-toi/

    Mình đã hỏi bên tên miền, thì họ nói là mình đã trỏ tên miền đúng rồi, còn lỗi trên là do mã nguồn.

    Mình đã thử tất cả các template có sẵn của WordPress, nhưng vẫn không được.

    Vậy có phải là do script của anh Luân không? Mong bạn hỗ trợ

    1. Việt Phương Moderator

      Bạn truy cập giao diện cài đặt WP qua IP đúng không? Sau khi cài xong bạn mới trỏ domain về?
      Bạn vào phần Setting của WP sửa Home URL và Site URL từ IP về Domain đi

      1. Quang Tran 3 comment

        Đúng rồi bạn. Hèn gì lần trước mình cài bình thường, nay lại không được.

        Cám ơn bạn. Bạn trả lời nhanh thật!

          1. Việt Phương Moderator

            Có thể ở bước cài đặt hoặc cấu hình Redirect. Site bạn là site trắng tinh hay source code từ nơi khác up lên?