รับทําเว็บไซต์ รับทําseo
บทความที่น่าสนใจ

บทความ ที่น่าสนใจ

Linux Server (CentOS) : ติดตั้งโมดูล PHP เพิ่มเติม

      จากการ ติดตั้งโปรแกรมภาษาเว็บ PHP บน Apache เว็บเซิร์ฟเวอร์ Apache และ PHP เครื่องนี้ สามารถเขียนเว็บเพจโดยใช้ภาษา PHP ได้แล้ว  แต่สามารถเรียกใช้ฟังก์ชั่นแค่พื้นฐานเท่านั้น  ถ้าต้องการใช้ฟังก์ชั่นอื่นๆ ด้วย เช่น เชื่อมต่อเข้ากับ MySQL เราจำเป็นต้องติดตั้งโมดูล PHP เพิ่มเติม

     

    ในบทความนี้จะอธิบายวิธีการตรวจสอบและติดตั้งโมดูลเพิ่มเติมจากไฟล์ rpm ที่อยู่ในแผ่นดีวีดี CentOS 6.2  โดยจะเป็นการติดตั้งโมดูล MySQL เพื่อให้สามารถเขียน PHP เชื่อมเข้ากับฐานข้อมูล MySQL ได้

     

    ตัวอย่าง error เมื่อเรียกใช้ฟังก์ชั่นของโมดูลที่ไม่มีหรือยังไม่ได้ติดตั้ง


    [root@cent6 ~]# cat test-mysql.php <?php mysql_connect('localhost', 'mysql_user', 'mysql_password'); ?>

    ทดลองรันไฟล์นี้ด้วย php


    [root@cent6 ~]# php test-mysql.php PHP Fatal error:  Call to undefined function mysql_connect() in /var/www/html/test-mysql.php on line 2   

    วิธีการตรวจสอบว่า การเขียนโปรแกรมภาษา PHP บนเว็บเซิร์ฟเวอร์นี้ สามารถเรียกใช้โมดูล PHP อะไรได้บ้าง ทำได้โดยใช้ฟังก์ชั่น phpinfo() แล้วเปิดผ่านหน้าเว็บเพจ หรือรันคำสั่ง php ตามด้วยออปชั่น “-m”


    [root@cent6 html]# php -m [PHP Modules] bz2 calendar Core ctype curl date ereg exif fileinfo filter ftp gettext gmp hash iconv json libxml openssl pcntl pcre Phar readline Reflection session shmop SimpleXML sockets SPL standard tokenizer xml zip zlib

    [Zend Modules]


    หากต้องการเรียกใช้โมดูลมากกว่านี้ จำเป็นต้องติดตั้งเพิ่มเติม  วิธีหนึ่งคือติดตั้งจากไฟล์ rpm ในแผ่นดีวีดี CentOS 6.2

     

    ไฟล์ rpm ใน CentOS 6.2 ที่เกี่ยวข้องกับ PHP ไม่ว่าจะเป็นส่วนโปรแกรมหลัก หรือโมดูลเพิ่มเติม จะขึ้นต้นชื่อไฟล์ด้วย php


    [root@cent6 ~]# mount /dev/cdrom /mnt  mount: block device /dev/sr0 is write-protected, mounting read-only

    [root@cent6 ~]# cd /mnt/Packages/ [root@cent6 Packages]# ls -l php-* -rw-r--r--. 2 500 500 1176604 Nov 15 18:02 php-5.3.3-3.el6_1.3.x86_64.rpm -rw-r--r--. 2 500 500 2276776 Nov 15 18:02 php-cli-5.3.3-3.el6_1.3.x86_64.rpm -rw-r--r--. 2 500 500  534024 Nov 15 18:02 php-common-5.3.3-3.el6_1.3.x86_64.rpm -rw-r--r--. 2 500 500  105780 Nov 15 18:02 php-gd-5.3.3-3.el6_1.3.x86_64.rpm -rw-r--r--. 2 500 500   36360 Nov 15 18:02 php-ldap-5.3.3-3.el6_1.3.x86_64.rpm -rw-r--r--. 2 500 500   80300 Nov 15 18:02 php-mysql-5.3.3-3.el6_1.3.x86_64.rpm -rw-r--r--. 2 500 500   49116 Nov 15 18:02 php-odbc-5.3.3-3.el6_1.3.x86_64.rpm -rw-r--r--. 2 500 500   74148 Nov 15 18:02 php-pdo-5.3.3-3.el6_1.3.x86_64.rpm -rw-r--r--. 2 500 500  402492 Dec  9 03:54 php-pear-1.9.4-4.el6.noarch.rpm -rw-r--r--. 2 500 500   95556 Jul  3  2011 php-pecl-apc-3.1.3p1-1.2.el6.1.x86_64.rpm -rw-r--r--. 2 500 500   61400 Sep 26  2011 php-pecl-memcache-3.0.5-3.el6.x86_64.rpm -rw-r--r--. 2 500 500   69044 Nov 15 18:02 php-pgsql-5.3.3-3.el6_1.3.x86_64.rpm -rw-r--r--. 2 500 500  140600 Nov 15 18:02 php-soap-5.3.3-3.el6_1.3.x86_64.rpm -rw-r--r--. 2 500 500  102132 Nov 15 18:02 php-xml-5.3.3-3.el6_1.3.x86_64.rpm -rw-r--r--. 2 500 500   50964 Nov 15 18:02 php-xmlrpc-5.3.3-3.el6_1.3.x86_64.rpm  

    ใช้คำสั่ง rpm เพื่อติดตั้ง module เพิ่มเติม สำหรับการติดตั้ง MySQL module


    [root@cent6 Packages]# rpm -i php-mysql-5.3.3-3.el6_1.3.x86_64.rpm error: Failed dependencies:  php-pdo is needed by php-mysql-5.3.3-3.el6_1.3.x86_64

    ต้องติดตั้ง php-pdo (PDO module) ก่อน


    [root@cent6 Packages]# rpm -i php-pdo-5.3.3-3.el6_1.3.x86_64.rpm [root@cent6 Packages]# rpm -i php-mysql-5.3.3-3.el6_1.3.x86_64.rpm

    ใช้คำสั่ง php ออปชั่น -m เพื่อตรวจสอบ module ที่ติดตั้งเพิ่มเติม


    [root@cent6 Packages]# php -m [PHP Modules] bz2 calendar Core ctype curl date ereg exif fileinfo filter ftp gettext gmp hash iconv json libxml mysql mysqli openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar readline Reflection session shmop SimpleXML sockets SPL sqlite3 standard tokenizer xml zip zlib

    Zend Modules]  

    คำอธิบาย

     - PDO, pdo_sqlite, sqlite3 ได้จากการติดตั้งไฟล์ php-pdo

     - mysql, mysqli, pdo_mysql ได้จากการติดตั้งไฟล์ php-mysql


    หลังจากการติดตั้ง PHP module เพิ่มเติม การรัน PHP ที่เป็น command line สามารถเรียกใช้โมดูลใหม่นี้ได้เลย แต่ถ้าต้องการเรียกผ่านเว็บเซิร์ฟเวอร์ ต้องรีสตาร์ตเซอร์วิส httpd ก่อน


    ใช้คำสั่ง service เพื่อรีสตาร์ตเซอร์วิส httpd


    [root@cent6 Packages]# service httpd restart Stopping httpd:                                            [  OK  ] Starting httpd:                                            [  OK  ]

    ตัวอย่างการใช้ฟังก์ชั่น phpinfo() แสดงผลผ่านหน้าเว็บเพจ เพื่อดูข้อมูลรายละเอียดโมดูล MySQL ที่ติดตั้งใหม่


    [root@cent6 ~]# cat /var/www/html/info.php  <?php  phpinfo();  ?>

    ผลลัพธ์ที่ได้จากการเรียกผ่านหน้าเว็บ