WordPress เป็น CMS ที่ได้รับความนิยม ออกแบบมารองรับ Multisite ทำให้คุณสามารถใช้การติดตั้ง WordPress ครั้งเดียวแล้วตั้งค่าแยกเว็บไซต์ออกเป็นหลายๆ เว็บตาม domain ที่เรากำหนดได้ ข้อมูลและเนื้อหาจะแยกออกจากกัน อย่างสิ้นเชิง ส่วนการจัดการ website ก็สามารถ login เข้าไปจัดการในแต่ละเว็บได้อย่างอิสระ จะยกตัวอย่าง 2 แบบคือ sub-domain และ domain แยก ดังนี้

  • fffee.org
  • andrew.fffee.org
  • fffeex.org

มาลองติดตั้งกัน เริ่มจากติดตั้ง nginx, mysql serverv และ php กันก่อน

apt-get install -y nginx mysql-server php5-fpm php5-mysql php5-curl php5-mcrypt php5-gd

สร้างไดเรคทอรีสำหรับ wordpress

mkdir /usr/share/nginx/wordpress

ลบ /etc/nginx/sites-enabled/default เราจะเขียน config สำหรับ wordpress ใหม่

rm /etc/nginx/sites-enabled/default

เขียน config ใหม่ตั้งชื่อไฟล์ /etc/nginx/sites-enabled/wp ดังนี้

server {
    listen [::]:80 ipv6only=off;
    server_name fffee.org *.fffee.org;

    root /usr/share/nginx/wordpress;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args ;
    }

    location ~ /favicon.ico {
        access_log off;
        log_not_found off;
    }

    location ~ \.php$ {
        try_files $uri /index.php;
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    access_log  /var/log/nginx/$host-access.log;
    error_log   /var/log/nginx/wpms-error.log;
}

สร้าง link ไปยัง site-enable

ln -s /etc/nginx/sites-available/wp /etc/nginx/sites-enabled/wp

ทดสอบ config ว่าไม่มีอะไรผิดพลาด

service nginx configtest

สั่ง restart nginx

service nginx restart

จากนั้นสร้างฐานข้อมูล wordpress รองรับการติดตั้ง wordpess

mysql -u root -p -e "create database wordpress"

กำหนด user และ privileges ให้ผู้ admin ใช้รหัสผ่าน password เข้าถึงฐานข้อมูล wordpess

mysql -u root -p -e "grant all privileges on wordpress.* to admin@localhost identified by 'password'"

สั่ง reload privilege

mysqladmin -u root -p reload

ติดตั้ง wordpress ดาวน์โหลดรุ่นล่าสุด

wget http://wordpress.org/latest.tar.gz

แตกไฟล์ออก

tar -xf latest.tar.gz

ย้ายไปยัง /usr/share/nginx/wordpress/

mv wordpress/* /usr/share/nginx/wordpress/

เปลี่ยน owner เป็น www-data เพื่ออ่านเขียนไฟล์ได้

chown -R www-data:www-data /usr/share/nginx/wordpress

สั่งติดตั้ง wordpess ที่ domain หลักตามปกติ http://fffee.org

แก้ไข wp-config.php ใหม่ เพื่อกำหนดให้เป็น multi site เพื่อเพิ่ม site ใหม่เข้าไป

nano /usr/share/nginx/wordpress/wp-config.php

เพิ่ม config ข้างล่าง ก่อน comment ว่า /* That’s all, stop editing! Happy blogging. */

/* Multisite settings */
define( 'WP_ALLOW_MULTISITE', true );

จากนั้น login เข้าไปที่ Tools > Network Setup เลือก sub domain

แก้ไข wp-config.php และ .htaccess ตามข้อมูลที่ wordpress ให้ข้อมูลมา

กลับมาที่หน้า My Site > Network Admin > Site เพิ่ม site ที่อยู่ภายใต้ domain ให้ครบ

เพิ่ม domain mapping สำหรับเว็บที่ไม่ได้อยู่ภายใต้ sub domain เดียวกันดังนี้

apt-get install unzip

wget http://downloads.wordpress.org/plugin/wordpress-mu-domain-mapping.latest-stable.zip

unzip wordpress-mu-domain-mapping.latest-stable.zip

ย้าย plugin ไปยังไดเรคทอรี plugin

mv wordpress-mu-domain-mapping /usr/share/nginx/wordpress/wp-content/plugins/

คัดลอก sunrise.php ไปยัง wp-content

cp /usr/share/nginx/wordpress/wp-content/plugins/wordpress-mu-domain-mapping/sunrise.php /usr/share/nginx/wordpress/wp-content/

แก้ /usr/share/nginx/wordpress/wp-config.php เพิ่ม

define('SUNRISE', 'on');

activate plugin แก้ไข domain config

ตั้งค่า domain mapping

เพิ่ม custom plugin

mkdir /usr/share/nginx/wordpress/wp-content/mu-plugins

nano /usr/share/nginx/wordpress/wp-content/mu-plugins/wpms_blogid.php

เพิ่มโค้ดลงไป

<?php
add_filter( 'wpmu_blogs_columns', 'do_get_id' );
add_action( 'manage_sites_custom_column', 'do_add_columns', 10, 2 );
add_action( 'manage_blogs_custom_column', 'do_add_columns', 10, 2 );

function do_add_columns( $column_name, $blog_id ) {
    if ( 'blog_id' === $column_name )
        echo $blog_id;
    return $column_name;
}

function do_get_id( $columns ) {
    $columns['blog_id'] = 'ID';
    return $columns;
}

เพิ่ม script ลงไปเพื่อให้หน้า site แสดงผล ID

คลิกไปที่ Setting > Domain ให้เพิ่ม Domain เพื่ออ้างอิงกับ site ที่เราสร้างขึ้น (อันที่ 3)

ให้เข้าไปที่

  • http://fffee.org/wp-admin/
  • http://andrew.fffee.org/wp-admin/
  • http://fffeex.org/wp-admin/

เพื่อจัดการ wordpress ของแต่ละเว็บได้เลย ซึ่งการจัดการจะแยกกันอย่างอิสระ

เว็บหลัก http://fffee.org

เว็บภายใต้ sub-domain http://andrew.fffee.org

เว็บภายใต้ domain http://fffeex.org

Comments are closed.