CentOS 7にApache、MySQL 8、またはMariaDB10とPHP7をインストールします


このハウツーガイドでは、最新バージョンのApache、MySQL 8、MariaDB 10、PHP 7を、必要なPHPモジュールとともにRHEL/CentOS7/6およびFedora24-29にインストールする方法について説明します。

オペレーティングシステム(Linux)とWebサーバー(Apache)、データベースサーバー(MariaDB/MySQL)、およびサーバー側スクリプト言語(PHP)のこの組み合わせは、LAMPスタックと呼ばれます。

2015年9月以降、PHP 5.4はPHPチームによってサポートされなくなり、保守終了に達しました。それでも、PHP5.4にはマイナーバージョン変更のあるRHEL/CentOS 7/6が付属しており、Red Hatはそれをサポートしているため、より高いバージョンにアップグレードします。バージョンは必要ありません。ただし、セキュリティとパフォーマンスを向上させるために、PHP5.4をPHP5.5 +にアップグレードすることを強くお勧めします。

現在のLinuxディストリビューションには次のものが付属しています。

これを行うには、EPELとRemiリポジトリを有効にし、yumとdnf(Fedoraで利用可能な新しいパッケージ管理ツール)を使用します。

ステップ1:EPELとRemiリポジトリをインストールする

EPEL(Enterprise Linux用の追加パッケージ)は、コミュニティベースのリポジトリであり、RHELベースのLinuxディストリビューション用のアドオンソフトウェアパッケージを提供します。

Remiは、FedoraおよびEnterprise Linuxディストリビューションにインストールするための最新バージョンのPHPスタック(フル機能)を見つけることができるリポジトリです。

# 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
# 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
# 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:ApacheWebサーバーをインストールする

Apacheは、ほとんどのUNIXベースのオペレーティングシステムとWindowsで実行される無料のオープンソースHTTPWebサーバーです。そのため、静的なWebページを提供し、動的なコンテンツを処理するために使用できます。最近の報告によると、ApacheはWebサイトやインターネットに接続されたコンピューターで使用されるナンバーワンのサーバーです。

Apache Webサーバーをインストールするには、最初にシステムソフトウェアパッケージを更新し、次のコマンドを使用してインストールします。

# yum -y update
# yum install httpd

Apache Webサーバーをインストールしたら、システムの起動時に自動起動できるようにすることができます。

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd

Firewalldを実行している場合は、ファイアウォールでApacheトラフィックを許可していることを確認してください。

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

ステップ3:Remiリポジトリを使用してPHPをインストールする

PHP(Hypertext Preprocessor)は、Web開発に最適な無料のオープンソースサーバーサイドスクリプト言語です。これは、Webサイトの動的Webページを作成するために使用でき、* nixサーバーで最も頻繁に見られます。 PHPの利点の1つは、さまざまなモジュールを使用して簡単に拡張できることです。

PHPをインストールするには、最初に yum-utils をインストールして、Remiリポジトリを有効にする必要があります。これは、yumリポジトリとパッケージを管理するための便利なプログラムのコレクションです。

# yum install yum-utils

インストールしたら、 yum-utils が提供するyum-config-managerを使用して、示されているように、さまざまなPHPバージョンをインストールするためのデフォルトリポジトリとしてRemiリポジトリを有効にできます。

たとえば、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関連のモジュールをさらに検索できます(おそらく、Webアプリケーションに必要な特定の機能を統合するため)。

------ 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) – a dynamic shared object that will add MariaDB support to PHP.
  2. PostgreSQL (php-pgsql) – PostgreSQL database support for PHP.
  3. MongoDB (php-pecl-mongo) – An interface for communicating with the MongoDB database in PHP.
  4. Generic (php-pdo) – A dynamic shared object that will add a database access abstraction layer to PHP.
  5. Memcache (php-pecl-memcache) – Memcached is a caching daemon designed especially for dynamic web applications to decrease database load by storing objects in memory.
  6. Memcached (php-pecl-memcached) – An extension that uses the libmemcached library to provide API for communicating with memcached servers.
  7. GD (php-gd) – A dynamic share object that adds support for using the gd graphics library to PHP.
  8. XML (php-xml) – A dynamic shared objects that adds support to PHP for manipulating XML documents.
  9. MBString (php-mbstring) – An extension to handle multi-byte string in PHP applications.
  10. MCrypt (php-mcrypt) – A Mcrypt library for PHP scripts.
  11. APC (php-pecl-apcu) – APC module used to optimize and cache PHP code.
  12. CLI (php-cli) – Command-line interface for PHP.
  13. PEAR (php-pear) – Application Repository framework for 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は、複数のデータベースへのマルチユーザーアクセスを提供することで任意のサーバーを実行する、世界で最も人気のあるオープンソースのリレーショナルデータベース管理システム(RDBMS)の1つです。 MySQLはApacheで実行されます。

最新のMySQL8.0バージョンをインストールするには、次のコマンドを使用して公式のMySQLYumソフトウェアリポジトリをインストールして有効にします。

# 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]

Linuxプラットフォーム用のMySQLYumソフトウェアリポジトリをインストールした後、次のコマンドを使用して最新バージョンのMySQL(現在は8.0)をインストールします。

# yum install mysql-community-server      [On RHEL/CentOS]
# dnf install mysql-community-server      [On Fedora]

MySQLが正常にインストールされたら、次のコマンドを使用してMySQLサーバーを起動します。

# service mysqld start

MySQL8データベースのインストールを保護する方法に関する記事を確認してください。

MariaDBは、世界で最も人気のあるリレーショナルデータベース管理システム(RDBMS)の1つである有名なMySQLのフォークです。これは完全にコミュニティによって開発されているため、FOSSを維持し、GPLとの互換性を維持することを目的としています。

MySQLユーザーである場合、またはこれまでに行ったことがある場合、MariaDBへの移行は非常に簡単なプロセスです。データベースへの接続、バックアップ、復元、および管理を行うための一般的なコマンドは、両方のRDBMSで同じです。

最新のRHEL/CentOS 7ディストリビューションでは、MariaDBはMySQLのドロップイン代替品であり、RHEL/CentOS 6ではMySQLは同じままであり、デフォルトのリポジトリからRHEL/CentOS 6にMariaDBをインストールすることはできませんが、MariaDBを使用してインストールできます。公式のMariaDBリポジトリ。

RHEL/CentOS 7ディストリビューションでMariaDBリポジトリを有効にするには、次の内容の /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/CentOS6に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を有効/起動する

------ Enable Apache and MariaDB on Boot ------
# systemctl enable httpd
# systemctl enable mariadb

------ Start Apache and MariaDB ------
# systemctl start httpd
# systemctl start mariadb
------ 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をテストする古典的な方法に固執しましょう。/var/www/htmlの下に test.php というファイルを作成し、次のコード行を追加します。

phpinfo()関数は、現在のPHPインストールに関する多くの情報を表示します。

<?php
	phpinfo();
?>

次に、Webブラウザで http:// [server] /test.php を指定し、ページを下にスクロールして、インストールされているモジュールと追加のソフトウェアの存在を確認します( [server] ドメインまたはサーバーのIPアドレスを使用)。出力は次のようになります。

おめでとう!これで、LAMPスタックの最新の作業インストールが完了しました。期待どおりに進まなかった場合は、以下のフォームからお気軽にお問い合わせください。質問や提案も大歓迎です。

注:ここに記載されている手順に従ってカスタムリポジトリを作成することにより、MariaDBを他のディストリビューションにインストールすることもできます。