banner
云野阁

云野阁

闲云野鹤,八方逍遥

LNMPデプロイメント

基本環境#

システム環境:CentOS Stream 9

ソフトウェア環境:nginx-1.20.1、mysql-8.0.36(mariaDB)、php-8.0.30

デプロイプロセス#

プラン 1:yum インストール#

ステップ 1:セキュリティポリシーの設定#

# 80ポートを開放
firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload && sudo firewall-cmd --list-all
# SELinuxを無効化
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

ステップ 2:nginx のインストール#

yum -y install nginx
# nginxのバージョンを確認
nginx -v

ステップ 3:mysql のインストールと設定#

mysql のインストール

yum -y install mysql-server
# mysqlのバージョンを確認
mysql -V
# 起動し、起動時自動起動を設定
systemctl start mysqld
systemctl enable mysqld

mysql の設定

(1)root ユーザーの初期パスワードを確認

grep 'password' /var/log/mysql/mysqld.log

2024-05-08T09:37:31.765242Z 6 [Warning] [MY-010453] [Server] root@localhost は空のパスワードで作成されました! —initialize-insecure オプションをオフにすることを検討してください。

(2)MySQL のセキュリティを設定

mysql_secure_installation

MySQL サーバーデプロイメントのセキュリティを強化しています。

空のパスワードを使用して MySQL に接続しています。

VALIDATE PASSWORD COMPONENT はパスワードをテストし
セキュリティを向上させるために使用できます。これはパスワードの強度をチェックし、
ユーザーが十分に安全なパスワードのみを設定できるようにします。VALIDATE PASSWORD コンポーネントを設定しますか?

MySQL の新しいパスワードを設定

Yes の場合は y|Y を押し、No の場合は他のキーを押してください: y

パスワード検証ポリシーには 3 つのレベルがあります:

LOW 長さ >= 8
MEDIUM 長さ >= 8、数字、大文字小文字混合、特殊文字
STRONG 長さ >= 8、数字、大文字小文字混合、特殊文字および辞書ファイル

設定したパスワードの強度

0 = LOW、1 = MEDIUM、2 = STRONG を入力してください: 0
ここで root のパスワードを設定してください。

新しいパスワード:

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

パスワードの推定強度: 50
提供されたパスワードで続行しますか?(Yes の場合は y|Y を押し、No の場合は他のキーを押してください): y
デフォルトでは、MySQL のインストールには匿名ユーザーが含まれており、
誰でもユーザーアカウントを作成せずに MySQL にログインできます。これはテスト専用であり、
インストールを少しスムーズにするためのものです。
本番環境に移行する前にそれらを削除する必要があります。

匿名ユーザーを削除

匿名ユーザーを削除しますか?(Yes の場合は y|Y を押し、No の場合は他のキーを押してください): y
成功。

通常、root は「localhost」からのみ接続を許可されるべきです。これにより、誰かがネットワークから
root パスワードを推測できないようにします。

root ユーザーのリモートログインを禁止

root のリモートログインを禁止しますか?(Yes の場合は y|Y を押し、No の場合は他のキーを押してください): y
成功。

デフォルトでは、MySQL には「test」という名前のデータベースがあり、
誰でもアクセスできます。これもテスト専用であり、
本番環境に移行する前に削除する必要があります。

test データベースとそのアクセス権を削除

test データベースとそのアクセスを削除しますか?(Yes の場合は y|Y を押し、No の場合は他のキーを押してください): y

  • test データベースを削除中…
    成功。
  • test データベースの権限を削除中…
    成功。

権限テーブルを再読み込みすることで、これまでに行ったすべての変更が即座に有効になります。

権限テーブルを再読み込み

権限テーブルを今すぐ再読み込みしますか?(Yes の場合は y|Y を押し、No の場合は他のキーを押してください): y
成功。

完了!

ステップ 4:php のインストール#

# phpコンポーネントをダウンロード
 yum install -y php php-cli php-fpm php-common php-mysqlnd php-gd php-mbstring
# phpのバージョンを確認
 php -v

nginx 設定ファイルを編集して php を有効にする

# Nginx設定ファイルのバックアップ
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
# Nginx設定ファイルのserver部分に内容を追加
vi /etc/nginx/nginx.conf
**************************nginx.conf**************************
    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /data; #ウェブサイトのルートディレクトリ

        # デフォルトのサーバーブロックの設定ファイルを読み込む。
        include /etc/nginx/default.d/*.conf;
        location / { #追加
            index index.php index.html index.htm;
        }
        location ~ .php$ {
            root /data; #ウェブサイトのルートディレクトリ
            fastcgi_pass 127.0.0.1:9000; #Nginxがローカルの9000ポートを介してPHPリクエストをPHP-FPMに転送
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params; #Nginxがfastcgiインターフェースを呼び出してPHPリクエストを処理
        }
        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

**************************nginx.conf**************************

# nginxを起動し、起動時自動起動を設定
systemctl start nginx
systemctl enable nginx

php の設定と検証

# nginxプロセスの管理ユーザーとPHPサービスプロセスの管理ユーザーを一致させる
vi /etc/php-fpm.d/www.conf
user = nginx
group = nginx
# nginxを再起動
systemctl restart nginx

# ウェブサイトのルートディレクトリを作成
mkdir /data
# テストphpインターフェースを作成
echo "<?php echo phpinfo(); ?>" >/data/index.php
# php-fpmを起動し、起動時自動起動を設定
systemctl start php-fpm
systemctl enable php-fpm

ステップ 5:アクセステスト#

ブラウザにhttp://本機ip/index.phpを入力してアクセスします。以下の図のように、LNMP 環境のデプロイが成功したことを示します。

1

プラン 2:スクリプトによるワンクリックインストール#

yum install -y wget
# lnmpインストールスクリプトをダウンロード
wget https://soft.lnmp.com/lnmp/lnmp2.1beta.tar.gz
# 解凍
tar -vzxf lnmp2.1beta.tar.gz
cd lnmp2.1
# スクリプトを実行
./install.sh
# ガイドに従ってインストールを進めます

ブラウザでhttp://本機ip/にアクセスし、以下の画面が表示されれば、デプロイ成功です。

2

lnmp2.1/conf/nginx.conf ファイルを開いて、ウェブサイトのルートディレクトリが /home/wwwroot/default であることを確認します。

そのウェブサイトのルートディレクトリ /home/wwwroot/default で# テスト php インターフェースを作成し、ブラウザにhttp://本機ip/index.phpを入力してアクセスします。結果はプラン 1 の《ステップ 5》の図のように表示され、成功となります。

echo "<?php echo phpinfo(); ?>" >/data/index.php
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。