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).

85 Comments

  1. 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!

Comment của bạn

Your email address will not be published. Required fields are marked *