Amazon Cloudの申し込み後、EC2サーバーインスタンスを作成し、WEBサーバーを構築する必要があります。
AWS アマゾンクラウド WEBサーバーのセットアップ 。 Amazon クラウド プラットフォームでサーバーを申請した後、使用する前に Amazon クラウド サーバーを設定する必要があります。Linux仮想マシン インスタンスは次のようになります。レッドハット9 たとえば、WEBサーバーを構築してみましょう。 Red Hat Red Hat Enterprise Linux 9 は、AWS Amazon Cloud の無料プランをサポートしており、Amazon Cloud での Red Hat 9 の構成に追加料金はかかりません。
AWS Amazon Cloud Linux Red Hat 9 システムの初期構成
Red Hat Enterprise Linux 8 仮想マシン インスタンスが有効になった後も空のシステムのままであるため、すべての環境を再構成する必要があります。
以下は、2023 年 1 月 30 日の Amazon Cloud Linux Red Hat 9 システムの初期設定チュートリアルです。
サーバーの root パスワードとリモート ログインを変更する
awsec2クラウドサーバーの作成後、デフォルトでは次のようになります。 ec2 ユーザー アカウントを使用してログインした場合、多くのフォルダーに対するアクセス許可がありません。に変更する必要があります 根 スーパー管理者のログイン。
注: Linux Red Hat 9 オペレーティング システムを作成するときは、最初に SSH リモート コントロール用のキー ペアを作成する必要があります。作成時のシステムのデフォルトの「秘密キー ファイル形式」は「.PPK」です。SSH 接続に PuTTY を使用する場合は、変更され、一般的に使用される「.pem」形式を選択すると、サーバーに SSH 接続できなくなります。
参考資料: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 がある場合は、スワップ領域を追加する必要があります。
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
設定完了後、サーバーを再起動します。
スワップを停止したい場合は、次を使用できます スワップオフ/スワップファイル 、スワップファイルを削除するコマンドは次のとおりです。 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 であることがわかります。
dnf コマンドを使用して直接インストールします。
dnf インストール langpacks-zh_CN.noarch
Y を押してインストールに同意すると、インストール パッケージが自動的にダウンロードされてインストールされます。
中国語フォントをインストールした後、システム言語を変更します。
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 サーバーを構成した対応するセキュリティ グループにアクセスします。
デフォルトで開いているポートは 22、80、および 443 だけであることがわかります。透過的ファイアウォールはすべての受信ポートを開きます。
右上隅の [受信ルールの編集] をクリックし、[受信ルールの編集] で [ルールの追加] をクリックし、タイプとしてすべてのトラフィックを選択し、送信元情報として任意の場所の ipv4 を選択して、後続の IP アドレスとして 0.0.0.0/0 を入力します。
[ルールの保存] をクリックすると、ファイアウォールが透過ファイアウォールに設定され、サーバーのすべてのポートが開かれます。
RHEL 9 で Red Hat サブスクリプションを登録する方法
上記の Remi と EPEL の RPM リポジトリをインストールした後、公式リポジトリは無視して、ここで登録するかどうかを選択できます。
RHEL 9 のインストール中にシステムを登録していない場合は、root ユーザーとして次のコマンドを適用することですぐに登録できます。
Red Hat ユーザーではない場合は、最初に進んでください。Red Hat公式Webサイトへの登録:https://www.redhat.com/wapps/ugc/register.html
ユーザー登録の場合は、実際のメール アドレスを入力してください。登録後、メール内に認証メールへのリンクが表示されます。アカウントはアクティブ化されるまで有効になりません。 Red Hat ユーザー登録が成功したら、Xshell に戻ってログインします。
サブスクリプションマネージャー登録
Amazonクラウド構成 LNMP環境
LNMP (Nginx/MySQL/PHP) をインストールする
Linux、PHP、MySQL を使用する利点については、これ以上言う必要はありません。
Nginx は、Linux 上の小型で効率的な Web サーバー ソフトウェアです。ロシアで 2 番目にアクセス数の多いサイトである Rambler.ru サイト用に Igor Sysoev によって開発されました。長年にわたってロシアのいくつかの大規模な Web サイトで実行されており、現在は多くの国内外のポータルで使用されており、業界の Web サイトでも非常に安定した Nginx が使用されています。
Nginx は非常に安定しており、機能が豊富で、インストールと設定が簡単で、システム リソースが少ないです。
手動でインストールするのが面倒な場合LNMP環境、使用することを選択できます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
リポジトリで php モジュールを有効にします。
dnf モジュールは php:remi-7.4 を有効にします
Yを入力するとphp7.4のモジュールフローが有効になります。
あなたが望むならPHPモジュールフローをリセットする、次のコマンドを使用できます。
dnfモジュールリセットphp
次に、PHP を直接インストールできます。次に、PHP7.4 と関連する依存関係のインストールを開始します。
dnf インストール php php-mysqlnd php-gd
Y を入力した後、php7.4 および関連する依存ソフトウェア パッケージのインストールを開始します。
php -v
phpが正しくインストールされているか確認してください。
mb_strlen 関数がありません。mbstring (mb_strlen) をインストールする方法
mb_strlen 関数はバージョン php7.2 ではデフォルトではインストールされないため、インストールするには dnf を使用する必要があります。まず php-mbstring を検索します
dnf検索php-mbstring
検索してインストールします。
dnf インストール php-mbstring.x86_64
PHP インストール zip 拡張子
一部の Web プログラムでは、PHP の ZIP 拡張子が必要です。 php-pecl-zipをインストールする必要があります
dnf インストール php-pecl-zip
拡張機能のインストール後、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 を押してファイルを保存し、終了します。
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\*
PHP7.3をインストールする
PHPリポジトリに存在するPHPモジュールを確認する
dnfモジュールリストphp
モジュール フローは以前 php7.4 で有効になっていたため、php7.3 をインストールする場合は、PHP モジュールをリセットする必要があります。
dnfモジュールリセットphp
php7.3モジュールのストリーミングを有効にします。
dnfモジュール有効php:7.3
PHP7.3モジュールフローを有効にした後、以下のPHP7.3をインストールします。
dnf インストール php php-mysqlnd php-gd
次に、php -v name を使用して php のバージョンを確認します。 php7.3になりました。
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
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
システムのデフォルトは nginx バージョン 1.14 です。より高いバージョンをインストールする場合は、nginx モジュールをリセットする必要があります。
dnfモジュールリセットnginx
モジュールをリセットした後、インストールするバージョンを選択できます。たとえば、バージョン 1.20 をインストールします。モジュール ストリーミングのバージョン 1.20 を有効にするだけです。
dnf モジュール有効 nginx:1.20
モジュール フローが有効な場合のみ、dnf install コマンドを使用して nginx バージョン 1.20 をインストールします。
dnf インストール nginx -y
nginx を起動するように設定すると、nginx サービスが実行されます。
systemctl で nginx を有効にする
systemctlでnginxを起動
インストール後、netstat を使用して現在のポート占有率を確認します。
netstat -lntup
コマンドが見つからないことを示すメッセージ「-bash: netstat: command not found」が表示された場合は、ネットワーク コンポーネント ツール net-tools もインストールする必要があります。
dnf install net-tools-y
ポートを表示すると、ポート 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
サーバー上のバージョンは MySQL8.0 のみです。以下の MySQL8.0 をインストールしてください。
dnf インストール @mysql
dnf install mysql を使用したインストールと dnf install @mysql を使用したインストールは異なり、@mysql インストール パッケージにはさらに多くのパッケージが含まれています。
インストールが完了したら、MySQL が起動するように設定します。
systemctl を有効にする --now mysqld
次に、MySQL が正常に実行されているかどうかを確認します。
systemctl ステータス mysqld
緑色のライトは正常、赤色のライトは障害があり、MySQL は正常に実行されています。
パスワードとセキュリティ設定を追加する
走る mysql_secure_installation いくつかのセキュリティ関連の操作を実行し、MySQL root パスワードを設定するスクリプト。
sudo mysql_secure_installation
スクリプトの実行後、VALIDATE PASSWORD コンポーネントを構成するかどうかを尋ねられます。このステップでは Y を選択します。
パスワード検証ポリシー レベルを選択し、0 (低) を選択します。
MySQLのパスワードを設定します。ここで設定するパスワードを2回入力します。
提供されたパスワードを引き続き使用してもよろしいですか? 「Y」と入力します。
匿名ユーザーを削除しますか? 「Y」と入力します。
root リモートログインを許可しますか? 「N」と入力します。
テストデータベースを削除しますか? 「Y」と入力します。
許可テーブルをリロードしますか? 「Y」と入力します。
Mysql リモート ログインを設定する root アカウントでリモート ログインを設定する必要がある場合は、上記の手順を繰り返し、root リモート ログインを許可する手順で Y を設定します。当面、Mysql リモート ログインを設定する必要がない場合は、この段落は無視してかまいません。
MySQL が初期化された後、検証のために MySQL にログインする必要があります。
次のコマンドを使用してログインし、パスワードを入力します。
mysql -u root -p
ログイン時に例外がなく、mysql> コンソールが表示されれば、設定とインストールは成功しています。
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」プラグインをインストールします。
残りの詳細な構成を参照してください高品質のボックスサイトのコンテンツ。