ค้นหาเว็บไซต์

ติดตั้ง 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 เนื่องจากทั้งสองระบบใช้โปรโตคอลไคลเอนต์เดียวกันและไลบรารีไคลเอนต์เดียวกัน เข้ากันได้กับไบนารี

  1. MariaDB/MySQL (php-mysql) – ออบเจ็กต์ที่ใช้ร่วมกันแบบไดนามิกที่จะเพิ่มการรองรับ MariaDB ให้กับ PHP
  2. PostgreSQL (php-pgsql) – รองรับฐานข้อมูล PostgreSQL สำหรับ PHP
  3. MongoDB (php-pecl-mongo) – อินเทอร์เฟซสำหรับการสื่อสารกับฐานข้อมูล MongoDB ใน PHP
  4. ทั่วไป (php-pdo) – ออบเจ็กต์ที่ใช้ร่วมกันแบบไดนามิกที่จะเพิ่มเลเยอร์นามธรรมการเข้าถึงฐานข้อมูลให้กับ PHP
  5. Memcache (php-pecl-memcache) – Memcached เป็นเดมอนแคชที่ออกแบบมาโดยเฉพาะสำหรับแอปพลิเคชันเว็บไดนามิก เพื่อลดภาระของฐานข้อมูลโดยการจัดเก็บอ็อบเจ็กต์ไว้ในหน่วยความจำ
  6. Memcached (php-pecl-memcached) – ส่วนขยายที่ใช้ไลบรารี libmemcached เพื่อจัดเตรียม API สำหรับการสื่อสารกับเซิร์ฟเวอร์ memcached
  7. GD (php-gd) – ออบเจ็กต์การแบ่งปันแบบไดนามิกที่เพิ่มการรองรับสำหรับการใช้ไลบรารีกราฟิก gd ให้กับ PHP
  8. XML (php-xml) – ออบเจ็กต์ที่ใช้ร่วมกันแบบไดนามิกที่เพิ่มการรองรับ PHP สำหรับการจัดการเอกสาร XML
  9. MBString (php-mbstring) – ส่วนขยายสำหรับจัดการสตริงแบบหลายไบต์ในแอปพลิเคชัน PHP
  10. MCrypt (php-mcrypt) – ไลบรารี Mcrypt สำหรับสคริปต์ PHP
  11. APC (php-pecl-apcu) – โมดูล APC ใช้เพื่อเพิ่มประสิทธิภาพและแคชโค้ด PHP
  12. CLI (php-cli) – อินเทอร์เฟซบรรทัดคำสั่งสำหรับ PHP
  13. 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 ในการกระจายอื่น ๆ ได้ด้วยการสร้างพื้นที่เก็บข้อมูลที่กำหนดเองโดยทำตามคำแนะนำที่ให้ไว้ที่นี่