Breaking

Saturday, April 22, 2017

ติดตั้ง LAMP (Linux, Apache, MySQL or MariaDB, PHP 7) server บน Ubuntu 16.04

    LAMP คือตัวย่อดังนี้ Linux, Apache, MySQL, PHP. ในบทความนี้จะเป็นการติดตั้ง Apache web server บน  Ubuntu 16.04 LTS (Xenial Xerus) server ด้วย PHP 7 (mod_php) และ MySQL / MariaDB และติดตั้ง  PHPMyAdmin ในการจัดการ MySQL / MariaDB . LAMP เหมาะกับคนที่ต้องการทดลองเล่น  CMS systems เช่น Joomla, Wordpress หรือ Drupal.
    ในส่วนของ database ผมจะเลือกติดตั้ง MariaDB แทน MySQL เพราะว่า MySQL ได้ถูกซื้อไปโดยบริษัท Oracle และความไม่แน่นอนกับแนวทางการพัฒนา และอนาคตของ MySQL ก็ยังไม่มีความชัดเจน ว่าจะเป็น Software ที่สามารถใช้งานได้ฟรีตลอดไปหรือไม่ หรือจะพัฒนา Version ใหม่ ๆ ที่มีความสามารถสูงขึ้นกว่าปัจจุบันอีกหรือไม่
    MariaDB คือ MySQL ที่ถูกนำมา fork ออกมาจากต้นสาย MySQL โดย Michael Widenius ซึ่งเป็นผู้ก่อตั้ง MySQL เดิม    โครงสร้างต่าง ๆ ของ MariaDB แทบจะเรียกได้ว่าเหมือนกับ MySQL เช่นพวกโครงสร้างไฟล์ โครงสร้างของ Database และ Table สามารถใช้งานของ MySQL ได้แทบจะเกือบ 100% เพราะฉะนั้นการใช้งาน MariaDB แทนที่ MySQL แทบจะไม่ต้องทำอะไรเพิ่มเติมเลย แม้แต่ Code ของ PHP ก็สามารถที่จะใช้งาน function ของ mysql ได้เช่นเดิม



Note

ในบทความนี้ผมจะทดลองติดตั้งกับ Ubuntu ที่ run อยู่บน VirtualBox  หากใครยังไม่ติดตั้งดูได้จาก บทความนี้     วิธีติดตั้ง Ubuntu Server 16 บน Oracle VM VirtualBox อย่างละเอียด
โดยผมจะ ssh เข้าไปผ่าน ip ที่ได้จากการ bridge ออกมาโดยสามารถดู ipaddress ของเครื่องได้จากคำสั่ง #ifconfig


จากนั้นใช้โปรแกรม ssh เข้าไป




















ในทุกขั้นตอนในการทดสอบครั้งนี้ผมจะใช้สิทธิ์เป็น root ทั้งหมด โดยใช้ command  ดังนี้
sudo su
จากนั้นผมขอแนะนำให้ติดตั้ง text editor ไว้ซักตัวนอกเหนือจาก vi ที่ติดมาจากเครื่องอยู่แล้ว โดยตัวที่นิยมและใช้งานง่าย ได้แก่ nano
โดยพิมพ์ตามคำสั่งดังนี้
apt-get -y install nano

สำหรับวิธีการใช้งาน vi และ nano ดูได้จากเวปนี้  https://www.unzeen.com/article/1178/



1. ติดตั้ง MariaDB 10

พิมพ์คำสั่งดังต่อไปนี้เพื่อติดตั้ง MariaDB-server และ client
apt-get -y install mariadb-server mariadb-client
ตามที่แสดงในรูปด้านล่าง








ต่อไปจะเป็นการตั้งรหัสผ่านสำหรับ root ของ MariaDB 
mysql_secure_installation
โดยตอนติดตั้งจะมีข้อความถามดังนี้:
Enter current password for root (enter for none): <-- ให้กด enter
Set root password? [Y/n] <-- y
New password: <-- กรอก รหัสผ่าน MariaDB สำหรับ root ลงไป
Re-enter new password: <-- กรอก รหัสผ่าน MariaDB สำหรับ root ซ้ำอีกครั้ง
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

ทดสอบการ login เข้า MariaDB ด้วยคำสั่ง mysql
mysql -u root -p
และ enter รหัสผ่าน  MariaDB สำหรับ root  ตามที่แสดงในรูปด้านล่าง














การออกจาก MariaDB shell  ให้พิมพ์คำสั่ง "quit" และ enter.


2. ติดตั้ง Apache 2.4

Apache 2 มี package อยู่แล้วใน Ubuntu ,วิธีการตั้งตั้งให้พิมพ์คำสั่งดังนี้:
apt-get -y install apache2
จากนั้นเข้าเวป browser ไปที่ http://172.20.88.172 ,  และหากเจอหน้าเวปของ Apache2 default แสดงว่าติดตั้งสำเร็จ (It works!












โดยที่ document root ค่า default pathจะอยู่ที่ /var/www/html


3. ติดตั้ง PHP 7

ติดตั้ง PHP 7 และ Apache PHP module ดังนี้:
apt-get -y install php7.0 libapache2-mod-php7.0
จากนั้น restart  Apache:
systemctl restart apache2

4. ทดสอบ PHP และ Apache2 แสดงรายละเอียด

จากที่ document root ค่า default pathจะอยู่ที่ /var/www/html . ดังนี้เราจะสร้างไฟล์ php เพื่อทดสอบ (info.php) ไว้ใน directory ของ document root . 
nano /var/www/html/info.php
<?php
phpinfo();
?>
จากนั้นเรียกไฟล์ที่สร้างขึ้นผ่านเวป browser
ตัวอย่าง. http://172.20.88.172/info.php 





























จากรูปจะเห็นว่า php 7.0 ทำงานได้แล้ว แต่ยังไม่มี module PHP ที่เชื่อมต่อกับ MySQL / MariaDB ในข้อต่อไปเราจะมาติดตั้ง  module นี้


5. ติดตั้ง Module เชื่อมต่อระหว่าง MySQL / MariaDB และ PHP

ติดตั้ง module ที่จำเป็นต้องใช้งานสำหรับ php และ mysql ดังนี้ โดยพิมพ์คำสั่งนี้:
apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache  php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext
restart Apache2:
systemctl restart apache2


























PHP 7 รองรับ MySQL / MariaDB ตามที่แสดง phpinfo() ด้านบน.


6. ติดตั้ง Opcache + APCu PHP cache ( เพิ่มความเร็วให้กับ PHP โดยเฉพาะกับ CMS Systems)

  ในระบบการประมวลผลของ script ไปเป็น op code เพื่อให้เร็วขึ้น จึงมีการ cache ตัว op code เหล่านั้นเพื่อลดการทำงานในส่วน interpreter ลง ทำให้ระบบโดยรวมทำงานได้เร็วขึ้น ใน PHP ก็มีการคิดตัว cache op code เหล่านี้ขึ้นมาได้แก่  OpCache  APC ซึ่งเหมาะกับ ระบบ CMS Systems ที่มีการประมวลผล script ค่อนข้างมาก เช่น Joomla, Wordpress หรือ Drupal ทำให้ระบบประมวลผลได้เร็วขึ้น
Opcache และ APCu สามารถติดตั้งได้จากพิมพ์คำสั่งดังนี้:
apt-get -y install php7.0-opcache php-apcu
 และ restart Apache:
systemctl restart apache2


























อย่าลืมลบไฟล์  info.php บน server เพราะอาจทำให้ผู้ไม่หวังดีเข้ามาล้วงข้อมูลที่ท่านติดตั้ง module ต่างๆได้ .  วิธีการลบไฟล์โดยการพิมพ์คำสั่งดังนี้
rm -f /var/www/html/info.php





7. ติดตั้ง phpMyAdmin

phpMyAdmin คือเครื่องมือที่ใช้จัดการ databases mysql ผ่านทางเวป browser . วิธีการติดตั้งพิมพ์คำสั่งดังนี้
apt-get -y install phpmyadmin
โดยตอนติดตั้งจะมีข้อความถามดังนี้:
Web server to configure automatically: <-- ให้เลือก : apache2(กด space เพื่อเลือก จากนั้นกด tab เพื่อเปลี่ยน cursor )
Configure database for phpmyadmin with dbconfig-common? <-- Yes
MySQL application password for phpmyadmin: <-- กด enter, ระบบจะสร้างรหัสผ่านแบบสุ่มขึ้นมาให้(เพราะขั้นตอนนี้สำหรับ MariaDB ต้องสร้าง username/password ใหม่)

7.1 การเข้าใช้งาน PHPMyAdmin สำหรับผู้ใช้งานระดับ root บน MariaDB

สำหรับ MariaDB จะมี plugin ชื่อว่า "unix_socket" ทำให้ไม่สามารถเข้าใช้งานผ่าน user root ผ่าน TCP connections ได้. ดังนั้นเราต้องสร้าง user ใหม่สำหรับเข้าใช้งาน PHPMyAdmin . โดยเราจะสร้าง username เป็น "admin" โดยให้สิทธิ์เทียบเท่า root 
Login เข้า MySQL database โดยใช้สิทธิ์ root เข้าผ่าน shell ดังนี้
mysql -u root
สร้าง username เป็น "admin" และรหัสผ่าน เป็น  "mypassword" ด้วยคำสั่งดังนี้
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit


โดยขั้นตอนเหมือนรูปด้านล่าง






เสร็จแล้วเข้าผ่านเวป browser ตามนี้ http://172.20.88.172/phpmyadmin/ 










3 comments:

  1. ขอบคุณครับ มีประโยชน์มากครับ

    ReplyDelete
  2. Casino Games at Wynn Las Vegas | MJH
    Try your luck 포항 출장안마 at over 300 slot machines, a 강원도 출장마사지 100-table poker 여주 출장마사지 room, and over 3,000 table games at Wynn 밀양 출장안마 Las Vegas. No matter what games you're 천안 출장샵 into,

    ReplyDelete

Adbox