CentOS 7にNginx 1.15、MariaDB 10、およびPHP 7をインストールする方法

この記事では、LEMPスタック(LinuxNginxMariaDBPHP)およびPHP-FPMRHEL/CentOS 7/6およびFedora 26-29サーバーにyumおよびdnfパッケージマネージャーを使用してインストールする方法を説明します。

このプロセス中に、これらのパッケージの最新バージョンをインストールできるようにするために、EpelRemiNginxMariaDBリポジトリをインストールおよび有効化します。

関連記事: CentOS 7にApache、MySQL 8またはMariaDB 10およびPHP 7をインストールする

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

EPELEnterprise Linuxの追加パッケージ)は、RHELベースのLinuxディストリビューション向けのアドオンソフトウェアパッケージを提供するコミュニティベースのリポジトリです。

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

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: NginxとMariaDBリポジトリのインストール

Nginxリポジトリは/etc/yum.repos.d/nginx.repoという名前のファイルを作成します。

RHEL 7/6用:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

CentOS 7/6用:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

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 

ステップ4: NgnixとMariaDBのインストール

NginxEngine X)は、オープンソースで堅牢で軽量で高性能なWebサーバーであり、HTTP、SMTP、POP3およびIMAPプロトコル用のリバースプロキシサーバーおよびメールプロキシサーバーです。詳細については、http://wiki.nginx.org/Overviewを参照してください。

MariaDBは、よく知られたMySQLのフォークであり、世界で最も人気のあるリレーショナルデータベース管理システム(RDBMS)の1つです。完全にコミュニティによって開発されており、そのためFOSSであり、GPLと互換性があることが意図されています。

NgnixMariaDBをインストールするには、次のコマンドを実行します。

----------- Installing on RHEL/CentOS 7/6 ----------- 
# yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

----------- Installing on Fedora ----------- 
# dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

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

PHPハイパーテキストプリプロセッサ)は、Web開発に最適な、フリーかつオープンソースのサーバーサイドスクリプト言語です。ウェブサイトの動的なウェブページを生成するために使用され、*nixサーバーで最も頻繁に見られます。PHPの利点の1つは、さまざまなモジュールを使用して簡単に拡張できることです。

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

# 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モジュールをすべてインストールします。

------ On RHEL/CentOS 7/6 ------
# yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm 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-fpm 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

ステップ6:Apacheサービスの停止と無効化

デフォルトでは、ApacheNginxは同じポート(TCP 80)でリッスンします。そのため、サーバーにApacheがインストールされている場合は、Nginxを使用するためにそれを停止して無効化/マスク(サービスを/dev/nullにリンクする無効化の強化バージョン)する必要があります。または、もう使用しない場合は削除することもできます。

# systemctl stop httpd 
# systemctl disable httpd 
or 
# systemctl mask httpd 

ステップ7:Nginx、MariaDB、PHP-FPMの起動/停止

----------- Enable Nginx, MariaDB and PHP-FPM on Boot ----------- 
# systemctl enable nginx 
# systemctl enable mariadb 
# systemctl enable php-fpm 
 
----------- Start Nginx, MariaDB and PHP-FPM ----------- 
# systemctl start nginx 
# systemctl start mariadb 
# systemctl start php-fpm 

ステップ8:NginxとPHP-FPMの設定

今回は、ウェブサイト(Nginxでの仮想ホストまたはサーバーブロックと呼ばれるもの)のディレクトリ構造を作成します。これは/srv/www/以下に行います。この例ではwww.tecmint.comを使用しますが、他のドメインとメインディレクトリを選んでいただいても構いません。

# mkdir -p /srv/www/tecmint/public_html 
# mkdir /srv/www/tecmint/logs 
# chown -R nginx:nginx /srv/www/tecmint  

ステップ9:Nginx仮想ホストディレクトリの設定

多くのWebサーバーにおける特徴の1つとして、1台のマシンから複数のサイトを運用できるという能力があります。ここからは、サーバーブロック(Apacheでの仮想ホストとして知られるもの)を保存するディレクトリを作成します。/etc/nginx以下に配置します。

# mkdir /etc/nginx/sites-available 
# mkdir /etc/nginx/sites-enabled 

次のコード行は、/etc/nginx/nginx.confのhttpブロックを閉じる前に挿入する必要があります。これにより、Nginxが実行されているときに/etc/nginx/sites-enabledディレクトリ内の構成ファイルが考慮されるようになります。

## Load virtual host conf files. ## 
include /etc/nginx/sites-enabled/*; 
Configuring Nginx VirtualHost

tecmint.comのサーバーブロックを作成するには、次のコード行を/etc/nginx/sites-available/tecmintに追加します(このファイルは、好きなテキストエディタを起動してフルパスを入力すると作成されます)。これは基本的な仮想ホスト構成ファイルです。

server { 
	listen 80 default; 
	server_name tecmint; 
	access_log /srv/www/tecmint/logs/access.log; 
	error_log /srv/www/tecmint/logs/error.log; 
	root /srv/www/tecmint/public_html; 
	location ~* \.php$ { 
	fastcgi_index   index.php; 
	fastcgi_pass    127.0.0.1:9000; 
	include         fastcgi_params; 
	fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name; 
	fastcgi_param   SCRIPT_NAME        $fastcgi_script_name; 
	} 
} 

仮想ホストを「有効化」するプロセスは、tecmint仮想ホストの定義から/etc/nginx/sites-enabledへのシンボリックリンクを作成することです。

# ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint 

行ってきた変更を実際に適用するには、Nginxを再起動する必要があります。その前に構成ファイルの構文エラーをチェックすることが時々役立ちます。

# nginx -t 
# systemctl restart nginx 
# systemctl status nginx 
Restart Nginx and Verify Status

新しく作成した仮想ホストにアクセスするには、ドメイン名の基本的な解決方法として、/etc/hostsに以下の行を追加する必要があります。

192.168.0.18	www.tecmint.com tecmint.com 

ステップ10:Nginx、MySQL、PHP、PHP-FPMのテスト

PHPのテストは従来の方法で行います。 /srv/www/tecmint/public_html/test.phpというファイルを作成し、以下のコードを追加してください。

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

<?php 
	phpinfo(); 
?> 

ウェブブラウザを http://tecmint/test.php に向け、インストールされたモジュールと追加ソフトウェアの存在を確認してください。

おめでとうございます!これで、LEMP スタックの動作するインストールが完了しました。何か予期しない問題が発生した場合は、以下のフォームを使用してお問い合わせください。質問や提案も歓迎します。

Source:
https://www.tecmint.com/install-nginx-mariadb-php-rhel-centos-fedora/