ติดตั้ง Drupal บน CentOS 6

Drupal ไม่ได้เป็นแค่โปรแกรม CMS (Content Management system) แต่จัดว่าเป็นประเภท CMF (Content Management Framework) ได้เลย คือเราสามารถนำ Drupal ที่เรียกว่า Core มาพัฒนาต่อยอดให้เป็นเว็บโปรแกรมทำงานด้านอื่นๆ  ได้

เพื่อความง่ายในการติดตั้ง ผู้พัฒนาต่อยอดจะรวบรวมการแก้ไขและ module ต่างๆ ที่ต้องใช้ เป็น Drupal Distribution ในชื่อต่างๆ

ถ้าต้องการศึกษาทดลองใช้ Drupal ในเบื้องต้น ซึ่งในบทความนี้จะแสดงวิธีการติดตั้ง Core ให้ดาวน์โหลด Drupal Core

แต่ถ้าต้องการใช้ชุดโปรแกรมที่พัฒนาต่อยอดมาแล้ว ให้เลือกดาวน์โหลดที่ Distributions ที่ต้องการใช้ได้เลย

ในที่นี้จะทดลองติดตั้ง Drupal บน CentOS 6.3 ที่มี Apache, PHP และ MySQL ติดตั้งอยู่แล้ว

ดาวน์โหลดไฟล์ Drupal Core แล้วแตกไฟล์ไว้ในไดเร็คทอรี /var/www/html/

[root@cent6 ~]# cd /var/www/html/
[root@cent6 html]# tar zxf drupal-7.20.tar.gz
[root@cent6 html]# chown -R root.root drupal-7.20/
[root@cent6 html]# cd drupal-7.20/

ใช้ browser เปิดหน้าเว็บไปที่พาธที่แตกไฟล์ไว้

http://<web-ip-address>/drupal-7.20/

หน้า Select an installation profile เลือก “Standard”

 

หน้า Choose language เลือก “English (built-in)”

 

หน้า Requirements problem จะแสดงการตรวจสอบ Web Server และ PHP ว่าติดตั้งครบถ้วนหรือไม่ ถ้าไม่ถูกต้องจะฟ้องข้อความขึ้นมา

 

แต่ละเครื่องอาจมี error แสดงแตกต่างกันไป

---
PHP extensions    Disabled
Drupal requires you to enable the PHP extensions in the following list (see the system requirements page for more information):
 dom
 gd

ตัวอย่างนี้ ไม่มี PHP extensions ที่ Drupal ต้องใช้ คือ dom และ gd เราต้องติดตั้งเพิ่มเติมก่อน

บน CentOS 6 ทำได้โดยติดตั้งไฟล์ rpm เพิ่มเติม อาจด้วยคำสั่ง yum หรือหาไฟล์ rpm ที่เกี่ยวข้องจากแผ่นติดตั้งดีวีดี

ถ้าใช้คำสั่ง yum ก็แค่ yum install php-xml และ yum install php-gd

หมายเหตุ สำหรับ CentOS6 ชื่อ PHP extensions dom อยู่ในไฟล์ rpm ชื่อว่า php-xml

แต่ถ้าติดตั้งไฟล์ rpm จากแผ่น ก็ทำได้โดยใส่แผ่นดีวีดีติดตั้ง CentOS 6 แผ่นที่ 1

[root@cent6 ~]# mount /dev/cdrom /mnt
[root@cent6 mnt]# cd Packages/
[root@cent6 Packages]# rpm -i libXpm-3.5.8-2.el6.x86_64.rpm
[root@cent6 Packages]# rpm -i php-gd-5.3.3-3.el6_2.8.x86_64.rpm
[root@cent6 Packages]# rpm -i libxslt-1.1.26-2.el6.x86_64.rpm
[root@cent6 Packages]# rpm -i php-xml-5.3.3-3.el6_2.8.x86_64.rpm

เมื่อมีการติดตั้ง PHP extensions เพิ่มเติม ต้องรีสตาร์ตเซอร์วิส Apache (httpd) ด้วย เพื่อให้รู้จัก extension ใหม่

[root@cent6 ~]# service httpd restart

ลองรีเฟรชหน้าเว็บ Requirements problem อีกครั้ง ยังมีฟ้อง error เกี่ยวกับ File system

 

---
File system
The directory sites/default/files does not exist. An automated attempt to create this
 directory failed, possibly due to a permissions problem. To proceed with the
 installation, either create the directory and modify its permissions manually or ensure
 that the installer has the permissions to create it automatically. For more information,
 see INSTALL.txt or the online handbook.
---

การแก้ไข ต้องสร้างไดเร็คทอรี sites/default/files ขึ้นมา และเปลี่ยน permission ให้ Apache สามารถเขียนได้

[root@cent6 ~]# cd /var/www/html/
[root@cent6 html]# cd drupal-7.20/
[root@cent6 drupal-7.20]# cd sites/default/
[root@cent6 default]# ls -l
total 24
-rw-r--r--. 1 root root 23197 Feb 21 03:32 default.settings.php

สร้างไดเร็คทอรี files และเปลี่ยน permission ให้ Apache เขียนได้

[root@cent6 default]# mkdir files

วิธีการเปลี่ยนให้ apache เขียนได้ ทำได้สองแบบคือ เปลี่ยน owner ของไดเร็คทอรีให้เป็น apache ต้องใช้ root เป็นคนเปลี่ยน

[root@cent6 default]# chown apache files

แต่ถ้าไม่สามารถเป็น root ได้ ต้องเปลี่ยน permission เป็น 777

[root@cent6 default]# chown 777 files

ถ้าล็อกอินเป็น root ได้ แนะนำให้ chown จะปลอดภัยกว่า

---
Settings file    The settings file does not exist.
The Drupal installer requires that you create a settings file as part of the installation
 process. Copy the  ./sites/default/default.settings.php file to ./sites/default
 /settings.php. More details about installing Drupal are available in  INSTALL.txt.
---

วิธีแก้ error นี้คือต้องสร้างไฟล์ settings.php ขึ้นมา โดย copy มาจากไฟล์ default.settings.php

[root@cent6 default]# cp default.settings.php settings.php

หากลองรีเฟรชดูใหม่ ก็จะขึ้น error

 

---
Settings file    The settings file is not writable.
The Drupal installer requires write permissions to ./sites/default/settings.php during
 the installation process. If you are  unsure how to grant file permissions, consult the
 online handbook.
---

วิธีการแก้ไข เหมือนด้านบน คือต้องเปลี่ยน permission ให้ Apache เขียนไฟล์ settings.php นี้ได้

[root@cent6 default]# chown apache settings.php

ส่วน error Unicode

---
 Unicode library    Standard PHP
Operations on Unicode strings are emulated on a best-effort basis. Install the PHP mbstring extension for
improved Unicode support.
---

ต้องแก้ไขโดยติดตั้ง PHP extensions เพิ่มเติม ที่มีชื่อว่า php-mbstring โดยอาจจะใช้ yum install หรือติดตั้งจากแผ่นดีวีดีติดตั้ง

ไฟล์ rpm ของ php-mbstring อยู่ในแผ่นดีวีดีติดตั้ง CentOS 6 แผ่นที่ 2 ต้องเอาแผ่นที่ 1 ออกจากเครื่องก่อน

[root@cent6 ~]# umount /mnt

เอาแผ่นที่ 1 ออก แล้วใส่แผ่นที่สองแทน

[root@cent6 ~]# mount /dev/cdrom /mnt
[root@cent6 mnt]# cd Packages/
[root@cent6 Packages]# rpm -i php-mbstring-5.3.3-3.el6_2.8.x86_64.rpm

ทุกครั้งที่ติดตั้ง PHP extensions ใหม่ ต้องรีสตาร์ตเซอร์วิส httpd

[root@cent6 Packages]# service httpd restart

ลองรีเฟรชหน้าเว็บดูอีกครั้ง ถ้าแก้ไขครบถ้วน จะไปสู่หน้าถัดไป หน้า Database configuration

 

 

ต้องสร้าง database สำหรับใช้เก็บข้อมูล Drupal ขึ้นมา

ตัวอย่างการใช้คำสั่ง mysql สร้าง database และกำหนด user, password สำหรับเข้าใช้ database

mysql> CREATE DATABASE drupal;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL ON drupal.* TO 'drupal'@'localhost' IDENTIFIED BY 'drupal1234';
Query OK, 0 rows affected (0.00 sec)

กรอกข้อมูลที่สร้างไว้ แล้วกดปุ่ม Save and continute ไปหน้าถัดไป

หน้าเว็บแสดง กำลังติดตั้ง Drupal

 

หน้าถัดไป เป็นหน้า Configure site จะให้กรอกข้อมูลเบื้องต้นของเว็บเรา

 

ข้อมูลที่สำคัญในเบื้องต้นคือส่วนของ SITE MAINTENANCE ACCOUNT ที่กรอก Username, Password สำหรับการจัดการ Drupal

 

 

หน้าเว็บ Drupal installation complete แสดงการติดตั้งเสร็จเรียบร้อย กดที่ลิ้งค์ Visit your new site เพื่อ

ทดลองใช้งาน Drupal ได้เลย

 

 

ข้อมูลอ้างอิง

 

Leave a Reply

Your email address will not be published.