Php หล ง update ให กล บมาหน าเด ม

Install CentOS7 & moodle3.7

สมพร บุญริน

วทิ ยาลยั เทคนิคชลบรุ ี

การตดิ ตงั้ Moodle 3.7+

https://download.moodle.org/releases/latest/ LAMP เปน็ ตัวอักษรย่อของโอเพน่ ซอร์สซอฟต์แวร์ 4 ชนิด มารวมกัน เพือ่ ทาหนา้ ทเ่ี ปน็ เครื่องใหบ้ รกิ าร เว็บ (Web Server) อนั ประกอบด้วย Linux, Apache, MySQL และ PHP, Perl หรือ Python ข้นึ อยู่ กับว่าจะใชอ้ ะไรเป็นหลัก

L: CentOS7.6 A: Apache 2.4.6 M: MariaDB 5.5.31 P: PHP 7.1

Install CentOS 7 1. บูทด้วย CentOS bootable media หรือ ISO จะพบหนา้ ดงั รปู เลือก "Install CentOS 7"

เลอื ก install CentOS Linux7 2. เลอื กภาษาที่ตอ้ งการและกด Continue

มภี าษา “ไทย” ใหเ้ ลือก แต่ในท่ีนีใ้ หเ้ ลอื กเป็นภาษาอังกฤษ “English” กดปมุ่ Continue เพ่ือไปหนา้ ต่อไป 3. ต้ังค่า Host name และ Network

จากหน้าจอ “INSTALLATION SUMMARY” กดท่ี “NETWORK & HOSTNAME” เพื่อเขา้ ส่หู น้าจอ การคอนฟกิ เนต็ เวริ ก์

เลอื กต้ังคา่ Network & hostname

ตง้ั ค่า Host name และ Network

เสรจ็ เรยี บรอ้ ยกดปมุ่ Done 4. ตัง้ คา่ เวลา โซนเวลา

จากหน้าจอ “INSTALLATION SUMMARY” กดที่ “DATE & TIME” เพอื่ เข้าสู่หน้าจอคอนฟกิ เก่ยี วกับเวลา

โซนเวลาสาหรับประเทศไทยเลือก Region: Asia City: Bangkok หรอื คลิ้กทแ่ี ผนทป่ี ระเทศไทย เสร็จเรียบรอ้ ยกดปมุ่ Done 5. ตงั่ ค่าฮาร์ดดิส

โดยปกติการติดต้งั จะทาการจดั พาทชิ ่นั (Partitioning) อัตโนมัตบิ นฮารด์ ดสิ เราสามารถแกไ้ ขไดโ้ ดยกด ที่ "Installation Destination"

เสร็จเรยี บรอ้ ยกดปุม่ Done 6. เลอื ก Software ทีต่ ้องการติดตง้ั โดยกดท่ี "Software Selection"

7. เม่อื ตั้งคา่ ท่ีจาเปน็ เสรจ็ เรยี บร้อย กดท่ี "Begin Installation" เพ่อื เริ่มตดิ ต้งั

8. ตั้งค่า root password จากหนา้ จอ “USER SETINGS” กดท่ี “ROOT PASSWORD” เพื่อเขา้ ส่หู น้าจอคอนฟกิ

เสรจ็ เรยี บร้อยกดป่มุ Done 9. สร้าง User จากหนา้ จอ “USER SETINGS” กดที่ “USER CREATION” เพอ่ื เขา้ สู่หนา้ จอคอนฟกิ

เสรจ็ เรยี บรอ้ ยกดปมุ่ Done

เสร็จเรยี บรอ้ ยกดป่มุ Finish Configuration 10. เมือ่ การตดิ ต้งั เสรจ็ สมบูรณ์ ระบบจะให้ Reboot ทาการกด Reboot

เสร็จเรียบร้อยกดปมุ่ Reboot

โดยข้นั ตอนการตดิ ตง้ั LAMP Server ด้วยตนเองมีขน้ั ตอนดังตอ่ ไปนี้

--STEP1: ตดิ ตงั้ Apache HTTPD 1. ตดิ ตง้ั Apache on CentOS 7

yum install -y httpd 2. สต๊าทบริการและต้ังคา่ ใหท้ างานตอนบูต๊ ระบบ

systemctl start httpd systemctl enable httpd 3. กาหนดให้ apache สามารถใช้งานผา่ น firewall ได้ (กรณีเปิดใชง้ าน firewalld) firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload --STEP2: ตดิ ตั้งฐานข้อมลู MariaDB or MySQL 1. ติดตงั้ ฐานข้อมูล MariaDB yum install mariadb-server mariadb -y 2. สต๊าทบริการและตง้ั คา่ ให้ทางานตอนบตู๊ ระบบ systemctl start mariadb systemctl enable mariadb

3. กาหนดรหสั ผ่านให้ MariaDB mysql_secure_installation

so you should just press enter here. Enter current password for root (enter for none): Enter ## กด enter เพอ่ื เซ็ตรหัสผ่านคร้ังแรก OK, successfully used password, moving on... Set root password? [Y/n] y ## กาหนดรหัสผ่าน New password: ***** ## รหัสผา่ น Re-enter new password: ***** ## ยนื ยันรหสั ผา่ น Password updated successfully! Reloading privilege tables.. ... Success! Remove anonymous users? [Y/n] y ## ลบแอคเคาต์ผู้ใช้ภายนอกไม่ใหเ้ ข้าระบบ ... Success! Disallow root login remotely? [Y/n] y ## ไม่อนุญาตใิ ห้เขา้ มาจากโดเมนภายนอก ... Success! Remove test database and access to it? [Y/n] y ## ลบฐานขอ้ มลู ตวั อย่าง - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ## ให้ฐานข้อมูลใชง้ านไดต้ อนน้ี ... Success!

4. กาหนดให้ MariaDB สามารถใช้งานผ่าน firewall ได้ (กรณเี ปดิ ใชง้ าน firewalld) firewall-cmd --permanent --zone=public --add-service=mysql systemctl restart firewalld

5. ทดสอบเขา้ ใช้งาน mysql -u root -p

Enter password: ***** ## รหสั ผา่ นฐานข้อมลู Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 15 Server version: 5.5.44-MariaDB MariaDB Server Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>

--STEP3: ติดต้ังตวั แปลภาษา PHP 1. ติดตง้ั PHP 7.3 ///////////////////////

yum install epel-release yum-utils

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

yum-config-manager --enable remi-php73

yum -y install php php-common php-opcache php-mcrypt php-cli php-gd php-curl

php-mysqlnd

yum install -y php-xml php-soap php-xmlrpc php-mbstring php-json php-intl

yum install -y install php-pecl-zip

2. ตรวจสอบเวอร์ช่นั PHP # php -v 3. รีสตา๊ ท Apache

systemctl restart httpd *************************************************************************************** --STEP4: ตดิ ตงั้ phpMyAdmin 1. ติดตง้ั phpMyAdmin

yum install -y phpMyAdmin 2. ปรบั แตง่ ไฟล์คอนฟิก โดยกาหนดไอพีทีอ่ นญุ าตใิ ห้เขา้ ใชง้ าน

# vi /etc/httpd/conf.d/phpMyAdmin.conf

Apache 2.4

# Require ip 127.0.0.1 # Require ip ::1 Require all granted 3. mysql_full_unicode

vi /etc/my.cnf.d/server.cnf

[mysqld] innodb_file_format = Barracuda innodb_file_per_table = 1 innodb_large_prefix character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci skip-character-set-client-handshake //////////////////////////////////////////////////// ///////////////////////////////////////// 3. ทาการรีสต๊าท Apache

systemctl restart httpd 4. ทดสอบเขา้ ใช้งานจากเครือ่ งลกู ขา่ ย

http://IP_Address/phpMyAdmin/ เช่น http://10.0.0.123/phpMyAdmin/ //////////////////////////////////////////// 5. ปรับแตง่ ไฟล์คอนฟิก php.ini # vi /etc/php.ini 368 max_execution_time = 30 เปลี่ยน =60 389 memory_limit = 128M เปลย่ี น =512M 378 max_input_time = 60 เปล่ยี น =120 656 post_max_size = 8M เปลยี่ น = 200M 799 upload_max_filesize = 2M เปล่ียน =200M systemctl restart httpd

การติดตัง้ moodle3.7+

***************************************************************************** ตดิ ตัง้ Moodle กรณี moodle 3.7+ PHP 7.1, MariaDB 5.5.31 or MySQL 5.6 or Postgres 9.4 or MSSQL 2008 or Oracle 11.2 ****************************************************************************** --STEP1: ดาวน์โหลดไฟล์

wget https://download.moodle.org/stable37/moodle-latest-37.tgz

--STEP2: แตกไฟล์

tar -zxvf moodle-latest-37.tgz

--STEP3: ยา้ ยไดเร็คเตอร่ี moodle

mv moodle/ /var/www/html/

--STEP4: สรา้ ง moodledata

mkdir /home/moodledata

--STEP5: เปลี่ยนpermission

chown apache.apache -R /var/www/html

chown apache.apache -R /home/moodledata

************************************************************************** เร่ิมติดตั้ง moodle จาก web browser --STEP1: ตง้ั ค่า database http://IP_Address/phpMyAdmin/ เชน่

http://192.168.3.133/phpMyAdmin/

--STEP2: ติดตัง้ moodle http://IP_Address/ moodle/

เช่น http://192.168.3.133/moodle/

จากหน้าจอกดปุ่ม Next

จากหนา้ จอคลิก Next จากหน้าจอกดปุ่ม Next จากหนา้ จอให้ตรวจสอบการตั้งค่า database กดป่มุ Next

จากหนา้ จอกดปมุ่ Continue จากหน้าจอกดปุ่ม Continue หนา้ จอเรมิ่ ติดต้งั ใหร้ อจนเสรจ็ แลว้ กดป่มุ Continue

ตง้ั ค่าในสว่ นของ Adminเสรจ็ แลว้ กดป่มุ Update profile ตง้ั คา่ ในส่วนของชอ่ื web ตง้ั คา่ เสร็จแลว้ กดปุ่ม Save changes

////////////////////////////////////////////////////////////////////////////// ครนู ้อย 11/07/60 https://www.facebook.com/MoodleThailand/ ID:e27asy

การ backup moodle

ทาเพ่อื ความปลอดภยั ในการใชง้ าน Moodle หากมปี ัญหาการใช้งานเราก็สามารถกรู้ ะบบคืนได้ โดยง่ายดงั น้ันเราจงึ ควรสารองระบบท้ังหมดมาไวท้ ่ี Server จาลองในเครอ่ื งของเราซึ่งตดิ ต้งั ดว้ ย Appserv ในตวั อยา่ งจะเปน็ การสารองระบบ e-learning ข้อมูลใน Server Moodle ท่เี ปน็ Server จริง

IP Server 202.29.229.253

โฟลเดอร์ moodledata อยูท่ ี่ /var/www

โฟลเดอร์ moodle อยู่ที่ /var/www/html เปน็ โฟลเดอร์ท่ใี ชต้ ดิ ตงั้ Moodle ดังนนั้ เวลา

เข้าใชง้ านตอ้ งเรียก http://202.29.229.253/moodle

ขั้นตอนโดยสรปุ ของการสารองระบบ 1. zip โฟลเดอร์ moodledata ซง่ึ เป็นโฟลเดอรท์ บ่ี รรจุขอ้ มลู ไฟล์ การบ้าน งาน และภาพตา่ งๆ ท่ี user upload ข้นึ มา 2. zip โฟลเดอร์ moodle ซ่ึงเปน็ โฟลเดอรท์ ตี่ ดิ ตง้ั Moodle 3. Export ฐานขอ้ มลู moodle 4. นาขอ้ มูลขอ้ 1-3 ยา้ ยกลบั มาที่ server ใหม่ 5. เปล่ยี นแปลงรายละเอียดในไฟล์ config.php 6. ทดสอบการใช้งาน ตอ่ ไปก็เปน็ รายละเอยี ดในการทาของ 6 ข้อข้างต้น

วิธี backup Moodle จาก Server

1. ใช้คาสั่ง tar สาเนาโฟลเดอร์ moodledata

cd /home ***เข้าไปยังโฟลเดอร์ที่ moodledata อยู่

tar -zcvf /home/moodledata.tar.gz moodledata ***zip โฟลเดอร์ moodledata ไป

ไวท้ ่ี /home

2. ใช้คาสงั่ tar สาเนาโฟลเดอร์ moodle (ข้อความหลเั ครอื่ งหมาย # เป็นคาอธบิ าย)

cd /var/www/html/ ***เข้าไปยังโฟลเดอร์ท่ี moodle อยู่

tar -zcvf moodle.tar.gz moodle

3. Export ฐานข้อมูล moodle โดยใช้คาส่งั mysql ดังนี้ mysqldump -u [username] -p db1 > db1-backup.sql

mysqldump -u root -p moodle > moodle.sql

***moodleคือชื่อฐานข้อมูลท่ีเราต้องการ backup และบันทึกไว้เปน็ ไฟล์ชื่อ moodle.sql

ในการ Export ฐานขอ้ มูลนี้ถา้ จะใหส้ ะดวก รวดเรว็ พบปญั หานอ้ ยทสี่ ดุ แนะนาว่าใช้ phpMyAdmin ชว่ ย

วิธีคืนคา่ moodle ท่ี backup มา

หลังจากท่ีเรา backup moodle มาเก็บไว้แลว้ หากเราขยันทา server ใหม่จนเสรจ็ แล้วอยากเอา moodle กลับไปไว้ใน server อีกเพ่อื ให้นกั เรียนเข้ามาใชง้ านไดผ้ ่านอนิ เตอร์เนต็ หรอื เราไปเช่า host แลว้ อยากเอา moodle ขึ้นไปไวโ้ ดยไมต่ ้องตดิ ตง้ั ใหม่ ให้ทาด้งนี้

1. นาขอ้ มลู ท่ี backup ไว้ขึน้ ไปวางใน host ของเราแลว้ แตกไฟล์ zip ถา้ ข้อมลู เป็นไฟล์ zip 2. ยา้ ยโฟลเดอร์ moodledata ไปไวท้ ี่ /home

tar -zxvf modledata.tar.gz

3. ยา้ ยโฟลเดอร์ moodle ไปไวท้ ่ี /var/www/html/

tar -zxvf moodle.tar.gz

4.

chown apache.apache -R /var/www/html

chown apache.apache -R /home/moodledata

5. Import ฐานข้อมูล moodle โดยใชค้ าสงั่ mysql ดงั น้ี

mysql -u [username] -p db1 < db1-backup.sql

mysql -u root -p moodle < moodle.sql

5. เปล่ียนแปลงรายละเอยี ดในไฟล์ config.php แก้ไขตัวหนา

vi /var/www/html/moodle/config.php

<?php /// Moodle Configuration File

$CFG->dbname = ‘moodle’;

$CFG->dbuser = ‘root‘; เปลีย่ นชอ่ื user ทเี่ ขา้ ถงึ ฐานข้อมลู ไดเ้ ชน่ root admin

$CFG->dbpass = ‘123456‘; เปล่ยี นเป็นรหสั ผ่าน root mysql ใน appserv

$CFG->wwwroot = ‘http://202.143.137.38/moodle‘; เปลีย่ นเปน็ path ของ host

$CFG->dirroot = ‘/var/www/html/moodle‘; เปล่ียนเป็น path ของ host

$CFG->dataroot = ‘/home/moodledata‘; เปล่ยี นเปน็ path ของ host

7. ทดสอบการใช้งาน