บันทึกขั้นตอน (ตัวอย่าง) ในการย้ายบล็อก wordpress จากเครื่องเดิม sysadmin.in.psu.ac.th ไปยังเครื่องใหม่ โดเมนเนมใหม่ sysadmin.psu.ac.th เนื่องจากเครื่องเดิมจะมี resources ไม่เพียงพอ และต้องการเปลี่ยนชื่อโดเมนเนมอันใหม่ที่หลายคนว่าดูเหมาะสมและชื่อสั้นกว่า งานนี้บอกได้เลยว่าเล่นเอาเหงื่อตกเลย เพราะคิดว่าย้ายแบบ Joomla! ก็น่าจะได้ ซึ่งเป็นวิธีที่ใช้ไม่ได้ครับ สุดท้ายสำเร็จกับการติดตั้ง Duplicator Plugin ไว้ที่เครื่องเดิมก่อน แล้วสร้าง backup ไว้นำมา restore ลงในเครื่องใหม่
เนื้อหาค่อนข้างยาวสักนิด ผมมีเจตนาอยากให้เห็นว่าการทำเว็บไซต์ขึ้นมาหนึ่งอัน เราต้องใช้ความรู้พอสมควร และที่ทำส่วนใหญ่ก็อ่านจากเว็บไซต์ของพี่วิภัทร นั่นคือ opensource.psu.ac.th นี่แหล่ะครับ
- เริ่มต้นจากกำหนดจำนวน resources ที่จำเป็นใช้ เพราะว่าจะไปขอใช้ Virtual Machine ของศูนย์คอมพิวเตอร์ ที่ขอไว้คือ RAM 2 GB, Hard disk 40 GB, OS Ubuntu 12.04.1, TCP Port 80,443
แล้วกรอกในแบบฟอร์ม - งานบริการเซิร์ฟเวอร์ก็สร้าง VM ให้ที่ทำการอัปเดต OS ให้แล้ว แจ้ง username ให้เข้าใช้งานผ่าน ssh
- เมื่อ ssh เข้าได้แล้ว เข้าทำงานในสิทธิ root ด้วยคำสั่ง
sudo su – - ทำการติดตั้ง Apps ที่จำเป็น ผมเลือก LAMP คือชุดรวมของ Linux, Apache, MySQL และ PHP ที่จำเป็นต้องใช้กับ wordpress ด้วยคำสั่ง
tasksel
เลือก LAMP
จะมีคำถาม รหัสผ่านของ MySQL root ให้ตั้งที่จะจำได้ - ติดตั้งส่วนเพิ่มเติมของ php เพิ่มด้วยคำสั่ง
apt-get install php5-gd php5-imap php5-ldap php5-radius - ติดตั้ง unzip เพิ่มด้วยคำสั่ง
apt-get install unzip - ปรับแต่ง apache2 ให้ใช้งานแบบ module rewrite
sudo a2enmod rewrite - ต่อไปก็มาถึงเรื่องการปรับแต่ง apache2 ให้มี Virtual host แบบเปิด port สำหรับ http และ redirect http โดยแก้ไขไฟล์ /etc/apache2/sites-available/default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName sysadmin.psu.ac.th <==== เพิ่มบรรทัดนี้
DocumentRoot /var/www/wordpress
…
<Directory /var/www/wordpress>
Options Indexes FollowSymLinks MultiViews
AllowOverride All <==== แก้ไขบรรทัดนี้จาก None เป็น All
Order allow,deny
allow from all
</Directory>
… ที่เหลือเหมือนเดิม
</VirtualHost>
เพิ่มบรรทัดข้างล่างนี้ เพื่อให้ยังคงมีการ redirect ไปยังที่ใหม่หากใช้ชื่อเก่า
<VirtualHost *:80>
ServerName sysadmin.in.psu.ac.th
Redirect / http://sysadmin.psu.ac.th/
</VirtualHost> - ต่อไปมาถึงเรื่องการปรับแต่ง apache2 ให้มี Virtual host แบบเปิด port สำหรับ https
สั่งเปิด module ssl ด้วยคำสั่ง
a2enmod ssl
คัดลอกแฟ้ม PSU SSL certificates (file_a.crt, file_b.key และ file_c.ca-bundle) มาเก็บไว้ในไดเรกทอรีที่สร้างนี้
mkdir -p /etc/apache2/ssl
mv /home/username/file_* /etc/apache2/ssl/
แล้วปรับเปลี่ยนสิทธิของแฟ้มด้วยคำสั่ง
chown -R root:root /etc/apache2/ssl/file_*.*
chmod 600 /etc/apache2/ssl/file_*.*
แล้วแก้ไขไฟล์ /etc/apache2/sites-available/default เพื่อจัดการเกี่ยวกับ https และ Certificates
เพิ่มบรรทัดต่อท้ายไฟล์
NameVirtualHost *:443
<VirtualHost *:443>
DocumentRoot /var/www/wordpress
ServerName sysadmin.psu.ac.th
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/file_a.crt
SSLCertificateKeyFile /etc/apache2/ssl/file_b.key
SSLCertificateChainFile /etc/apache2/ssl/file_c.ca-bundle
</VirtualHost> - ต้องสั่งรีสตาร์ท apache2 ดังนี้
service apache2 restart