サーバー設定 · 2 min read · Oct 24, 2025

CentOS 7 に Nginx と PHP、MySQL (LEMP スタック) をインストールする方法

Nginx (発音は「エンジン x」) は、無料でオープンソースの高性能 HTTP サーバーです。Nginx は、その安定性、豊富な機能セット、シンプルな設定、低リソース消費で知られています。このチュートリアルでは、PHP サポート (PHP-FPM 経由) と MySQL (MariaDB) サポートを備えた CentOS 7 サーバーに Nginx をインストールする方法を示します。

1 前提条件

このチュートリアルでは、ホスト名 server1.example.com と IP アドレス 192.168.1.105 を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換えてください。

2 追加リポジトリの有効化

Nginx は公式の CentOS リポジトリには含まれていないため、Nginx プロジェクトのリポジトリを追加してインストールします:

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

3 MySQL のインストール

まず、MariaDB をインストールします。MariaDB は MySQL の無料のフォークです。シェルで次のコマンドを実行します:

yum install mariadb mariadb-server net-tools

次に、MySQL のシステム起動リンクを作成し (システムが起動するたびに MySQL が自動的に起動するように)、MySQL サーバーを起動します:

systemctl enable mariadb.service  
systemctl start mariadb.service

ネットワークが有効になっているか確認します。次のコマンドを実行します:

netstat -tap | grep mysql

次のような出力が表示されるはずです:

[root@example ~]# netstat -tap | grep mysql  
tcp 0 0 0.0.0.0:mysql 0.0.0.0:* LISTEN 10623/mysqld 

次のコマンドを実行します:

mysql_secure_installation

root ユーザーのパスワードを設定します (そうしないと誰でもあなたの MySQL データベースにアクセスできてしまいます!):

[root@example ~]# mysql_secure_installation  
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB  
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
MariaDB にログインしてセキュリティを確保するには、root ユーザーの現在の  
パスワードが必要です。MariaDB をインストールしたばかりで、  
root パスワードをまだ設定していない場合、パスワードは空白です。  
ここでは Enter キーを押してください。
Enter current password for root (enter for none):  
OK, successfully used password, moving on...
root パスワードを設定することで、適切な認証なしに誰も MariaDB  
root ユーザーにログインできないようにします。
Set root password? [Y/n] <-- ENTER  
New password: <-- yourrootsqlpassword  
Re-enter new password: <-- yourrootsqlpassword  
Password updated successfully!  
Reloading privilege tables..  
... Success!
デフォルトでは、MariaDB のインストールには匿名ユーザーが含まれており、  
誰でもユーザーアカウントを作成せずに MariaDB にログインできます。  
これはテスト用にのみ意図されており、インストールを少しスムーズにするためのものです。  
本番環境に移行する前に、これらを削除する必要があります。
Remove anonymous users? [Y/n] <-- ENTER  
... Success!
通常、root は 'localhost' からのみ接続を許可されるべきです。  
これにより、誰かがネットワークから root パスワードを推測できないようにします。
Disallow root login remotely? [Y/n] <-- ENTER  
... Success!
デフォルトでは、MariaDB には誰でもアクセスできる 'test' という名前のデータベースが含まれています。  
これもテスト用にのみ意図されており、本番環境に移行する前に削除する必要があります。
Remove test database and access to it? [Y/n] <-- ENTER  
- Dropping test database...  
... Success!  
- Removing privileges on test database...  
... Success!
特権テーブルを再読み込みすることで、これまでに行ったすべての変更が  
即座に有効になります。
Reload privilege tables now? [Y/n] <-- ENTER  
... Success!
Cleaning up...
すべて完了しました!上記のすべての手順を完了した場合、あなたの MariaDB  
インストールは今や安全であるはずです。
MariaDB をご利用いただきありがとうございます!  
[root@example ~]#

[root@server1 ~]# mysql_secure_installation

4 Nginx のインストール

Nginx は nginx.org からパッケージとして利用可能で、次のようにインストールできます:

yum install nginx

次に、nginx のシステム起動リンクを作成し、起動します:

systemctl enable nginx.service  
systemctl start nginx.service

ポート 80 がすでに使用中というエラーが表示される可能性があります。エラーメッセージは次のようになります:

[root@server1 ~]# service nginx start  
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)  
ginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)  
ginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)  
ginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)  
ginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)  
ginx: [emerg] still could not bind()  
                                                 [FAILED]  
[root@server1 ~]#

これは、apache サービスが実行されている可能性があることを意味します。サービスを停止し、次のように NGINX のサービスを開始します:

systemctl stop httpd.service  
yum remove httpd  
systemctl disable httpd.service
systemctl enable nginx.service  
systemctl start nginx.service

次に、ファイアウォールで http および https ポートを開きます:

firebase-cmd --permanent --zone=public --add-service=http  
firebase-cmd --permanent --zone=public --add-service=https  
firebase-cmd --reload

シェルでの出力は次のようになります:

[root@example ~]# firewall-cmd --permanent --zone=public --add-service=http  
success  
[root@example ~]# firewall-cmd --permanent --zone=public --add-service=https  
success  
[root@example ~]# firewall-cmd --reload  
success  
[root@example ~]#

ブラウザにウェブサーバーの IP アドレスまたはホスト名を入力します (例: http://192.168.1.105)。Nginx のウェルカムページが表示されるはずです:

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。