ติดตั้ง Apache, MySQL 8 หรือ MariaDB 10 และ PHP 7 บน CentOS 7
คู่มือวิธีการนี้จะอธิบายวิธีการติดตั้งเวอร์ชันล่าสุดของ Apache, MySQL 8 หรือ MariaDB 10 และ PHP 7 พร้อมด้วยโมดูล PHP ที่จำเป็นบน RHEL/CentOS 7/6 และ Fedora 24-29
การรวมกันของระบบปฏิบัติการ (Linux) กับเว็บเซิร์ฟเวอร์ (Apache), เซิร์ฟเวอร์ฐานข้อมูล (MariaDB/MySQL) และการเขียนสคริปต์ฝั่งเซิร์ฟเวอร์ ภาษา (PHP) เรียกว่าสแต็ก LAMP
อย่าพลาด: วิธีติดตั้ง Nginx 1.15, MariaDB 10 และ PHP 7 บน CentOS 7
ตั้งแต่เดือนกันยายน 2015 PHP 5.4 ไม่ได้รับการสนับสนุนจากทีมงาน PHP อีกต่อไป และถึงจุดสิ้นสุดแล้ว แต่ PHP 5.4 มาพร้อมกับ RHEL/CentOS 7 /6 โดยมีการเปลี่ยนแปลงเวอร์ชันเล็กน้อยและ Red Hat รองรับ ดังนั้นจึงไม่จำเป็นต้องอัปเกรดเป็นเวอร์ชันที่สูงกว่า อย่างไรก็ตาม ขอแนะนำเป็นอย่างยิ่งให้อัปเกรด PHP 5.4 เป็น PHP 5.5+ เพื่อความปลอดภัยและประสิทธิภาพที่ดียิ่งขึ้น
นี่คือสิ่งที่การกระจาย Linux ปัจจุบันของคุณมาพร้อมกับ:
PHP Current Version | RHEL/CentOS 7 | RHEL/CentOS 6 |
---|---|---|
7.3 | 5.4 | 5.3 |
ในการดำเนินการนี้ เราจะเปิดใช้งานพื้นที่เก็บข้อมูล EPEL และ Remi และใช้ yum และ dnf (เครื่องมือการจัดการแพ็คเกจใหม่ที่มีให้ใช้งานใน Fedora)
ขั้นตอนที่ 1: การติดตั้ง EPEL และ Remi Repository
EPEL (แพ็คเกจพิเศษสำหรับ Enterprise Linux) คือพื้นที่เก็บข้อมูลในชุมชนที่นำเสนอแพ็คเกจซอฟต์แวร์เสริมสำหรับการแจกจ่าย Linux ที่ใช้ RHEL
Remi คือพื้นที่เก็บข้อมูลที่คุณสามารถค้นหาเวอร์ชันล่าสุดของสแต็ก PHP (คุณลักษณะครบถ้วน) สำหรับการติดตั้งใน Fedora และ Enterprise Linux
บน RHEL/CentOS 7
yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
------ For RHEL 7 Only ------
subscription-manager repos --enable=rhel-7-server-optional-rpms
บน RHEL/CentOS 6
yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
------ For RHEL 6 Only ------
subscription-manager repos --enable=rhel-6-server-optional-rpms
ใน Fedora 24-29
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm [On Fedora 29]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm [On Fedora 28]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm [On Fedora 27]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm [On Fedora 26]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm [On Fedora 25]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm [On Fedora 24]
ขั้นตอนที่ 2: การติดตั้ง Apache เว็บเซิร์ฟเวอร์
Apache เป็นเว็บเซิร์ฟเวอร์ HTTP แบบโอเพ่นซอร์สฟรีที่ทำงานบนระบบปฏิบัติการที่ใช้ UNIX ส่วนใหญ่และบน Windows ด้วยเหตุนี้ จึงสามารถใช้เพื่อให้บริการหน้าเว็บแบบคงที่และจัดการเนื้อหาแบบไดนามิกได้ รายงานล่าสุดแสดงให้เห็นว่า Apache เป็นเซิร์ฟเวอร์อันดับหนึ่งที่ใช้ในเว็บไซต์และคอมพิวเตอร์ที่เชื่อมต่อกับอินเทอร์เน็ต
หากต้องการติดตั้งเว็บเซิร์ฟเวอร์ Apache ก่อนอื่นให้อัปเดตแพ็คเกจซอฟต์แวร์ระบบและติดตั้งโดยใช้คำสั่งต่อไปนี้
yum -y update
yum install httpd
เมื่อติดตั้งเว็บเซิร์ฟเวอร์ Apache แล้ว คุณสามารถเริ่มเปิดใช้งานให้เริ่มต้นอัตโนมัติเมื่อบูตระบบได้
systemctl start httpd
systemctl enable httpd
systemctl status httpd
หากคุณใช้ ไฟร์วอลล์ ตรวจสอบให้แน่ใจว่าได้อนุญาตการรับส่งข้อมูล Apache บนไฟร์วอลล์
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload
ขั้นตอนที่ 3: การติดตั้ง PHP โดยใช้ Remi Repository
PHP (Hypertext Preprocessor) เป็นภาษาสคริปต์ฝั่งเซิร์ฟเวอร์แบบโอเพนซอร์สและฟรีซึ่งเหมาะที่สุดสำหรับการพัฒนาเว็บ สามารถใช้เพื่อสร้างเว็บเพจแบบไดนามิกสำหรับเว็บไซต์ และพบได้บ่อยที่สุดในเซิร์ฟเวอร์ *nix ข้อดีอย่างหนึ่งของ PHP ก็คือสามารถขยายได้อย่างง่ายดายผ่านการใช้โมดูลที่หลากหลาย
หากต้องการติดตั้ง PHP ขั้นแรกคุณต้องเปิดใช้งานพื้นที่เก็บข้อมูล Remi โดยการติดตั้ง yum-utils
ซึ่งเป็นชุดของโปรแกรมที่มีประโยชน์สำหรับการจัดการพื้นที่เก็บข้อมูลและแพ็กเกจ yum
yum install yum-utils
เมื่อติดตั้งแล้ว คุณสามารถใช้ yum-config-manager ที่ได้รับจาก yum-utils
เพื่อเปิดใช้งานพื้นที่เก็บข้อมูล Remi เป็นพื้นที่เก็บข้อมูลเริ่มต้นสำหรับการติดตั้ง PHP เวอร์ชันต่างๆ ดังที่แสดง
ตัวอย่างเช่น หากต้องการติดตั้งเวอร์ชัน PHP 7.x ให้ใช้คำสั่งต่อไปนี้
------------- On CentOS & RHEL -------------
yum-config-manager --enable remi-php70 && yum install php [Install PHP 7.0]
yum-config-manager --enable remi-php71 && yum install php [Install PHP 7.1]
yum-config-manager --enable remi-php72 && yum install php [Install PHP 7.2]
yum-config-manager --enable remi-php73 && yum install php [Install PHP 7.3]
------------- On Fedora -------------
dnf --enablerepo=remi install php70 [Install PHP 7.0]
dnf --enablerepo=remi install php71 [Install PHP 7.1]
dnf --enablerepo=remi install php72 [Install PHP 7.2]
dnf --enablerepo=remi install php73 [Install PHP 7.3]
ต่อไป เราจะติดตั้งโมดูล PHP ต่อไปนี้ทั้งหมดในบทความนี้ คุณสามารถค้นหาโมดูลที่เกี่ยวข้องกับ PHP เพิ่มเติมได้ (อาจรวมฟังก์ชันเฉพาะที่เว็บแอปพลิเคชันของคุณต้องการ) ด้วยคำสั่งต่อไปนี้:
------ RHEL/CentOS 7/6------
yum search all php
------ Fedora ------
dnf search all php
โดยไม่คำนึงถึงการกระจาย คำสั่งข้างต้นส่งคืนรายการแพ็คเกจในพื้นที่เก็บข้อมูลที่เปิดใช้งานในปัจจุบันซึ่งมีคำว่า php
ในชื่อแพ็คเกจและ/หรือคำอธิบาย
นี่คือแพ็คเกจที่เราจะติดตั้ง โปรดทราบว่าตัวเชื่อมต่อ MySQL (PHP, Perl, Python, Java ฯลฯ) จะทำงานไม่เปลี่ยนแปลงกับ MariaDB เนื่องจากทั้งสองระบบใช้โปรโตคอลไคลเอนต์เดียวกันและไลบรารีไคลเอนต์เดียวกัน เข้ากันได้กับไบนารี
- MariaDB/MySQL (php-mysql) – ออบเจ็กต์ที่ใช้ร่วมกันแบบไดนามิกที่จะเพิ่มการรองรับ MariaDB ให้กับ PHP
- PostgreSQL (php-pgsql) – รองรับฐานข้อมูล PostgreSQL สำหรับ PHP
- MongoDB (php-pecl-mongo) – อินเทอร์เฟซสำหรับการสื่อสารกับฐานข้อมูล MongoDB ใน PHP
- ทั่วไป (php-pdo) – ออบเจ็กต์ที่ใช้ร่วมกันแบบไดนามิกที่จะเพิ่มเลเยอร์นามธรรมการเข้าถึงฐานข้อมูลให้กับ PHP
- Memcache (php-pecl-memcache) – Memcached เป็นเดมอนแคชที่ออกแบบมาโดยเฉพาะสำหรับแอปพลิเคชันเว็บไดนามิก เพื่อลดภาระของฐานข้อมูลโดยการจัดเก็บอ็อบเจ็กต์ไว้ในหน่วยความจำ
- Memcached (php-pecl-memcached) – ส่วนขยายที่ใช้ไลบรารี libmemcached เพื่อจัดเตรียม API สำหรับการสื่อสารกับเซิร์ฟเวอร์ memcached
- GD (php-gd) – ออบเจ็กต์การแบ่งปันแบบไดนามิกที่เพิ่มการรองรับสำหรับการใช้ไลบรารีกราฟิก gd ให้กับ PHP
- XML (php-xml) – ออบเจ็กต์ที่ใช้ร่วมกันแบบไดนามิกที่เพิ่มการรองรับ PHP สำหรับการจัดการเอกสาร XML
- MBString (php-mbstring) – ส่วนขยายสำหรับจัดการสตริงแบบหลายไบต์ในแอปพลิเคชัน PHP
- MCrypt (php-mcrypt) – ไลบรารี Mcrypt สำหรับสคริปต์ PHP
- APC (php-pecl-apcu) – โมดูล APC ใช้เพื่อเพิ่มประสิทธิภาพและแคชโค้ด PHP
- CLI (php-cli) – อินเทอร์เฟซบรรทัดคำสั่งสำหรับ PHP
- PEAR (php-pear) – เฟรมเวิร์กพื้นที่เก็บข้อมูลแอปพลิเคชันสำหรับ PHP
ติดตั้งโมดูล PHP ที่จำเป็นต่อไปนี้ด้วยคำสั่งด้านล่าง
------ On RHEL/CentOS 7/6 ------
yum --enablerepo=remi install php-mysqlnd php-pgsql php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear
------ On Fedora ------
dnf --enablerepo=remi install php-mysqlnd php-pgsql php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear
ขั้นตอนที่ 4: การติดตั้งฐานข้อมูล MySQL หรือ MariaDB
ในส่วนนี้ เราจะแสดงการติดตั้งทั้งฐานข้อมูล MySQL และ MariaDB ดังนั้นจึงขึ้นอยู่กับคุณว่าจะเลือกอะไรตามความต้องการของคุณ
การติดตั้งเซิร์ฟเวอร์ฐานข้อมูล MySQL 8
MySQL คือหนึ่งในระบบจัดการฐานข้อมูลเชิงสัมพันธ์แบบโอเพ่นซอร์ส (RDBMS) ที่ได้รับความนิยมมากที่สุดในโลก ซึ่งใช้งานเซิร์ฟเวอร์ใดๆ โดยให้ผู้ใช้หลายคนเข้าถึงฐานข้อมูลหลายฐานข้อมูลได้ MySQL ทำงานด้วย Apache
หากต้องการติดตั้ง MySQL 8.0 เวอร์ชันล่าสุด เราจะติดตั้งและเปิดใช้งานพื้นที่เก็บข้อมูลซอฟต์แวร์ MySQL Yum อย่างเป็นทางการโดยใช้คำสั่งต่อไปนี้
rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm [On RHEL/CentOS 7]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el6-1.noarch.rpm [On RHEL/CentOS 6]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc29-1.noarch.rpm [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc28-1.noarch.rpm [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc27-1.noarch.rpm [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc26-1.noarch.rpm [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc25-1.noarch.rpm [On Fedora 29]
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-fc24-1.noarch.rpm [On Fedora 29]
หลังจากติดตั้งที่เก็บซอฟต์แวร์ MySQL Yum สำหรับแพลตฟอร์ม Linux ของคุณแล้ว ตอนนี้ให้ติดตั้ง MySQL เวอร์ชันล่าสุด (ปัจจุบันคือ 8.0) โดยใช้คำสั่งต่อไปนี้
yum install mysql-community-server [On RHEL/CentOS]
dnf install mysql-community-server [On Fedora]
หลังจากติดตั้ง MySQL สำเร็จ ก็ถึงเวลาเริ่มต้นเซิร์ฟเวอร์ MySQL ด้วยคำสั่งต่อไปนี้
service mysqld start
ลองอ่านบทความของเราเกี่ยวกับวิธีรักษาความปลอดภัยการติดตั้งฐานข้อมูล MySQL 8
การติดตั้งเซิร์ฟเวอร์ฐานข้อมูล MariaDB 10
MariaDB เป็นทางแยกของ MySQL ที่รู้จักกันดี ซึ่งเป็นหนึ่งในระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ที่ได้รับความนิยมมากที่สุดในโลก ได้รับการพัฒนาโดยชุมชนทั้งหมด และด้วยเหตุนี้จึงมีจุดมุ่งหมายที่จะคง FOSS และเข้ากันได้กับ GPL
หากคุณเป็นหรือเคยเป็นผู้ใช้ MySQL การย้ายไปยัง MariaDB จะเป็นกระบวนการที่ตรงไปตรงมามาก คำสั่งยอดนิยมในการเชื่อมต่อ สำรองและกู้คืน และจัดการฐานข้อมูลจะเหมือนกันใน RDBMS ทั้งสอง
ในการเผยแพร่ RHEL/CentOS 7 ล่าสุด MariaDB เป็นการแทนที่แบบดรอปอินสำหรับ MySQL และใน RHEL/CentOS 6 MySQL ยังคงเหมือนเดิม และคุณไม่ได้รับอนุญาตให้ติดตั้ง MariaDB บน RHEL/CentOS 6 จากพื้นที่เก็บข้อมูลเริ่มต้น แต่คุณสามารถติดตั้ง MariaDB ได้โดยใช้พื้นที่เก็บข้อมูล MariaDB อย่างเป็นทางการ
หากต้องการเปิดใช้งานพื้นที่เก็บข้อมูล MariaDB บนการกระจาย RHEL/CentOS 7 ให้สร้างไฟล์ชื่อ /etc/yum.repos.d/mariadb.repo
โดยมีเนื้อหาดังต่อไปนี้:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
หมายเหตุ: ตามที่ได้กล่าวไว้ข้างต้น คุณยังสามารถติดตั้ง MariaDB บน RHEL/CentOS 6 โดยใช้พื้นที่เก็บข้อมูล MariaDB อย่างเป็นทางการตามที่ระบุไว้ข้างต้น
หลังจากเปิดใช้งานพื้นที่เก็บข้อมูล MariaDB แล้ว ให้ทำดังนี้
------ On RHEL/CentOS 7 ------
yum --enablerepo=remi install httpd MariaDB-client MariaDB-server
------ On Fedora ------
dnf --enablerepo=remi install httpd MariaDB-client MariaDB-server
ขั้นตอนที่ 5: เปิดใช้งาน/เริ่ม Apache และ MySQL/MariaDB
บน SystemD
------ Enable Apache and MariaDB on Boot ------
systemctl enable httpd
systemctl enable mariadb
------ Start Apache and MariaDB ------
systemctl start httpd
systemctl start mariadb
บน SysVinit
------ Enable Apache and MySQL on Boot ------
chkconfig --levels 235 httpd on
chkconfig --levels 235 mysqld on
------ Start Apache and MySQL ------
/etc/init.d/httpd start
/etc/init.d/mysqld start
ขั้นตอนที่ 6: ตรวจสอบการติดตั้ง PHP
มาดูวิธีทดสอบ PHP แบบคลาสสิกกันดีกว่า สร้างไฟล์ชื่อ test.php
ใต้ /var/www/html และเพิ่มบรรทัดโค้ดต่อไปนี้ลงไป
ฟังก์ชัน phpinfo()
แสดงข้อมูลมากมายเกี่ยวกับการติดตั้ง PHP ในปัจจุบัน:
<?php
phpinfo();
?>
ตอนนี้ให้ชี้เว็บเบราว์เซอร์ของคุณไปที่ http://[server]/test.php
และตรวจสอบการมีอยู่ของโมดูลที่ติดตั้งและซอฟต์แวร์เพิ่มเติมโดยเลื่อนลงไปที่หน้า (แทนที่ [server]
ด้วยโดเมนของคุณหรือที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ) ผลลัพธ์ของคุณควรคล้ายกับ:
ยินดีด้วย! ขณะนี้คุณมีการติดตั้งสแต็ก LAMP ที่ใช้งานได้ล่าสุด หากมีบางอย่างไม่เป็นไปตามที่คาดไว้ โปรดติดต่อเราโดยใช้แบบฟอร์มด้านล่าง ยินดีต้อนรับคำถามและข้อเสนอแนะ
หมายเหตุ: คุณยังสามารถติดตั้ง MariaDB ในการกระจายอื่น ๆ ได้ด้วยการสร้างพื้นที่เก็บข้อมูลที่กำหนดเองโดยทำตามคำแนะนำที่ให้ไว้ที่นี่