จากบทความ ติดตั้ง Apache, PHP บน Fedora 11 เราได้ติดตั้ง เว็บเซิร์ฟเวอร์ Apache และ PHP เพื่อให้สามารถเขียนเว็บเพจโดยใช้ภาษา PHP ได้ แต่ถ้าทำเพียงเท่านี้ จะะสามารถเรียกใช้ฟังก์ชั่นแค่พื้นฐานเท่านั้น ถ้าต้องการใช้ฟังก์ชั่นอื่นๆ ด้วย เช่นเชื่อมต่อเข้ากับ MySQL เราจำเป็นต้องติดตั้ง PHP Module เพิ่มเติม
ในบทความนี้อธิบายวิธีการตรวจสอบและติดตั้งโมดูลเพิ่มเติม ตัวอย่างจะเป็นการติดตั้งโมดูล MySQL เพื่อให้สามารถเขียน PHP เชื่อมเข้ากับฐานข้อมูลได้
ตัวอย่าง error เมื่อเรียกใช้ฟังก์ชั่นของโมดูลที่ไม่มีหรือยังไม่ได้ติดตั้ง
[root@fc11-64min html]# cat test-mysql.php <?php mysql_connect('localhost', 'mysql_user', 'mysql_password'); ?>
[root@fc11-64min html]# php test-mysql.php
PHP Fatal error: Call to undefined function mysql_connect() in /var/www/html/test-mysql.php on line 2
วิธีการดูว่าตอนนี้สามารถใช้ PHP Module อะไรบ้าง ทำได้โดยใช้ฟังก์ชั่น phpinfo() แล้วเรียกผ่านหน้าเว็บเพจ หรือรันคำสั่ง php ตามด้วยออปชั่น ‘-m’
[root@fc11-64min ~]# php -m [PHP Modules] bz2 calendar ctype curl date dbase exif filter ftp gettext gmp hash iconv json libxml openssl pcntl pcre readline Reflection session shmop SimpleXML sockets SPL standard tokenizer xml zip zlib
[Zend Modules]
บาง module สามารถติดตั้งจากแผ่นดีวีดีได้ แต่อื่นๆ ต้องดาวน์โหลดจาก Fedora 11 everything เอง
ใส่แผ่นดีวีดี Fedora 11 แล้วใช้คำสั่ง mount เพื่อดูไฟล์ในแผ่น
[root@fc11-64min ~]# mount /dev/scd0 /media/ mount: block device /dev/sr0 is write-protected, mounting read-only [root@fc11-64min ~]# cd /media/Packages/
[root@fc11-64min Packages]# ls -l php* -rw-r--r--. 2 root root 1257206 2009-04-18 00:28 php-5.2.9-2.fc11.x86_64.rpm -rw-r--r--. 2 root root 2390634 2009-04-18 00:29 php-cli-5.2.9-2.fc11.x86_64.rpm -rw-r--r--. 2 root root 271487 2009-04-18 00:29 php-common-5.2.9-2.fc11.x86_64.rpm -rw-r--r--. 2 root root 35700 2009-04-18 00:31 php-ldap-5.2.9-2.fc11.x86_64.rpm -rw-r--r--. 2 root root 89294 2009-04-18 00:31 php-mysql-5.2.9-2.fc11.x86_64.rpm -rw-r--r--. 2 root root 67938 2009-04-18 00:31 php-pdo-5.2.9-2.fc11.x86_64.rpm
ติดตั้ง PHP MySQL Module
ใช้คำสั่ง rpm เพื่อติดตั้ง module เพิ่มเติม สำหรับการติดตั้ง MySQL module ต้องติดตั้ง PDO module ก่อน
[root@fc11-64min Packages]# rpm -ivh php-pdo-5.2.9-2.fc11.x86_64.rpm [root@fc11-64min Packages]# rpm -ivh php-mysql-5.2.9-2.fc11.x86_64.rpm
ใช้คำสั่ง php เพื่อตรวจสอบ module ที่ติดตั้งเพิ่มเติม
[root@fc11-64min Packages]# php -m [PHP Modules] bz2 calendar ctype curl date dbase exif filter ftp gettext gmp hash iconv json libxml mysql mysqli openssl pcntl pcre PDO pdo_mysql pdo_sqlite readline Reflection session shmop SimpleXML sockets SPL standard tokenizer xml zip zlib
[Zend Modules]
หลังจากการติดตั้ง PHP module เพิ่มเติม การรัน PHP ที่เป็น command line สามารถเรียกใช้โมดูลใหม่นี้ได้เลย แต่ถ้าต้องการเรียกผ่านเว็บเซอร์วิส ต้องรีสตาร์ตเว็บเซิร์ฟเวอร์ก่อน
ใช้คำสั่ง service เพื่อรีสตาร์ตเว็บเซิร์ฟเวอร์
[root@fc11-64min Packages]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]
ตัวอย่างการใช้ฟังก์ชั่น phpinfo() แสดงผลผ่านหน้าเว็บเพจ เพื่อดูข้อมูลรายละเอียดโมดูล MySQL ที่ติดตั้งใหม่