ติดตั้ง wordpress บน ubuntu

จาก Wiki Opensource
รุ่นปรับปรุงเมื่อ 12:11, 17 เมษายน 2555 โดย Wipat.s (พูดคุย | เรื่องที่เขียน)
(ต่าง) ←รุ่นปรับปรุงก่อนหน้า | รุ่นล่าสุด (ต่าง) | รุ่นปรับปรุงถัดไป→ (ต่าง)

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 17-04-2555

ดูแลโดย WIPAT



  1. ติดตั้ง apache web server ด้วยคำสั่ง
    sudo apt-get install apache2
  2. ติดตั้ง mysql database server ด้วยคำสั่ง
    sudo apt-get install mysql-server

    ระหว่างติดตั้งหากมีคำถามที่เกี่ยวกับการตั้งรหัสผ่าน ก็ให้เคาะแป้น enter ผ่านไปก่อนทั้งหมด
    หลังติดตั้งเสร็จแล้วให้รีบตั้งรหัสผ่าน root ของ mysql-server ใหม่

    ตัวอย่างนี้ตั้งรหัสผ่านว่า mysqldroot ใช้คำสั่งคือ
    mysqladmin -uroot password mysqldroot
  3. ติดตั้ง php ด้วยคำสั่ง
    sudo apt-get install php5 php5-mysql php5-cli php5-gd php5-imap php5-ldap php5-radius unzip
    sudo a2enmod rewrite

    แล้วสั่งให้ apache ทำงานใหม่ด้วยคำสั่ง
    sudo /etc/init.d/apache2 restart
  4. สร้าง database สำหรับ wordpress ที่ต้องการติดตั้ง
    ตัวอย่างสร้าง database ชื่อ wpdb ใช้คำสั่ง
    mysql -uroot -pmysqldroot -e "CREATE DATABASE wpdb CHARACTER SET 'UTF8';"

    ***หากต้องการลบ database เดิมที่เคยสร้างไว้แล้ว ใช้คำสั่งว่า
    mysql -uroot -pmysqldroot -e "DROP DATABASE wpdb;"

    แล้วกำหนดสิทธิ์การใช้ database wpdb ให้แก่ user
    ตัวอย่างสร้าง user ชื่อ wpmysql โดยมีรหัสผ่านว่า wppass ใช้คำสั่งคือ
    mysql -uroot -pmysqldroot -e "grant all privileges on wpdb.* to 'wpmysql'@'localhost' identified by 'wppass';"
  5. ติดตั้ง wordpress ดาวน์โหลดจาก http://ftp.psu.ac.th/pub/wordpress/wordpress-3.3.1-th.tar.gz ด้วยคำสั่ง
    wget -P /tmp http://ftp.psu.ac.th/pub/wordpress/wordpress-3.3.1-th.tar.gz
    แล้วแตกแฟ้มออกมาด้วยคำสั่ง
    sudo tar -zxvf /tmp/wordpress-3.3.1-th.tar.gz -C /var/www
    แล้วทำงานต่อด้วยคำสั่ง
    sudo chown -R www-data /var/www/wordpress
  6. คัดลอกแฟ้ม config ด้วยคำสั่ง
    sudo cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
    แก้ไขแฟ้ม /var/www/wordpress/wp-config.php แก้ไขข้อมูล 3 แห่งคือ
    ประมาณบรรทัด 19 แก้ไขตัวแปรเดิมว่า define('DB_NAME', 'database_name_here');  เปลี่ยนใหม่ให้เป็นว่า define('DB_NAME', 'wpdb');
    ประมาณบรรทัด 22 แก้ไขตัวแปรเดิมว่า define('DB_USER', 'username_here'); เปลี่ยนใหม่ให้เป็นว่า define('DB_USER', 'wpmysql');
    ประมาณบรรทัด 25 แก้ไขตัวแปรเดิมว่า define('DB_PASSWORD', 'password_here'); เปลี่ยนใหม่ให้เป็นว่า define('DB_PASSWORD', 'wppass');
  7. เริ่มต้นระบบไปที่เวบ http://localhost/wordpress
    ได้หน้าเวบข้อความว่า
    ยินดีต้อนรับ .. ไปหัวข้อรายละเอียดที่ต้องการ ...
    ช่อง "หัวข้อเว็บ" ให้ป้อนชื่อที่ต้องการตัวอย่างเช่น  MyWordpress
    ช่อง "ชือผู้ใช้" ยังคงเหมือนเดิมคือ admin
    ช่อง "รหัสผ่าน" ให้ป้อน 2 ครั้ง ตัวอย่างนี้ป้อนว่า 123456 ทั้ง 2 ครั้ง
    ช่อง "อีเมล์ของคุณ" ให้ป้อนอีเมล์ที่ต้องการเช่น my@your.domain
    ช่อง "ส่วนตัว" ยังคงติ๊กเลือก "อนุญาตให้เว็บของฉันปรากฎใน search engines..."
    แล้วคลิกปุ่ม "ติดตั้งเวิร์ดเพรส" รอสักครู่ เมื่อได้หน้าเวบข้อความว่า "สำเร็จ"
    ให้คลิกปุ่ม "เข้าสู่ระบบ" เพื่อทดสอบใช้งานได้เลย
  8. การปรับแต่งให้ login เข้าด้วย admin
    ได้เวบหน้าหลัก ที่เมนูด้านซ้ายล่าง ให้คลิกเลือกหัวข้อว่า  "ตั้งค่า" ได้เวบหน้า"ตั้งค่าทั่วไป"
    ช่อง "เขตเวลา" ให้เลือกเปลี่ยนเป็น "Asia" -> "Bangkok"
    ช่อง "รูปแบบวันที่" ให้เลือกเปลี่ยนเป็น "ปรับแต่ง d-m-Y"
    ช่อง "รูปแบบเวลา" ให้เลือกเปลี่ยนเป็น "ปรับแต่ง H:i"
    แล้วคลิกปุ่ม "บันทึกการเปลี่ยนแปลง"
  9. จัดให้ wordpress ทำการ authen กับ ldap server ทำดังนี้
    ต้องติดตั้ง php5-ldap ก่อน ด้วยคำสั่ง
    sudo apt-get install php5-ldap
    ดาวน์โหลดแฟ้ม http://ftp.psu.ac.th/pub/wordpress/simple-ldap-login.1.4.0.5.1.zip มาติดตั้ง ด้วยคำสั่ง
    wget -P /tmp http://ftp.psu.ac.th/pub/wordpress/simple-ldap-login.1.4.0.5.1.zip
    แตกแฟ้มออกมาแล้วเอาไปติดตั้งด้วยคำสั่ง
    sudo unzip -d /var/www/wordpress/wp-content/plugins  /tmp/simple-ldap-login.1.4.0.5.1.zip
    ต่อไปให้เข้าหน้าเวบของ http://localhost/wordpress ด้วย login เป็น admin
    ที่เมนูด้านซ้าย ให้คลิกเลือกหัวข้อว่า "ปลั๊กอิน" ได้หน้าเวบ "ปลั๊กอิน"
    ไปที่ช่อง "Simple LDAP Login"  แล้วคลิกเลือก "ใช้งาน"
    กลับไปที่เมนูด้านซ้ายล่าง ให้คลิกเลือกหัวข้อว่า  "ตั้งค่า" -> "Simple LDAP Login"
    ได้หน้าเวบ Simple LDAP Login 1.4.0.5.1  (ตัวอย่างนี้ตั้งค่าให้ใช้กับ LDAP ของ PSU)
    ไปด้านขวาที่ส่วนของ Advanced
    ช่อง Login mode: ให้ติ๊กเลือกเปลี่ยนเป็น Create Wordpress account for anyone who successfully authenticates against LDAP.
    ไปด้านซ้ายที่ส่วนของ Settings
    ช่อง  LDAP Directory: ให้เปลี่ยนไปติ๊กเลือกเป็น OpenLDAP
    ช่อง Account Suffix: ให้ลบข้อความออกหมด ให้เหลือกลายเป็นช่องว่างๆ
    ช่อง LDAP Login Attribute ยังคงเหมือนเดิมคือ uid
    ช่อง Base DN: ให้แก้ไขเปลี่ยนเป็นว่า ou=staff,dc=cc,dc=psu
    ช่อง Domain Controller(s): ให้แก้ไขเปลี่ยนเป็นว่า front.psu.ac.th
    เสร็จแล้วเลื่อนลงไปคลิกปุ่ม "Update Options >>"
    ทำเพียงแค่นี้ แล้วทดสอบผลงานได้เลย
  10. การปรับปรุงเปลี่ยนมาใช้ nginx แทน apache ให้ปิด  apache ก่อน ด้วยคำสั่ง
    sudo /etc/init.d/apache2 stop
    sudo update-rc.d -f apache2 remove
    ติดตั้ง nginx ด้วยคำสั่ง
    sudo apt-get install nginx php5-cgi

    สร้างแฟ้ม /etc/init.d/php-fastcgi ให้มีข้อมูลดังนี้
    #!/bin/bash
    BIND=127.0.0.1:9000
    USER=www-data
    PHP_FCGI_CHILDREN=15
    PHP_FCGI_MAX_REQUESTS=1000
    PHP_CGI=/usr/bin/php-cgi
    PHP_CGI_NAME=`basename $PHP_CGI`
    PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"
    RETVAL=0
    start() {
          echo -n "Starting PHP FastCGI: "
          start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
          RETVAL=$?
          echo "$PHP_CGI_NAME."
    }
    stop() {
          echo -n "Stopping PHP FastCGI: "
          killall -q -w -u $USER $PHP_CGI
          RETVAL=$?
          echo "$PHP_CGI_NAME."
    }
    case "$1" in
        start)
          start
      ;;
        stop)
          stop
      ;;
        restart)
          stop
          start
      ;;
        *)
          echo "Usage: php-fastcgi {start|stop|restart}"
          exit 1
      ;;
    esac
    exit $RETVAL

    สั่งให้ php-fastcgi ทำงานด้วยคำสั่ง
    sudo chmod +x /etc/init.d/php-fastcgi
    sudo /etc/init.d/php-fastcgi start
    sudo update-rc.d php-fastcgi defaults

    แก้ไขแฟ้ม /etc/nginx/sites-available/default
    ไปประมาณบรรทัด 14-15 แก้ค่าเดิมจาก
    root   /var/www/nginx-default;  
    index  index.html index.htm;
    ให้กลายเป็นค่าใหม่ว่า
    root   /var/www;
    index  index.php index.html index.htm;
    ไปประมาณบรรทัด 47-52 แก้ไขยกเลิกการ comment ด้วยการลบเครื่องหมาย # ที่นำหน้าออก กลายเป็นว่า
    location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
    include fastcgi_params;
    }
    สั่งให้ nginx ทำงานใหม่ด้วยคำสั่ง
    sudo /etc/init.d/nginx restart
    ทำเพียงแค่นี้ ก็ได้ wordpress บน nginx แล้ว ทดสอบเข้าหน้าเวบ http://localhost/wordpress ได้เลย