AWS Amazon Cloud Red Hat 9 WEB サーバーの構築と LNMP 環境の設定のチュートリアル

Amazon Cloudの申し込み後、EC2サーバーインスタンスを作成し、WEBサーバーを構築する必要があります。

。 Amazon クラウド プラットフォームでサーバーを申請した後、使用する前に Amazon クラウド サーバーを設定する必要があります。仮想マシン インスタンスは次のようになります。 たとえば、WEBサーバーを構築してみましょう。 Red Hat Red Hat Enterprise Linux 9 は、AWS Amazon Cloud の無料プランをサポートしており、Amazon Cloud での Red Hat 9 の構成に追加料金はかかりません。

AWS 亚马逊云 Red Hat 9 WEB服务器搭建 LNMP-1

AWS Amazon Cloud Linux Red Hat 9 システムの初期構成

Red Hat Enterprise Linux 8 仮想マシン インスタンスが有効になった後も空のシステムのままであるため、すべての環境を再構成する必要があります。

以下は、2023 年 1 月 30 日の Amazon Cloud Linux Red Hat 9 システムの初期設定チュートリアルです。

サーバーの root パスワードとリモート ログインを変更する

クラウドサーバーの作成後、デフォルトでは次のようになります。 ec2 ユーザー アカウントを使用してログインした場合、多くのフォルダーに対するアクセス許可がありません。に変更する必要があります スーパー管理者のログイン。

注: Linux Red Hat 9 オペレーティング システムを作成するときは、最初に SSH リモート コントロール用のキー ペアを作成する必要があります。作成時のシステムのデフォルトの「秘密キー ファイル形式」は「.PPK」です。SSH 接続に PuTTY を使用する場合は、変更され、一般的に使用される「.pem」形式を選択すると、サーバーに SSH 接続できなくなります。

AWS 亚马逊云 Red Hat 9 WEB服务器搭建 LNMP-1参考資料:root アカウント SSH を使用して AWS Amazon Cloud にログインする方法

DNF コマンドを有効にして自動更新をインストールする

dnf-automatic をインストールする

dnf インストール dnf-automatic

dnf-automatic を起動時に開始するように設定します。

systemctl start dnf-automatic.timer

Red Hat サブスクリプション権限がない場合は、この手順で dnf リポジトリを更新できません。

開発ツールパッケージグループをインストールする

開発ツール ソフトウェア パッケージ グループには、Linux で一般的に使用されるコマンドとツール ソフトウェアのほとんどが含まれています。

dnf グループ install '開発ツール' -y

DNF アップデート システム パッケージ

システム内のソフトウェア パッケージを dnf で最新バージョンに更新します。

dnf -y アップデート

システム仮想メモリを構成する

オペレーティング システムのデフォルトのインストールではスワップ スペースが割り当てられないため、手動で追加する必要があります。オペレーティング システムがスワップファイルを構成しない (スワップ領域を割り当てる) と、メモリ ロード後にエラーが発生します。

使用 フリー -m コマンドを使用してメモリ構成を確認し、Swap の後に 0 がある場合は、スワップ領域を追加する必要があります。

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

Swap の後にはすべて 0 があります。Swap 仮想メモリの作成を開始しましょう。

指定したサイズの領域を事前に割り当てたファイルを作成し、次にシステムの仮想メモリとして使用する約 8G のハードディスク領域を設定します。

sudo dd if=/dev/zero of=/swapfile bs=1024 count=8388608

スワップスペースとして指定すると、サーバーが少し遅くなりますが、しばらくお待ちください。

パーティショニングが完了したら、lsコマンドを使用してファイルサイズを確認します。

ls -lh /スワップファイル

サイズを確認したら、スワップ ファイルの権限を変更する必要があります。

sudo chmod 600 /swapfile

操作後、スワップファイルをフォーマットします。

sudo mkswap /swapfile

さて、スワップファイルファイルが作成されたので、スワップファイルファイルを有効にしましょう。

sudo swapon /swapfile

最後に、再起動後にスワップが自動的に有効になるように fstab ファイルを変更します。

sudo vi /etc/fstab

VI を使用して /etc/fstab を編集し、ファイルの末尾に次の内容を追加します。

/swapfile スワップ スワップ sw 0 0

または、echo コマンドを使用して追加します。

echo '/swapfile swap swap sw 0 0' | sudo tee -a /etc/fstab

設定完了後、サーバーを再起動します。

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

スワップを停止したい場合は、次を使用できます スワップオフ/スワップファイル 、スワップファイルを削除するコマンドは次のとおりです。 rm -ir /swapfile

サーバーのタイムゾーンを変更する

サーバーのタイムゾーンをアジア/上海に変更します。これは後で使用できます。 時刻日付ctl タイムゾーンを問い合わせるコマンド。

sudo timedatectl set-timezone アジア/上海

SELinuxを無効にする

SELinux を永続的に無効にするには、SELinux プロパティを次のように変更します。 無効 次に、サーバーを再起動します。

vi /etc/selinux/config

AWS が Red Hat 中国語言語パックをインストール

Red Hat に中国語言語パックをインストールし、dnf コマンドを使用して中国語言語パックを検索します。

dnf 検索言語パック

Red Hat の簡体字中国語インストール パッケージは、langpacks-zh_CN.noarch であることがわかります。

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

dnf コマンドを使用して直接インストールします。

dnf インストール langpacks-zh_CN.noarch

Y を押してインストールに同意すると、インストール パッケージが自動的にダウンロードされてインストールされます。

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP中国語フォントをインストールした後、システム言語を変更します。

vi /etc/locale.conf

元のコンテンツを次のコンテンツに置き換えます
LANG="zh_CN.UTF-8"
最後に次のコマンドを渡します。ロケール-a 確認するコマンド zh_CN インストールは成功しましたか? その後、リブート サーバーを再起動するコマンド。

Red Hat 9 への RPM リポジトリのインストール

Remi の RPM リポジトリ。次のコマンドを実行して有効にしますそしてRemiリポジトリ:

Remi リポジトリを有効にする

sudo dnf install epel-release yum-utils
sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

 

EPEL リポジトリを有効にする

EPEL 9 が正式に公開されました。 EPEL リポジトリのインストールは非常に簡単で、次のコマンドを実行するだけで実行できます。

sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

セキュリティグループファイアウォールを設定する

ファイアウォールをオンにします。サービスiptablesの開始

ファイアウォールをオフにします。サービス iptables が停止する

デフォルトのファイアウォール:chkconfig iptables オフ

RedHat9 のデフォルトのファイアウォールはオフになっているため、サーバーに設定する必要はありませんが、次に、AWS クラウド プラットフォームに透過的なファイアウォールを設定する必要があります。もちろん、必要なポートを個別に開くこともできます。透過的なファイアウォールはテストの便宜を図るためだけにあります。

AWS クラウド プラットフォームのセキュリティ グループ オプションで、クリックして EC2 サーバーを構成した対応するセキュリティ グループにアクセスします。

AWS 亚马逊云 Red Hat 9 WEB服务器搭建 配置LNMP环境教程-1

デフォルトで開いているポートは 22、80、および 443 だけであることがわかります。透過的ファイアウォールはすべての受信ポートを開きます。

右上隅の [受信ルールの編集] をクリックし、[受信ルールの編集] で [ルールの追加] をクリックし、タイプとしてすべてのトラフィックを選択し、送信元情報として任意の場所の ipv4 を選択して、後続の IP アドレスとして 0.0.0.0/0 を入力します。

AWS 亚马逊云 Red Hat 9 WEB服务器搭建 配置LNMP环境教程-1

[ルールの保存] をクリックすると、ファイアウォールが透過ファイアウォールに設定され、サーバーのすべてのポートが開かれます。

RHEL 9 で Red Hat サブスクリプションを登録する方法

上記の Remi と EPEL の RPM リポジトリをインストールした後、公式リポジトリは無視して、ここで登録するかどうかを選択できます。

RHEL 9 のインストール中にシステムを登録していない場合は、root ユーザーとして次のコマンドを適用することですぐに登録できます。

Red Hat ユーザーではない場合は、最初に進んでください。Red Hat公式Webサイトへの登録:https://www.redhat.com/wapps/ugc/register.html

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

ユーザー登録の場合は、実際のメール アドレスを入力してください。登録後、メール内に認証メールへのリンクが表示されます。アカウントはアクティブ化されるまで有効になりません。 Red Hat ユーザー登録が成功したら、Xshell に戻ってログインします。

サブスクリプションマネージャー登録

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

Amazonクラウド構成 LNMP環境

LNMP (Nginx/MySQL/PHP) をインストールする

Linux、PHP、MySQL を使用する利点については、これ以上言う必要はありません。

Nginx は、Linux 上の小型で効率的な Web サーバー ソフトウェアです。ロシアで 2 番目にアクセス数の多いサイトである Rambler.ru サイト用に Igor Sysoev によって開発されました。長年にわたってロシアのいくつかの大規模な Web サイトで実行されており、現在は多くの国内外のポータルで使用されており、業界の Web サイトでも非常に安定した Nginx が使用されています。

Nginx は非常に安定しており、機能が豊富で、インストールと設定が簡単で、システム リソースが少ないです。

手動でインストールするのが面倒な場合、使用することを選択できますLNMP ワンクリック インストール パッケージ, 以下の内容は学習の参考のみを目的としています。

AWS PHPをインストールする

クラウド サーバーを構成する場合、PHP は不可欠です。ほとんどの Web サイトは PHP 言語で書かれています。PHP がインストールされていない場合、サーバーは Web サイトの PHP 解析を実行できません。

remi ソフトウェア リポジトリでは、PHP の最小バージョンは 7.4、最大バージョンは 8.2 です。 Red Hat の公式リポジトリでは、PHP8.1 の安定版のみが提供されています。以前のバージョンの PHP をインストールする場合は、Remi ソースに切り替えてインストールできます。

まずはシステムをチェック RHUI (RPM) からのメタデータ。

dnfモジュールリストphp

AWS 亚马逊云 Red Hat 9 WEB服务器搭建 LNMP-1リポジトリで php モジュールを有効にします。

dnf モジュールは php:remi-7.4 を有効にします

Yを入力するとphp7.4のモジュールフローが有効になります。

AWS 亚马逊云 Red Hat 9 WEB服务器搭建 LNMP-1AWS 亚马逊云 Red Hat 9 WEB服务器搭建 LNMP-1あなたが望むならPHPモジュールフローをリセットする、次のコマンドを使用できます。

dnfモジュールリセットphp

次に、PHP を直接インストールできます。次に、PHP7.4 と関連する依存関係のインストールを開始します。

dnf インストール php php-mysqlnd php-gd

Y を入力した後、php7.4 および関連する依存ソフトウェア パッケージのインストールを開始します。

php -v

phpが正しくインストールされているか確認してください。

AWS 亚马逊云 Red Hat 9 WEB服务器搭建 LNMP-1

mb_strlen 関数がありません。mbstring (mb_strlen) をインストールする方法

mb_strlen 関数はバージョン php7.2 ではデフォルトではインストールされないため、インストールするには dnf を使用する必要があります。まず php-mbstring を検索します

dnf検索php-mbstring

検索してインストールします。

dnf インストール php-mbstring.x86_64

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

PHP インストール zip 拡張子

一部の Web プログラムでは、PHP の ZIP 拡張子が必要です。 php-pecl-zipをインストールする必要があります

dnf インストール php-pecl-zip

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

拡張機能のインストール後、PHP サービスを再起動します。

systemctl 再起動 php-fpm

PHPの設定

php7.4 をインストールした後、いくつかの一般的な設定が必要です。

PHP のアクセス権限を変更する. PHP のデフォルトのアクセス ユーザーは Apache です。ユーザー、Web サーバーとして nginx を使用する必要があるため、Apache を nginx に変更する必要があります。

vi /etc/php-fpm.d/www.conf

ユーザー=nginx
グループ=nginx

ユーザーとグループの両方を nginx に変更する必要があります。変更後、esc キー、:wq を押してファイルを保存し、終了します。

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

WordPress のインストール時にディレクトリを作成できない場合は、wp ファイルが格納されているディレクトリのユーザーグループと、nginx のユーザーグループと PHP のユーザーグループが同じユーザー配下であることを確認してください。

Webファイル格納ディレクトリのユーザーアクセス権限を変更します。

chown -R nginx:nginx /var/www

PHP のメイン プログラム構成ファイルを変更します。

vi /etc/php.ini

cgi.fix_pathinfo は、CGI に *実際の * PATH_INFO/PATH_TRANSLATED サポートを提供します。 PHP の以前の動作は、PATH_INFO が何であるかを理解するのではなく、PATH_TRANSLATED を SCRIPT_FILENAME に設定することでした。 PATH_INFO の詳細については、CGI仕様を参照。これが 1 の環境では、PHP CGI は仕様に準拠するようにパスを修正します。ゼロに設定すると、PHP は以前と同様に動作します。デフォルト値は 1 です。 PATH_TRANSLATED の代わりに SCRIPT_FILENAME を使用するようにスクリプトを修正する必要があります。http://php.net/cgi.fix-pathinfo

cgi.fix_pathinfo = 1 が 0 に変更されました

アップロードされるファイルの最大許容サイズ。
http://php.net/upload-max-filesize

Upload_max_filesize = 2M ファイルのアップロード サイズ。デフォルト値は小さすぎるため、1024M に変更することをお勧めします。

このディレクティブは、PHP がエラー、メモ、警告を出力するかどうかを制御します。エラー出力は開発中には非常に役立ちますが、運用環境では非常に危険な可能性があります。エラーを引き起こすコードによっては、データベースのユーザー名やパスワードなどの機密情報がアプリケーションを超えて漏洩する可能性があります。
運用環境では、エラーを標準出力に送信するのではなく、ログに記録することをお勧めします。
可能な値:
オフ = エラーを表示しない
stderr = STDERR へのエラーを表示します (CGI/CLI バイナリのみに影響します!)
On または stdout = エラーを STDOUT に表示します
デフォルト値: オン
開発価値:アップ
生産値: 閉じる
http://php.net/display-errors

display_errors = 印刷エラーをオフ、オンに変更します

PHP が受け入れる POST データの最大サイズ。
スロットリングを無効にするには、その値を 0 にすることができます。 Enable_post_data_reading で無効にすると、POST データの読み取りは無視されます。
http://php.net/post-max-size

post_max_size = 8M の最大フォーム サイズ。32M に変更することをお勧めします。

各スクリプトの最大実行時間 (秒)
http://php.net/max-execution-time
注: CLI SAPI の場合、このディレクティブは 0 にハードコードされています。

max_execution_time=30 php スクリプトの最大実行時間、300 以上に変更されました

セッション権限を変更します。

たとえば、/var/lib/php/session のユーザー グループと権限を変更します。

cd /var/lib/php chown nginx:nginx ./session chmod -R 777 ./session

PHP が構成されました。最後のステップは、起動時にサービスをセットアップして実行することです。

systemctl で php-fpm を有効にする

systemctl で php-fpm を開始します

よく使用される操作コマンド:

PHP を再起動します。
systemctl 再起動 php-fpm

PHP を起動します。
systemctl で php-fpm を開始します

PHP を閉じます。
systemctl は php-fpm を停止します

PHP ステータス:
systemctlステータスphp-fpm

PHP バージョンのダウングレードとアップグレード

Web サイトのプログラムの中には、メンテナンスが不十分で互換性が低く、下位バージョンの PHP しかサポートしていないものもありますが、このような Web 要件を満たし、相互互換性を満たすためには、PHP のバージョンをダウングレードする必要があります。たとえば、一部の PHP プログラムは暗号化に SG11 を使用します。

SG11 は SourceGuardian 11 の略称です。現在 ソースガーディアン公式バージョンは SourceGuardian 13 に更新されました。最も重要なことは、2 つのバージョンのファイルはユニバーサルではなく、SG11 の PHP 暗号化の最高バージョンは PHP 7.3 であるため、SG11 Web プログラムをインストールする必要がある場合は、 PHP バージョンは 7.3 より高くすることはできません。

注: PHP7.3 などの下位バージョンの PHP をインストールする場合は、まずソフトウェア ソースを同時にダウングレードする必要があります。 remi-release-9.rpm には PHP7.4 以下のバージョンがないため、remi-release-9.rpm を remi-release-8.rpm にダウングレードします。

Remi リポジトリのダウングレード

sudo dnf install epel-release yum-utils
sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

まず、PHP-FPM サービスと Nginx サービスを停止する必要があります。

systemctl は php-fpm を停止します

systemctl nginxを停止します

サービスの停止後、/etc/php.ini ファイルをダウンロードしてローカルに保存しないと、ダウングレード後に php.ini ファイルを再度変更する必要があります。

yum-utils がインストールされていない場合は、yum-utils をインストールする必要があります。

yum-utils は、yum に統合されたユーティリティのコレクションで、yum の組み込み機能をさまざまな方法で拡張し、yum をより強力で使いやすくします。

dnf インストール yum-utils -y

アンインストールすると、サーバーにインストールされている PHP が削除されます

dnf 削除 php\*

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

PHP7.3をインストールする

PHPリポジトリに存在するPHPモジュールを確認する

dnfモジュールリストphp

モジュール フローは以前 php7.4 で有効になっていたため、php7.3 をインストールする場合は、PHP モジュールをリセットする必要があります。

dnfモジュールリセットphp

php7.3モジュールのストリーミングを有効にします。

dnfモジュール有効php:7.3

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

PHP7.3モジュールフローを有効にした後、以下のPHP7.3をインストールします。

dnf インストール php php-mysqlnd php-gd

次に、php -v name を使用して php のバージョンを確認します。 php7.3になりました。

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

php7.3 のインストール後、以前にバックアップした php.ini ファイルを /etc/php.ini に上書きし、/etc/php-fpm.d/www.conf ファイル内のユーザー名とユーザー グループ名を nginx に変更します。 。

vi /etc/php-fpm.d/www.conf

ユーザー=nginx
グループ=nginx

上記の操作がすべて完了したら、最後にphpとnginxのサービスを開始します。

systemctl で php-fpm を開始します

systemctlでnginxを起動

PHP7.2をインストールする

PHP 7.x パッケージは、いくつかの異なるリポジトリで入手できます。我々は使用するだろう レミリポジトリ、PHP を含むさまざまなソフトウェア パッケージの新しいバージョンが提供されます。

ソフトウェア リポジトリがシステムで有効になっているかどうかを確認します

sudo yum repolist

次に、リポジトリ内のphpモジュールを確認します。

dnfモジュールリストphp

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

remi-7.2をインストールするには、phpモジュールをリセットする必要があります。

dnfモジュールリセットphp

モジュールをリセットした後、remi-7.2 のモジュール ストリームを選択します。

dnf モジュールは php:remi-7.2 を有効にします

php remi-7.2のインストールを始めましょう

dnf インストール php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd

AWSでnginxをインストール

次のコマンドを実行して、利用可能な nginx モジュール ストリームのリストを取得します。

dnfモジュールリストnginx

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

システムのデフォルトは nginx バージョン 1.14 です。より高いバージョンをインストールする場合は、nginx モジュールをリセットする必要があります。

dnfモジュールリセットnginx

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

モジュールをリセットした後、インストールするバージョンを選択できます。たとえば、バージョン 1.20 をインストールします。モジュール ストリーミングのバージョン 1.20 を有効にするだけです。

dnf モジュール有効 nginx:1.20

モジュール フローが有効な場合のみ、dnf install コマンドを使用して nginx バージョン 1.20 をインストールします。

dnf インストール nginx -y

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

nginx を起動するように設定すると、nginx サービスが実行されます。

systemctl で nginx を有効にする

systemctlでnginxを起動

インストール後、netstat を使用して現在のポート占有率を確認します。

netstat -lntup

コマンドが見つからないことを示すメッセージ「-bash: netstat: command not found」が表示された場合は、ネットワーク コンポーネント ツール net-tools もインストールする必要があります。

dnf install net-tools-y

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

ポートを表示すると、ポート 80 がすでに nginx によって占有されており、nginx サービスが正常にインストールされていることがわかります。

よく使用されるコマンド:
再起動:

systemctl nginxを再起動します

起動する:

systemctlでnginxを起動

閉鎖:

systemctl nginxを停止します

州:

systemctlステータスnginx

Nginxの構成

Nginx 構成ファイル nginx.conf を編集します。Web ウェブサイトに正常にアクセスできるようにするには、Nginx 構成ファイル nginx.conf を編集および変更する必要があります。nginx.conf は、Nginx のコア構成ファイルです。 VI コマンドを使用して /etc/nginx/nginx.conf を編集します。

vi /etc/nginx/nginx.conf

# ユーザーまたはグループ ユーザー nginx を設定します; # 生成できるプロセスの数、デフォルトは 1 です worker_processes auto; # エラー ログのパスとレベルを指定します。この設定は、グローバル ブロック、http ブロック、サーバー ブロックに配置でき、レベルは次のとおりです: debug|info|notice|warn|error|crit|alert|emerg.レベルが高いほど、レコードは少なくなります。一般に、エラーを設定しますerror_log /var/log /nginx/error.log error; # nginx プロセス実行ファイルのストレージ アドレスを指定します pid /var/run/nginx.pid; # は、/usr/share/nginx/modules/*.conf を含む動的モジュールをロードします。 # 動作モードと接続数 上限 - events グローバル設定 events { # 単一のワークプロセスで許可される接続の最大数、デフォルトは 512 worker_connections 1024; } #http サーバー構成ファイル ブロック http { # ファイル拡張子とファイル タイプのマッピングテーブル。 MIME タイプ (電子メール サポート タイプ) を設定します。タイプは mime.types ファイルによって定義されます。 include /etc/nginx/mime.types; # デフォルトのファイルタイプ、デフォルトは text/plain default_type application/octet-stream; # カスタムログフォーマット log_format main '$remote_addr - $remote_user [$time_local] "$request" '$status $body_bytes_sent "$http_referer " ' '"$http_user_agent" "$http_x_forwarded_for"'; # はアクセス ログのパスと形式を設定します。 combined はログ形式のデフォルト値です。 access_log /var/log/nginx/access.log main; # では、sendfile メソッドでファイルを転送できます。デフォルトはオフで、http ブロック、server ブロック、location ブロックで使用できます。 sendfile on; #tcp_nopush on; # 接続タイムアウト、デフォルトは 75 秒、http、server、location ブロックに含めることができます。 keepalive_timeout 65; #gzip 圧縮スイッチ、on は Gzip 圧縮をオンにします、デフォルトの off は gzip をオフにします on; # は最小のファイルで gzip 圧縮を有効にし、設定値より小さいファイルは圧縮されません gzip_min_length 10k; #gzip 圧縮レベル、1 ~ 9、数値が大きいほど、圧縮率が高くなります より良い、CPU 時間がかかります gzip_comp_level 6; # 圧縮に必要なバッファ サイズを設定します gzip_buffers 32 4k; # gzip 圧縮の HTTP プロトコル バージョンを設定します 負荷がない場合、gzip_http_version 1.1 は使用できません; # 圧縮用のファイル タイプ。 JavaScript にはさまざまな形式があります。値は mime.types ファイルにあります。 gzip_types テキスト/プレーン アプリケーション/JavaScript アプリケーション/x-JavaScript テキスト/CSS アプリケーション/xml テキスト/JavaScript アプリケーション/x-httpd-php 画像/jpeg 画像/gif 画像/png アプリケーション/vnd.ms-fontobject フォント/ttf フォント/opentype font/x-woff image/svg+xml; # http ヘッダーに Vary: Accept-Encoding を追加するかどうか、gzip_vary on をオンにすることをお勧めします; # は、/etc/nginx/conf.d からモジュラー構成ファイルをロードしますディレクトリ。 /etc/nginx/conf.d/*.conf を含めます; }

上記は Nginx の比較的単純な基本構成であり、サーバー Web サイトの構成は /etc/nginx/conf.d/ ディレクトリに保存されます。

次に、運用環境のサーバー Web サイト構成に合わせてサーバー Web サイト構成を編集します。

# ドメイン名ポート 301 リダイレクト https サーバー {server_name www.uzvod.com; # Web サイトのドメイン名はスペースで区切って複数にすることができます return 301 http://uzvod.com$request_uri; } # 初期設定の nginx にはまだSSL 証明書。301 はルート ドメイン名にリダイレクトします。 # Web サイト構成コア ブロック サーバー { サーバー名 uzvod.com; ルート /var/www/uzvod; インデックス Index.php Index.html Index.htm; 場所 ~* ^/(upload|vendor|thinkphp|extend|addons|application)/ .*\.(php|php5)$ {deny all; } include /etc/nginx/default.d/*.conf; # /etc/nginx/default.d からデフォルトサーバーブロックの設定ファイルをロードします。 # 疑似静的ページの場所 / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^/admin.php(.*)$ /admin . php?s=$1 last; 書き換え ^/api.php(.*)$ /api.php?s=$1 last; 書き換え ^(.*)$ /index.php?s=$1 last; ブレーク; } } }

構成を追加した後、nginx サービスを再起動します

systemctl nginxを再起動します

新しいテスト ページindex.php を作成し、次の内容をファイルにコピーします。これは PHP プローブ ファイルです。

<?php
phpinfo();
?>

ディレクトリの権限を再構成する

chown -R nginx:nginx /var/www

ドメイン名にアクセスすると、Web サイトが正常に開くことができるので、オンラインで SSL ドメイン名証明書を申請する必要があることをメモしておきます。次に、nginx でドメイン名証明書を構成します。

次の証明書ロボットを使用して、SSL ドメイン名証明書の申請に成功しました。次に、Nginx でサーバーの構成ファイルを変更します。

# ドメイン名ポート 301 リダイレクト https サーバー { listen 80; listen [::]:80; server_name www.uzvod.com uzvod.com; # Web サイトのドメイン名はスペースで区切って複数指定できます return 301 https:// uzvod .com$request_uri; ssl_certificate /etc/letsencrypt/live/uzvod.com/fullchain.pem; Certbot によって管理される # ssl_certificate_key /etc/letsencrypt/live/uzvod.com/privkey.pem; Certbot によって管理される # include /etc/letsencrypt/オプション -ssl-nginx.conf; Certbot によって管理される # ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; Certbot によって管理される # } # Web サイト構成コア ブロック サーバー { listen 443 ssl http2; listen [::]:443 ssl http2 ;server_name uzvod.com;root /var/www/uzvod;indexindex.phpindex.htmlindex.htm;http2_push_preloadon;#HTTP/2 サーバープッシュ ssl_certificate を有効にする /etc/letsencrypt/live/uzvod.com/fullchain.pem ; Certbot によって管理される # ssl_certificate_key /etc/letsencrypt/live/uzvod.com/privkey.pem; Certbot によって管理される # include /etc/letsencrypt/options-ssl-nginx.conf; Certbot によって管理される # ssl_dhparam /etc/letsencrypt/ssl - dhparams.pem; Certbot によって管理される # # TLS バージョンを有効にします (今後の HTTP/3 QUIC では TLSv1.3 が必要です)。 : https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data ssl_early_data on; ssl_session_cacheshared:SSL:50m; # HSTS (ngx_http_headers_module が必要です) (15768000 秒 = 6 か月) add_header Sstrict-Transport-Security max- age =31536000; # OCSP Stapling --- # ssl_certificate の URL から OCSP レコードをフェッチし、キャッシュします ssl_stapling on; ssl_stapling_verify on; include /etc/nginx/default.d/*.conf; # /etc/nginx から OCSP レコードをフェッチします/default.d デフォルトのサーバー ブロックの構成ファイルをロードします。 location ~* ^/(upload|vendor|thinkphp|extend|addons|application)/.*\.(php|php5)$ { すべて拒否; } # 疑似静的ページの場所 / { if (!-e $request_filename) { ^/index.php(.*)$ /index.php?s=$1 最後に書き換えます; ^/admin.php(.*)$ /admin.php?s=$1 最後に書き換えます; ^/api.php(. * )$ /api.php?s=$1 last; 書き換え ^(.*)$ /index.php?s=$1 last; Break; } } # リバース プロキシの場所 /chat886 { proxy_redirect off; proxy_pass http://127.0 .0.1:12345; proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; TLSv1.3 の 0-RTT の TP5T 構成 proxy_set_header Early -Data $ssl_early_data; } }

構成を追加した後、nginx サービスを再起動します

systemctl nginxを再起動します

注: Nginx が正常に構成されたら、次の Certbot を使用して SSL ドメイン名証明書を生成します。まだ Nginx で SSL アクセス ルールを構成しないでください。

Nginx は Certbot を通じて SSL ドメイン名証明書を生成します

Certbot は、手動で管理されている Web サイトで Let's Encrypt 証明書の使用を自動化し、HTTPS を有効にするための無料のオープンソース ソフトウェア ツールです。
Certbot は、カリフォルニア州サンフランシスコに拠点を置き、デジタル プライバシー、言論の自由、イノベーションを擁護する 501(c)3 非営利団体である電子フロンティア財団 (EFF) によって開発されました。

Nginx を構成したら、SSL ドメイン名証明書ロボット Certbot を使用して、都市の SSL ドメイン名証明書を拡張できます。具体的なインストール方法については、以下を参照してください。

参考資料:無料の SSL 証明書ロボット: Certbot は https ドメイン名証明書の自動更新を迅速に申請します

AWS の MySQL のインストール

mysqlモジュールを取得する

dnfモジュールリストmysql

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

サーバー上のバージョンは MySQL8.0 のみです。以下の MySQL8.0 をインストールしてください。

dnf インストール @mysql

dnf install mysql を使用したインストールと dnf install @mysql を使用したインストールは異なり、@mysql インストール パッケージにはさらに多くのパッケージが含まれています。

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

インストールが完了したら、MySQL が起動するように設定します。

systemctl を有効にする --now mysqld

次に、MySQL が正常に実行されているかどうかを確認します。

systemctl ステータス mysqld

緑色のライトは正常、赤色のライトは障害があり、MySQL は正常に実行されています。

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

パスワードとセキュリティ設定を追加する

走る mysql_secure_installation いくつかのセキュリティ関連の操作を実行し、MySQL root パスワードを設定するスクリプト。

sudo mysql_secure_installation

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

スクリプトの実行後、VALIDATE PASSWORD コンポーネントを構成するかどうかを尋ねられます。このステップでは Y を選択します。

パスワード検証ポリシー レベルを選択し、0 (低) を選択します。
MySQLのパスワードを設定します。ここで設定するパスワードを2回入力します。
提供されたパスワードを引き続き使用してもよろしいですか? 「Y」と入力します。
匿名ユーザーを削除しますか? 「Y」と入力します。
root リモートログインを許可しますか? 「N」と入力します。
テストデータベースを削除しますか? 「Y」と入力します。
許可テーブルをリロードしますか? 「Y」と入力します。

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

Mysql リモート ログインを設定する root アカウントでリモート ログインを設定する必要がある場合は、上記の手順を繰り返し、root リモート ログインを許可する手順で Y を設定します。当面、Mysql リモート ログインを設定する必要がない場合は、この段落は無視してかまいません。

MySQL が初期化された後、検証のために MySQL にログインする必要があります。
次のコマンドを使用してログインし、パスワードを入力します。

mysql -u root -p

ログイン時に例外がなく、mysql> コンソールが表示されれば、設定とインストールは成功しています。

AWS 亚马逊云 Red Hat9 WEB服务器配置 LNMP

MySQL コンソールで新しいユーザーを作成することも、MySQL 管理ツールを使用して新しいユーザーまたはデータベースを作成することもできます。

MySQL コンソールで新しいユーザーを作成する方法

リモートログイン用の新しいユーザーを作成する
「UserName」フィールドにユーザー名を入力し、「Host」フィールドに IP を入力します (例: 8.8.8.8)。これは、ユーザーが IP 8.8.8.8 でのみログインできることを意味します。IP ログインに制限がない場合は、 「ホスト」フィールドに「%」と入力し、「パスワード」フィールドにパスワードを入力します。

「パスワード」で識別されるユーザー「ユーザー名」@「ホスト」を作成します。

新しく作成したユーザーにアクセス許可を付与します。ここでのユーザー名とホストは、前の手順で作成したユーザーと同じです。

Grant オプションを使用して、*.* に対するすべての権限を 'UserName'@'Host' に付与します。

念のため、リモート ログインが利用可能かどうかをテストしてください。パスワードを変更する MySQL ステートメントは次のとおりです。

「パスワード」で識別されるユーザー「root」@「localhost」を変更します。

この時点で MySQL はインストールされていますが、設定ファイルに追加の要件がある場合は変更してください。 /etc/my.cnf の設定ファイル。

上記の設定が完了したら、MySQL サービスを再起動します。

systemctl で mysqld を再起動します

MySQL の一般的なコマンド

StartMySQL

systemctl は mysqld を起動します

MySQLを再起動する

systemctl で mysqld を再起動します

StopMySQL

systemctl は mysqld を停止します

MySQL ステータスの表示

systemctl ステータス mysqld

AWS phpMyAdminをインストールする

phpMyAdmin は、PHPWeb 上で処理するために作成されたフリー ソフトウェア ツールMySQL管理。phpMyAdmin は、MySQL および MariaDB 上の広範な操作をサポートします。一般的な操作 (データベース、テーブル、列、リレーションシップ、インデックス、ユーザー、権限などの管理) はユーザー インターフェイスを通じて実行できますが、SQL ステートメントを直接実行することもできます。

phpMyAdmin は MySQL 管理ツールです。phpMyAdmin Web サイトは次のとおりです。https://www.phpmyadmin.net/

wgetダウンロードコマンドをインストールします。

dnf インストール wget

最新バージョンの phpMyAdmin-5.1.3 をダウンロードし、圧縮パッケージを tar.gz 形式でダウンロードすることに注意してください。

wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-langages.tar.gz

phpMyAdmin-5.1.3 ファイルを解凍します。

tar -zxvf phpMyAdmin-5.2.0-全言語.tar.gz

フォルダーの名前を後で定義できる名前に変更します。ここでのデフォルトは phpMyAdmin に変更されます。

mv phpMyAdmin-5.2.0-全言語 phpMyAdmin

ファイルを Web ストレージ ディレクトリに移動します。

mv phpMyAdmin /home/www

php-mysqlnd 拡張機能をまだインストールしていない場合は、php-mysqlnd 拡張機能もインストールする必要があることに注意してください。

dnf インストール php-mysqlnd

phpMyAdminを構成する

phpMyAdmin ディレクトリの下のライブラリ ディレクトリに入り、VI で config.default.php ファイルを編集します。

cd /var/www/phpMyAdmin/libraries

viconfig.default.php

host の後の localhost を 127.0.0.1 に変更します。数字の入力に小さなキーボードを使用しないように注意してください。

意思$cfg['サーバー'][$i]['ホスト'] = 'ローカルホスト';への変更$cfg['サーバー'][$i]['ホスト'] = '127.0.0.1';
$cfg['サーバー'][$i]['ユーザー'] = 'ルート';
$cfg['サーバー'][$i]['パスワード'] = 'mysql パスワード';
意思$cfg['blowfish_secret'] = "; への変更 $cfg['blowfish_secret'] = '123456*******';

注: 「123456*******」は、32 文字を超える任意のパスワードです。
変更後、保存して終了します。:qw
戻る

phpMyAdminのメインディレクトリに設定ファイルを配置します。 config.sample.inc.php 名前を変更します。

cd /var/www/phpMyAdmin/

mv config.sample.inc.php config.inc.php

VI は構成ファイル config.inc.php を編集します。

viconfig.inc.php

phpMyAdmin が Cookie に使用する短いパスワードを変更します。
$cfg['blowfish_secret'] = "; への変更 $cfg['blowfish_secret'] = '123456*******';

注: 「123456*******」は、32 文字を超える任意のパスワード文字です。
このパスワードは、Cookie が複数の PhpMyAdmin または他のプログラムで共有される場合の混乱を避けるために、Cookie を暗号化するために使用されます。

短いパスワードが修復されたら、ホスト オプションを変更して変更します。 $cfg['サーバー'][$i]['ホスト'] = 'ローカルホスト'; への変更 $cfg['サーバー'][$i]['ホスト'] = '127.0.0.1';

セッション パス (/var/lib/php/session など) のユーザー グループと権限を変更し、対応するセッション パスに移動します。

cd /var/lib/php

chown nginx:nginx ./セッション

chmod -R 777 ./セッション

権限を 777 に設定して、phpmyadmin ディレクトリに新しい tmp フォルダーを作成します。

mkdir /var/www/phpMyAdmin/tmp

chmod -R 777 /var/www/phpMyAdmin/tmp

最後に、phpMyAdmin ファイルが保存されているディレクトリのユーザー アクセス権限を変更します。

chown -R nginx:nginx /var/www

phpMyAdminの高度な機能が完全に設定されておらず、一部の機能が有効にならない問題を解決しました。
この問題は、クリックして phpMyAdmin に phpmyadmin の空のデータベースを作成することで解決できます。最後に、Nginx で phpMyAdmin のアクセスパスを設定すると、正常にアクセスできるようになります。

mysqli::real_connect(): (HY000/1045): ユーザー「root」@「localhost」の場合(パスワードを使用:YES)

MySQL パスワードが間違って入力されました

Amazon クラウドのインストール WordPress

まず、WordPress の最新バージョンをダウンロードします。

wget https://cn.wordpress.org/latest-zh_CN.tar.gz

ダウンロード後、ファイルを解凍してください。
tar -xzvf 最新-zh_CN.tar.gz

フォルダーを Web サイトのディレクトリに移動します
mv wordpress /var/www

cd /var/wwwroot

wp-config-sample.php ファイルの名前を変更します
cp wp-config-sample.php wp-config.php

Web サイト設定ファイルを変更します。
vi wp-config.php

WordPress データベースの名前:define( 'DB_NAME', 'WordPress' );
MySQL データベースのユーザー名:define('DB_USER', 'root');
MySQL データベースのパスワード:define( 'DB_PASSWORD', 'mysql パスワード' );
MySQL ホスト:define('DB_HOST', '127.0.0.1');
データテーブル作成時のデフォルトのテキストエンコーディング:define('DB_CHARSET', 'utf8');
ファイルの最後に次のコードを追加します。
if(is_admin()) {add_filter('filesystem_method', create_function('$a', 'return "direct";' ));define( 'FS_CHMOD_DIR', 0751 );}

設定ファイルを変更したら、再度ユーザー権限を追加してください。

chown -R nginx:nginx /var/www

nginx 構成ファイルに、疑似静的プラグインをインストールするための次のコードを追加します。

サーバー { listen 80; listen [::]:80; listen 443 ssl http2; server_name www.uzbox.tk; # あなたのドメイン名 return 301 https://uzbox.tk$request_uri; # www ドメイン名 301 を uzbox.tk にリダイレクトします }サーバー { listen 443 ssl http2; listen [::]:443 ssl http2; サーバー名 uzbox.tk; root /home/wwwroot; ssl_certificate "/home/ssl/fullchain.cer"; ssl_certificate_key "/home/ssl/uzbox.tk .key"; ssl_session_cache 共有:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TL S13-AES-128 -GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-ドラフト:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA +AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; TLSv1 の 0-RTT 用の # 構成。 3 ssl_early_data オン; ssl_stapling オン; ssl_stapling_verify オン; add_header Strict-Transport-Security "max-age=31536000"; location / {indexindex.phpindex.htmlindex.htm;try_files$uri $uri/ /index.php?$args; # Wordpress で擬似静的設定をサポートするために使用されます。 } エラーページ 404 /404.html; 場所 = /40x.html { } エラーページ 500 502 503 504 /50x.html; 場所 = /50x.html { } }

構成を追加した後、nginx サービスを再起動します

systemctl nginxを再起動します

最後に、MySQL で wordpress データベースを作成します。

例: WordPress データベースの名前:define( 'DB_NAME', 'WordPress123');

MySQL または phpmyadmin のコマンドを使用して、次の名前のファイルを作成する必要があります。WordPress123データベースが存在しない場合、サイトを開くときにデータベース接続エラーが表示されます。

データベースを設定した後、WordPress ページにログインし、サイト名、ユーザー アカウントのパスワード、その他の関連コンテンツを入力すると、サイトが正常に作成されます。サイトのバックエンドにログインした後、まず WordPress の固定リンクを変更し、バックエンドにアクセスし、設定の固定リンクを開きます。
自定义结构后面填入%category%/%post_id%
カテゴリ ディレクトリ /category/ を削除するには、「No category Base」プラグインをインストールします。

残りの詳細な構成を参照してください高品質のボックスサイトのコンテンツ。

スコア

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です