การติดตั้ง WordPress บน Debian โดยใช้แพกเกจของ Debian (+PHP-FPM บน Apache แบบง่ายที่สุด)

บล็อกนี้รันอยู่บน Raspberry Pi Model B ซึ่งรัน Raspbian (Debian สำหรับ ARMv6) ตอนติดตั้งผมจึงคิดที่จะใช้แพกเกจของ Debian ในการติดตั้ง ซึ่งก็ต้องทำอะไรหลายอย่างเหมือนกัน เริ่มจาก

  • ติดตั้งไฟล์ของ WordPress และแพกเกจที่จำเป็นอื่นๆ
    sudo apt-get install wordpress apache2 mysql-server mysql-client php5-mysql php5-fpm

    ในระหว่างนี้จะมีการถามรหัสผ่านของบัญชี root ของ MySQL จำไว้ให้ดี เพราะต้องใช้ในขั้นตอนต่อไป

  • ตั้งค่า Apache โดย
    • สร้าง vHost ใหม่หรือแก้ vHost เดิมใน Apache โดยให้มีคอนฟิกต่อไปนี้
      <VirtualHost *:80>
          ....
          DocumentRoot /usr/share/wordpress/
      
          # wp-content in /var/lib/wordpress/wp-content
          Alias /wp-content /var/lib/wordpress/wp-content
      
          <Directory /usr/share/wordpress/>
              Options +FollowSymLinks
              <IfVersion < 2.3>
                  Order allow,deny
                  Allow from all
              </IfVersion>
              <IfVersion >= 2.3>
                  Require all granted
              </IfVersion>
      
              # Allow .htaccess.
              AllowOverride All
          </Directory>
          <Directory /var/lib/wordpress/wp-content/>
              Options +FollowSymLinks
              <IfVersion < 2.3>
                  Order allow,deny
                  Allow from all
              </IfVersion>
              <IfVersion >= 2.3>
                  Require all granted
              </IfVersion>
      
              # Allow .htaccess.
              AllowOverride All
          </Directory>
    • ตั้งค่า PHP โดยสร้างไฟล์ /etc/apache2/conf-available/fastcgi-php.conf ให้มีเนื้อหาดังนี้
      <IfModule proxy_fcgi_module>
          <FilesMatch "^(.*\.php5?)$">
              SetHandler "proxy:unix:/var/run/php5-fpm.sock|fcgi://localhost/"
          </FilesMatch>
      </IfModule>
    • เปิดใช้งานโมดูลและการตั้งค่าที่จำเป็น แล้วจึงเริ่มการทำงานของ Apache ใหม่
      sudo a2enmod rewrite proxy_fcgi
      sudo a2enconf fastcgi-php
      sudo service apache2 restart
  • สร้างไฟล์คอนฟิกของ WordPress ไว้ที่ /etc/wordpress/config-$DM.php โดยที่ $DM เป็นโดเมนของเว็บ เช่น หากเว็บไซต์อยู่ที่ blog.example.com ชื่อไฟล์อาจจะเป็น
    • config-blog.example.com.php (แนะนำให้ใช้อันนี้) หรือ
    • config-example.com.php (ถ้ามีหลายเว็บในโดเมนนี้) หรือ
    • config-default.php (ไฟล์นี้จะถูกใช้ถ้าไม่มีไฟล์อื่นที่เจาะจงกว่านี้)
  • โดยให้มีเนื้อหาดังนี้ (แทนที่ <RandomPassword_A> ด้วยรหัสผ่านสุ่ม)
    <?php
        define('DB_NAME', 'wordpress');
        define('DB_USER', 'wordpress');
        define('DB_PASSWORD', '<RandomPassword_A>');
        define('DB_HOST', 'localhost');
        define('WP_CONTENT_DIR', '/var/lib/wordpress/wp-content');
        define('FS_METHOD', 'direct');
    ?>
  • ตั้งค่าฐานข้อมูล โดย
    • สร้างไฟล์ขึ้นมาไฟล์หนึ่ง (สมมติว่าชื่อ wp.sql) ให้มีเนื้อหาดังนี้ (แทนที่ <RandomPassword_A> ด้วยรหัสผ่านเดียวกันกับข้างบน)
      CREATE DATABASE wordpress;
      GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
      ON wordpress.*
      TO wordpress@localhost
      IDENTIFIED BY '<RandomPassword_A>';
      FLUSH PRIVILEGES;
    • รันคำสั่งนี้ (ใส่รหัสผ่าน root ของ MySQL เมื่อถูกถาม)
      mysql -uroot -p <wp.sql
  • ตั้งสิทธิ์และเจ้าของไฟล์ที่จำเป็นโดยรันคำสั่งตามนี้
    sudo chown -R www-data:www-data /var/lib/wordpress/wp-content/ /usr/share/wordpress/.htaccess
  • เราพร้อมแล้วที่จะเริ่ม “การติดตั้งภายใน 5 นาทีที่มีชื่อเสียง” (แต่กว่าจะเริ่มได้นี่เอาเหนื่อย) ไปที่ http://blog.example.com/wp-admin/install.php (แน่นอนว่าแทนที่ชื่อเว็บด้วยเว็บของคุณ) แล้วทำตามที่หน้าเว็บบอก

แล้ว WordPress ก็ถูกติดตั้งเรียบร้อย ตอนต่อไปจะมาพูดถึงการเพิ่มความเร็วของเว็บกัน (เพราะว่า Raspberry Pi ช้าครับ เลยต้องเร่งความเร็วกันซะหน่อย) และจะมาพูดเกี่ยวกับ Plugin กับความคาดหวังบางอย่างที่มั่วสุดๆ