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. Nguyen Duc Tai 9 comment

    Em cài wordpress trên vps chạy script hocvps mà giờ em muốn gửi email trong wordpress thì phải làm sao e nghĩ chưa có dịch vụ gửi email. bây giờ phải cài như thế nào ạ. củ thể là để gửi email từ WooCommerce trong wordpress

  2. Hoang 1 comment

    Bạn ơi, mình quên mất mật khẩu bước 1 rồi, IP:2313
    Có cách nào để lấy lại mật khẩu này không bạn?

  3. quan 2 comment

    làm sao download wordpress về thư mục trong cái domain mình muốn, dùng lệnh trên nó giái nén ngay thu mục chưa domain

    1. Luân Trần Admin

      Trước khi chạy lệnh bạn hãy di chuyển đến thư mục cần thiết với lệnh cd /path/

  4. Lâm 1 comment

    Sao của mình sau khi tạo tên miền qua dòng lệnh và download code cũng như setup database thì nó lại báo như thế này Luân nhỉ?

    Error establishing a database connection

    Và nếu vào tên miền/wp-admin/install.php

    thì nó lại ra thông báo:

    Error establishing a database connection
    This either means that the username and password information in your wp-config.php file is incorrect or we can’t contact the database server at localhost. This could mean your host’s database server is down.

    Are you sure you have the correct username and password?
    Are you sure that you have typed the correct hostname?
    Are you sure that the database server is running?
    If you’re unsure what these terms mean you should probably contact your host. If you still need help you can always visit the WordPress Support Forums.

    không có nút nhấn Let’s go

  5. Quách Chí Cường 7 comment

    Hi anh Luân,

    1. Em nghĩ anh Luân nên check phần biến ‘DB Host’ kĩ hơn chứ chỉ kiểm tra điều kiện break ‘not nul’ thì ko ổn, yêu cầu chỉ được set up 3 loại input
    + 127.0.0.1
    + localhost
    + x.x.x.x (dành cho remote IP, nên có cơ chế set input này là IP thật sự và 4 octect cũng nhỏ hơn 255)

    2. Khi xài ‘wget’ download , anh nên thêm option ‘–no-check-certificate’ khi down từ các site ‘https’, vì trên Linux một số máy sẽ không check được Certificate Chain của host HTTPS đó.

    3. Phần phân quyền, nếu xài các CMS thì thư mục source thường:
    /home/user/public_html/

    – thì phân quyền dựa trên httpd hay nginx không chính xác.
    – Chưa kể là nếu sử dụng Nginx reverse proxy Apache, thì luôn luôn ra Apache.

    4. Anh Luân nếu lười sửa thêm thì , note lưu ý cho mấy bạn biết nhé 😉

  6. Tuan Duong The 21 comment

    Mình tạo 1 website wordpress mới tinh, đã dùng chức năng thêm website và thêm database nhưng khi giải nén code wordpress vào public_html truy cập vào web hiện thông báo này chứ không phải cài đặt wordpress như thông thường. Giúp mình với
    Welcome to nginx!

    If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

    For online documentation and support please refer to nginx.org.
    Commercial support is available at nginx.com.

    Thank you for using nginx.

  7. Nguyễn Trường Hải 4 comment

    VPS tại Vultr khi tạo vps cùng với wordpress thì sẽ cài LAMP ( apache) chứ không phải LEMP ( Nginx). có cách nào VPS không cài LAMP để mình tự cài script hocvps. ?

  8. Quyền 26 comment

    Chào Luân, mình có 1 website chạy script của hocvps. Web này mình mới đăng ký tài khoản Google Adsense và tạo một số code. Hiện tại thì website của mình đang dùng theme của Mythemeshop và trong phần Theme Options có sẵn mục Ad Management để copy+paste code Adsense vào đó luôn. Nhưng sau khi copy+paste code vào thì thấy báo lỗi như sau:
    403 Forbidden
    A potentially unsafe operation has been detected in your request to this site. loi-google-adsense.png ​
    Xin cho hỏi lỗi này là lỗi gì và cách khắc phục như thế nào?

  9. Trung 1 comment

    Hi Luân,
    Cho mình hỏi mình truy cập link bài viết thì cứ bị redirect về trang chủ. Xem log thì thấy đoạn này.

    2016/06/29 16:47:10 [error] 2659#0: *1780 “/data/webroot/site/2016/06/29/chao-moi-nguoi/index.php” is not found (2: No such file or directory), client: 118.70.12.213, server: localhost, request: “GET /2016/06/29/chao-moi-nguoi/?preview=true HTTP/1.1”

  10. NguyenHao 6 comment

    Một lần nữa mình phải cảm ơn Luân Trần ^__^ HOCVPS đã tốt , nay lại có script cài đặt wordpress nhanh , tuyệt vời , giúp mình cài chục cái wordpress nhanh gọn lẹ .

  11. Tommy Nguyen 36 comment

    Call to undefined function wp() in /home/mydomain.com/public_html/wp-blog-header.php on line 16

    Luan oi, domain chinh cua VPS khi cai script wordpress xong thi truy cap vao de cai dat no bao loi nay. Lam sao de fix day?

  12. Hiếu 2 comment

    Hi Luân,
    Vậy nếu mình muốn set up 1 site wordpress mới trên VPS sử dụng hocVPS script (site này là addon domain) thì làm thế nào Luân nhỉ? Mình có làm theo hướng dẫn nhưng nó bung luôn ở home, mình k biết có cách nào cho vào folder của site addon đó

    1. Luân Trần Admin

      Trường hợp này bạn cần làm thủ công rồi, mình chỉ làm tự động với site chính mà thôi.

  13. z mup 56 comment

    Hi ad,

    1. Sau khi mình chạy scripts trên thì vào domain của mình zmupstudio.com chỉ hiện ra nội dung như bên dưới ?

    Welcome to nginx!

    If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

    For online documentation and support please refer to nginx.org.
    Commercial support is available at nginx.com.

    Thank you for using nginx.

    2. Trong ftp: folder zmupstudio.com nó có 1 folder public_html, mình up thẳng vào đó hay up vào folder zmupstudio.com ad nhỉ ?

    Tks ad

    1. Luân Trần Admin

      Cho mình hỏi bạn dùng VPS ở đâu vậy? Có thể quá trình cài đặt bị lỗi rồi.

  14. Quang 5 comment

    Bác Luân ơi, giúp mình với, sau khi chạy script của bác, mình chuyển wordpress từ host sang vps thì bị lỗi ko hiển thị theme, chỉ hiển thị chữ và hình trong bài viết thôi
    Mình chạy ở localhost thì bình thường? giờ phải làm sao đây bác.
    Web mình: http://duyquang.info

      1. Quang 5 comment

        Mình khởi động lại rồi đó bác, bác vào lại xem giùm mình với, mình chuyển từ domain .net sang .info bằng cách vào phpmyadmin chỉnh lại ở bảng wp_options các thuộc tính:home, và site url về: http://duyquang.info/ là bị mất theme luôn

          1. Quang 5 comment

            Kiến thức bác Luân thật là rộng, cảm ơn bác mình làm đc rồi
            Cho mình hỏi sao bác biết mình có cài BWP Minify vậy? Và lý do gì mà BWP Minify nó làm mình mất theme vậy bác?

          2. Luân Trần Admin

            View-source là thấy ngay bạn ạ. Mình đoán do bạn bị cache file này từ trước nên bị báo lỗi, giờ Flush Cache đi là ổn ngay.

        1. Bùi Thắng Lợi 1 comment

          Xin chào anh luân, em cài đặt wordpress trên vultr nhưng không biết làm cách nào để mở thư mục public_html như của host. Em mới học vps nên chưa biết
          do site em bị trắng trang thấy nhiều bên có chỉ phải mở chỉnh file .htacess nhưng không biết làm cách nào để mở được. Mong anh luân chỉ giáo

          1. Luân Trần Admin

            Bạn dùng image có sẵn trên Vultr để tạo server đúng không vậy?

  15. CươngPjh 29 comment

    Em dùng cái này đang ngon lành. sử dụng cho VPS bên Wable thì tự dưng sau khi cài tới site thứ 6 nó lại không tạo table trong database, tức là database hoàn toàn trống rỗng dù điền đúng hết cả, Script vẫn báo là cài thành công. Có khi nào Script lỗi không anh?

    1. Luân Trần Admin

      Khả năng là thông tin nhập vào có vấn đề rồi, em check lại xem sao nhé?

  16. Vương 10 comment

    Sau khi cài hocvps scrip e tạo databa rồi làm làm theo hd : https://hocvps.com/script-tu-dong-tai-va-cai-dat-wordpress-tren-vps/ nhưng khi vào web nó báo : Welcome to nginx!

    If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

    For online documentation and support please refer to nginx.org.
    Commercial support is available at nginx.com.

    Thank you for using nginx.

    Như vậy là gặp lỗi gì ạ

  17. huynhvilong 5 comment

    Chào Luân, mình muốn chỉnh sửa scipt và đặt nó lên host mình để cài full wordress. Mình vào link hocvps.com/scripts/wp thì nó tự down file wp về , mình đã chỉnh sửa và up lên host nhưng ko mở đc, toàn báo ko thấy file
    filmtodays.com/scripts/wp Luân giúp mình với nhé, TKs Luân

  18. Steve Diện 21 comment

    Dùng cái Easy engine nó tự động cài, tự tạo databse, cấu hình tối ưu sẵn luôn chỉ việc dùng với 1 câu lệnh 😀

    1. Luân Trần Admin

      Cái này đơn giản nên mình thích tự viết hơn, control được những cái gì mình cần mà thôi 😀

  19. Luân Trần Admin

    Update: thêm chức năng tự động phân quyền cho webserver cho tiện nhé.

  20. Daniel Trương 1 comment

    Chào ban Luân,

    Sao mình không tìm thấy hướng dẫn bảo mật server Ubuntu 14.04.2 toàn tập trên đây tập nhỉ.

    Hi vọng bạn viết 1 bài cho newbie học hỏi kinh nghiệm.

    Chân thành cảm ơn.

    1. Luân Trần Admin

      Ừ bạn, căn bản mình hay dùng CentOS chứ ít khi dùng Ubuntu nên thành ra ít tutorial. Sau mình có thể bổ sung thêm.

  21. Jimmy Toan 6 comment

    Mình tạo 1 site WP, cấu hình file .htaccess với nội dung redirect 301 sang tên miền mới với nội dung chèn vào đầu file .htaccess như sau:

    #Options +FollowSymLinks
    RewriteEngine on
    RewriteRule ^(.*)$ http://www.site-moi.com/$1 [R=301,L]

    Nhưng khi vào web site thì nó vào thẳng trang chủ web cũ, mà không redirect sang domain mới. Mặc dù với cấu hình y chang như vậy, mình đặt trên A2hosting thì nó redirect bình thường.

    1. Luân Trần Admin

      HocVPS Script sử dụng nginx nên không dùng file .htaccess nhé, chỉ có Apache là dùng file đó thôi bạn

  22. Jimmy Toan 6 comment

    Mình cài EWWW Image Optimizer lên VPS đã cài hocvps thì nó báo “EWWW Image Optimizer requires exec(). Your system administrator has disabled this function.” Làm sao để khắc phục lỗi này.
    Với lại mình thấy dung lượng trống của server cứ giảm dần mỗi ngày, khoản 0.1G, mặc dù mình không có upload thêm hình ảnh, bài viết hay cập nhật database gì hết. Làm sao để xử lý việc này.
    Cám ơn Luân.

    1. Luân Trần Admin

      Bạn hãy mở file /etc/php.ini, xóa exec trong dòng disable_functions là được.
      Dung lượng tăng có thể do log của server, bạn hãy check trong folder /home/domain.com/logs/ xem sao

      1. Jimmy Toan 6 comment

        – Mình kiểm tra log thì chỉ có mấy chục KB à (của tất cả website trong /home/).
        – Nếu chỉnh tham số đó trong php.ini thì có an toàn cho VPS không, có thể chỉ mình file tương ứng với http-vhost.conf để chỉnh “suhosin.executor.func.blacklist = passthru”, hoặc có cách nào chỉ áp dụng exec cho 1 website mà không phải cả VPS không?

  23. Nghia 1 comment

    Hi, all!
    Script này mình cài thử nó bị mắc cái chmod set không được, lúc cài hay upload theme hoặc plugin nó đòi ftp account mới cho cài. có ai bị như vậy không ah?

  24. RAICARS 2 comment

    Luân Trần có thể viết script tự động tải và cài đặt MYBB lên VPS đc ko
    Thanks nhiều nhiều

  25. hung 4 comment

    Nếu mình di chuyển thì còn gì để nói chứ. Mình thử 2 3 lần đều bị như thế, vào ftp account cũng chả thấy wordpress đâu

  26. hung 4 comment

    Nhưng mà sao mình kết nói FTP thì ko thấy bất cứ file hay thư mục nào liên quan đến WordPress

    1. Luân Trần Admin

      Nó move toàn bộ file trong thư mục wordpress ra folder ngoài rồi bạn.

  27. son 1 comment

    Cài xong thấy báo lỗi “403 Forbidden” Luân ơi!
    mặc dù đã chạy lệnh chown -R nginx:nginx *

    VPS cài hocvps rồi.
    tks!

  28. Đat bv ecom 20 comment

    tình hình bác Luân cho em hỏi: Em dùng tk root wget file lastest.zip của wp về sau đó unzip nó. chạy web bình thường, nhưng có điều nếu dùng tk ftp vào sửa xoá file là nó không cấp quyền kiểu:
    553 Could not create file.
    Error: Critical file transfer error

    Nếu thực hiện lệnh set quyền thông qua phần mềm ftp như filezilla nó báo kiểu như sau:
    SITE CHMOD 644 wp-cron.php
    Response: 550 SITE CHMOD command failed.

    Em không muốn up từng file thông qua ftp vì host Mỹ thấy lâu quá nên em chỉ up 1 file. Nhưng giải nén thì thông qua dòng lệnh tk root nên sẽ sinh ra vấn đề kia. Bác xem giúp có cách nào chmod các file đã giải nén về tk ftp hay ntn đó để có thể chỉnh sửa file không bác?
    Cảm ơn bác Luân nhiều.

  29. Dian Nguyen 1 comment

    Cám ơn bác,
    Đây đúng thứ mình cần, setup xong cái vps rồi cài tầm vài chục cái web bằng wp. cứ lặp đi lặp lại đến phát ngán

  30. Hoài Lâm 1 comment

    Cảm ơn bác Luân đã code đoạn này cho mọi người sử dụng. Mới lên google search cách chạy script trên Linux, mốt bác hướng dẫn cách chạy luôn nhé để newbie dễ làm theo. Cảm ơn huynh.