CentOS 8.1 で LEMP (Linux+Nginx+MySQL+PHP) 環境を構築する (チュートリアルの詳細)

CentOS 8.1 で LEMP (Linux+Nginx+MySQL+PHP) 環境を構築する (チュートリアルの詳細)

LEMP は、トラフィック量が多く動的な Web サイトを強化するために使用される無料のオープン ソース ツールのグループで構成されるソフトウェア スタックです。 LEMP は、Linux、Nginx (Engine X と発音)、MariaDB/MySQL、PHP の頭字語です。

Nginx は、リバース プロキシとしても機能する、オープン ソースの強力で高性能な Web サーバーです。 MariaDB はユーザーデータを保存するために使用されるデータベース システムであり、PHP は動的な Web ページの開発とサポートに使用されるサーバー側スクリプト言語です。

関連している:

CentOS 8.1 での LAMP (Linux+Apache+MySQL+PHP) 環境の構築https://www.linuxidc.com/Linux/2020-02/162446.htm

この記事では、CentOS 8 Linux ディストリビューションに LEMP サーバーをインストールする方法を説明します。

ステップ1: CentOS 8でパッケージを更新する

まず、次の dnf コマンドを実行して、CentOS 8 Linux 上のリポジトリとパッケージを更新します。

[linuxidc@localhost ~/www.linuxidc.com]$sudo dnf 更新

CentOS 8 パッケージの更新

ステップ2: CentOS 8にNginx Webサーバーをインストールする

パッケージの更新が完了したら、簡単なコマンドを使用して Nginx をインストールします。

[linuxidc@localhost ~/www.linuxidc.com]$sudo dnf nginx をインストール

CentOS 8にNginxをインストールする

このスニペットは、Nginx のインストールが問題なくスムーズに動作したことを示しています。

CentOS 8にNginxをインストールする

インストールが完了したら、システムの起動時に Nginx が自動的に起動するように設定し、コマンドを実行して Nginx が実行されているかどうかを確認します。

[linuxidc@localhost ~/www.linuxidc.com]$sudo systemctl nginx を有効にする

[linuxidc@localhost ~/www.linuxidc.com]$sudo systemctl nginxを起動します

システム起動時にNginxが自動的に起動するように設定する

[linuxidc@localhost ~/www.linuxidc.com]$sudo systemctl status nginx 

Nginx サービスのステータスを確認する

インストールされている Nginx のバージョンを確認するには、コマンドを実行します。

[linuxidc@localhost ~/www.linuxidc.com]$nginx -v

nginx バージョン: nginx/1.14.1

Nginxのバージョンを確認する

Nginx に興味があり、さらに詳しく知りたい場合は、次の rpm コマンドを実行してください。

[linuxidc@localhost ~/www.linuxidc.com]$rpm -qi nginx 

Nginxの詳細を見る

ブラウザを使用して Nginx サーバーが実行中であることを確認するには、URL バーにシステムの IP アドレスまたは Web サイトのアドレスを入力して Enter キーを押します。

「Red Hat Enterprise Linux 上の nginx へようこそ!」という Web ページが表示されます。これは、Nginx Web サーバーが起動して実行されていることを示します。

Nginxウェブページを確認する

ステップ3: CentOS 8にMariaDBをインストールする

MariaDB は MySQL の無料かつオープンソースのフォークであり、MySQL のより優れた代替となる最新の機能を提供します。 MariaDB をインストールするには、コマンドを実行します。

CentOS 8にMariaDBをインストールする

システム起動時に MariaDB が自動的に起動するようにするには、次を実行します。

[linuxidc@localhost ~/www.linuxidc.com]$systemctl mariadbを起動します

[linuxidc@localhost ~/www.linuxidc.com]$systemctl mariadb を有効にする

/etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service のシンボリックリンクを作成しました。

/etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service のシンボリックリンクを作成しました。

/etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service のシンボリックリンクを作成しました。

MariaDBはシステム起動時に自動的に起動します

インストールが完了したら、次のコマンドを使用してステータスを確認します。

MariaDB サービスのステータスを確認する

MariaDB データベース エンジンは安全ではなく、資格情報なしで誰でもログインできます。 MariaDB を強化して保護し、不正アクセスの可能性を最小限に抑えるには、コマンドを実行します。

[linuxidc@localhost ~/www.linuxidc.com]$mysql_secure_installation

注意: このスクリプトのすべての部分を実行することは、すべてのMariaDBで推奨されます。

本番環境で使用されているサーバーです。各ステップを注意深くお読みください。

MariaDBにログインしてセキュリティを確保するには、現在の

ルートユーザーのパスワード。MariaDBをインストールしたばかりで、

まだルートパスワードを設定していないので、パスワードは空白になります。

ここでは Enter キーを押すだけです。

ルートの現在のパスワードを入力してください (なしの場合は入力してください):

ルート パスワード (既に持っている場合) を入力するか、設定するように求められます。以降の各プロンプトに Y と答えます。

パスワードを設定したら、残りの質問に答えて匿名ユーザーを削除し、テスト データベースを削除し、リモート ルート ログインを無効にします。

すべての手順が完了したら、MariaDB サーバーにログインして、MariaDB サーバーのバージョン情報を確認できます (サーバーの保護時に指定したパスワードを入力します)。

[linuxidc@localhost ~/www.linuxidc.com]$mysql -u ルート -p

パスワードを入力してください:

MariaDB モニターへようこそ。コマンドは ; または \g で終わります。

MariaDB接続IDは8です

サーバーバージョン: 10.3.17-MariaDB MariaDB サーバー

Copyright (c) 2000、2018、Oracle、MariaDB Corporation Ab およびその他。

ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。

MariaDB [(なし)]>

MariaDBのバージョンを確認する

ステップ4: CentOS 8にPHP 7をインストールする

最後に、最後の LEMP スタック コンポーネントである PHP をインストールします。PHP は、動的な Web ページの開発によく使用されるスクリプト Web プログラミング言語です。

このガイドの執筆時点での最新バージョンは PHP 7.4 です。 Remi リポジトリを使用してインストールします。 Remi リポジトリは、CentOS ではデフォルトでは利用できない最新の最先端ソフトウェア バージョンが付属する無料のリポジトリです。

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

[linuxidc@localhost ~/www.linuxidc.com]$sudo dnf install https://dl.Fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

次に、以下のコマンドを使用して yum utils をインストールし、remi-repository を有効にします。

[linuxidc@localhost ~/www.linuxidc.com]$sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

yum-utils と Remi-packages を正常にインストールしたら、コマンドを実行してダウンロード可能な PHP モジュールを検索します。

[linuxidc@localhost ~/www.linuxidc.com]$sudo dnf モジュールリスト php

出力には、以下に示すように、利用可能な PHP モジュール、ストリーム、およびインストール構成ファイルが含まれます。

Enterprise Linux 8 用追加パッケージ - x86_64 3.3 MB/秒 | 5.9 MB 00:01

Remi の Enterprise Linux 用モジュラー リポジトリ 7.1 kB/s | 535 kB 01:15

Safe Remi の Enterprise Linux 用 RPM リポジトリ 3.7 kB/s | 1.4 MB 06:27

最後のメタデータ有効期限チェック: 0:00:03 前、2020 年 2 月 26 日水曜日 07:39:24 に実行されました。

CentOS-8 - アプリストリーム

名前ストリームプロファイルの概要

php 7.2 [d][e] 共通 [d]、開発、最小限の PHP スクリプト言語

php 7.3 共通、開発、最小限の PHP スクリプト言語

Remi の Enterprise Linux 8 向けモジュラー リポジトリ - x86_64

名前ストリームプロファイルの概要

php remi-7.2 common [d]、devel、最小限の PHP スクリプト言語

php remi-7.3 common [d]、devel、最小限の PHP スクリプト言語

php remi-7.4 common [d]、devel、最小限の PHP スクリプト言語

ヒント: [d] デフォルト、[e] 有効、[x] 無効、[i] インストール済み

出力は、現在インストールされている PHP バージョンが PHP 7.2 であることを示します。新しいバージョンの PHP 7.4 をインストールするには、PHP モジュールをリセットします。

[linuxidc@localhost ~/www.linuxidc.com]$sudo dnfモジュールリセットphp

PHP モジュールをリセットした後、実行して PHP 7.4 モジュールを有効にします。

[linuxidc@localhost ~/www.linuxidc.com]$sudo dnfモジュールを有効にするphp:remi-7.4

最後に、コマンドを使用して PHP、PHP-FPM (FastCGI Process Manager)、および関連する PHP モジュールをインストールします。

[linuxidc@localhost ~/www.linuxidc.com]$sudo dnf インストール php php-opcache php-gd php-curl php-mysqlnd

インストール済み:

php-7.4.3-1.el8.remi.x86_64

php-gd-7.4.3-1.el8.remi.x86_64

php-mysqlnd-7.4.3-1.el8.remi.x86_64

php-opcache-7.4.3-1.el8.remi.x86_64

nginx-ファイルシステム-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch

php-fpm-7.4.3-1.el8.remi.x86_64

php-mbstring-7.4.3-1.el8.remi.x86_64

php-sodium-7.4.3-1.el8.remi.x86_64

鬼車-6.8.2-1.el8.x86_64

libsodium-1.0.18-2.el8.x86_64

php-pdo-7.4.3-1.el8.remi.x86_64

完了!

インストールされたバージョンが動作することを確認します。

[linuxidc@localhost ~/www.linuxidc.com]$php -v

PHP 7.4.3 (cli) (ビルド: 2020 年 2 月 18 日 11:53:05) ( NTS )

著作権 (c) PHPグループ

Zend Engine v3.4.0、著作権 (c) Zend Technologies

Zend OPcache v7.4.3、著作権 (c)、Zend Technologies

完了!これで、PHP 7.4 がインストールされました。起動時に PHP-FPM を起動して有効にすることも重要です。

[linuxidc@localhost ~/www.linuxidc.com]$sudo systemctl php-fpm を起動します

[sudo] linuxidcのパスワード:

[linuxidc@localhost ~/www.linuxidc.com]$sudo systemctl php-fpm を有効にする

/etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service のシンボリックリンクを作成しました。

ステータスを確認するには、コマンドを実行します。

[linuxidc@localhost ~/www.linuxidc.com]$sudo systemctl ステータス php-fpm

PHP-FPM ステータスを確認する

もう 1 つは、デフォルトでは、PHP-FPM は Apache ユーザーとして実行するように設定されていることです。 ただし、Nginx Web サーバーを実行しているため、Nginx ユーザーに変更する必要があります。

そこで、ファイル/etc/php-fpm.d/www.confを開きます。

[linuxidc@localhost ~/www.linuxidc.com]$sudo nano /etc/php-fpm.d/www.conf

これらの 2 行を見つけます。

ユーザー = apache

グループ = Apache

ここで、両方の値をNginxに変更します。

ユーザー = nginx

グループ = nginx

PHP-FPM を設定する

設定ファイルを保存して終了します。

次に、変更を有効にするために Nginx と PHP-FPM を再起動します。

[linuxidc@localhost ~/www.linuxidc.com]$sudo systemctl nginxを再起動します

[sudo] linuxidcのパスワード:

[linuxidc@localhost ~/www.linuxidc.com]$sudo systemctl php-fpmを再起動します

ステップ5: PHP情報をテストする

デフォルトでは、Nginx の Web ディレクトリ フォルダーは/usr/share/nginx/html/パスにあります。 PHP-FPM をテストするには、phpinfo ファイルを作成します。

[linuxidc@localhost ~/www.linuxidc.com]$cd /usr/share/nginx/html/
[linuxidc@localhost /usr/share/nginx/html]$su

パスワード:

[root@localhost /usr/share/nginx/html]$echo "<?php phpinfo(); ?>" > linuxidc.com.php

ファイルを保存して終了します。

ブラウザを起動し、図に示すように、URL バーに Web サーバーの IP アドレスまたは URL を入力します (この記事では、例として https://www.linuxidc.com を使用します)。

すべてがうまくいけば、実行している PHP のバージョンに関する情報とその他のメトリックが表示されます。

OK、これで完了です。CentOS 8 に LEMP サーバー スタックが正常にインストールされました。セキュリティ上の理由から、誰かが Nginx サーバーから情報を取得できないように、info.php ファイルを削除する必要がある場合があります。

要約する

CentOS 8.1 に LEMP (Linux+Nginx+MySQL+PHP) 環境を構築する方法についての記事はこれで終わりです。CentOS 8 Linux に LEMP 環境をインストールする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Centos6.6 で php7 + nginx 環境をインストールする方法
  • Centos に PHP7.4 と Nginx をインストールする方法
  • thinkPHP 5をnginxでデプロイするときにホームページにのみリダイレクトされる問題を解決する
  • thinkphp の nginx 構成と、隠し index.php エントリ ファイルを書き換える方法について簡単に説明します。
  • PHP+nginx サービス 500 502 エラーのトラブルシューティングのアイデアの詳細な説明
  • docker で php+nginx+swoole+mysql+redis 環境を構築する方法
  • nginx + php の「入力ファイルが指定されていません」の解決策
  • Nginx+php 設定ファイルと原理分析

<<:  MySQL で主キーと ROWID を使用する際の落とし穴の概要

>>:  キープアライブキャッシュをクリアする方法の詳細なグラフィック説明

推薦する

tomcat8の最新のLinuxインストールプロセス

ダウンロード参考:ダウンロードするコアパッケージを選択してくださいダウンロード後、ファイルをサーバー...

Apache クロスドメイン リソース アクセス エラーの解決策

多くの場合、大規模および中規模の Web サイトでは、静的リソース (フォント ファイル、画像など)...

Centos8 システムの VMware インストール チュートリアル図 (コマンド ライン モード)

目次1. ソフトウェアとシステムイメージ2. 仮想マシンを作成する3. CentOS8をインストール...

Linux システムで jmeter を実行し、ローカル メモリを最適化する方法の詳細な説明

1. Linuxシステムにクロスシステムファイル転送ツールをインストールするルートユーザーのルートデ...

静的リソースファイルのアクセスログをフィルタリングするNginxの実装

乱雑なログ日常的に使用される Nginx は、静的リソース サーバーとリバース プロキシ サーバーの...

MySQL ストレージ エンジンの基礎

前回の記事では、MySQL トランザクションについて説明しました。これで、MySQL トランザクショ...

オンライン MYSQL 同期エラーのトラブルシューティング方法の概要 (必読)

序文フェイルオーバーが発生した後、よくある問題は同期エラーです。データベースが小さい場合は、ダンプし...

仮想マシンに Linux rhel7.3 オペレーティング システムをインストールする (具体的な手順)

仮想化ソフトウェアをインストールする仮想マシンにオペレーティング システムをインストールする前に、ホ...

MySQL InnoDB 監視 (システム層、データベース層)

MySQL InnoDB 監視 (システム層、データベース層) MySQL の監視に関しては、My...

開発効率の向上に役立つ 56 個の実用的な JavaScript ツール関数

目次1. デジタルオペレーション(1)指定された範囲内で乱数を生成する2. 配列操作(1)配列の順序...

HTML コード作成ガイド

共通コンベンションタグ自己終了タグ。閉じる必要はありません (例: img input br hr ...

ボタンをクリックして画像を切り替える JavaScript

この記事の例では、ボタンをクリックすることで画像を切り替えることを実現するJavaScriptの具体...

DD DT DLタグの使用例

通常は <ul><li> タグを使用しますが、dd タグと dt タグも便利...

Linux システムが VMware にインストールされているかどうかを確認する方法

現在の Linux システムが VMware にインストールされているかどうかを確認する方法を教えて...