優れたソフトウェアと実用的なチュートリアル
Amazon クラウドを申請したら、EC2 サーバーインスタンスを作成し、Web サーバーをセットアップする必要があります。
AWS Amazonクラウド WEBサーバー構築 Amazon クラウド プラットフォーム上のサーバーを申請した後、使用する前に Amazon クラウド サーバーを構成する必要があります。リナックス仮想マシンのインスタンスは次のとおりです。レッドハット9 これをWebサーバーの構築例として考えてみましょう。Red Hat Enterprise Linux 9は、AWS Amazonクラウドの無料パッケージをサポートしています。AmazonクラウドでRed Hat 9を構成する場合、追加料金は発生しません。
AWS Amazon Cloud Linux Red Hat 9 システムの初期設定
Red Hat Enterprise Linux 9 仮想マシン インスタンスが有効になった後も、それはまだ空のシステムであり、すべての環境を構成する必要があります。
以下は、2023 年 1 月 30 日の Amazon Cloud Linux Red Hat 9 システムの初期設定のチュートリアルです。
サーバーのルートパスワードを変更してリモートログインする
AWS EC2クラウドサーバーが作成されると、デフォルトでは ec2ユーザー ログインしているアカウントには、多くのフォルダへのアクセス権がありません。権限を変更する必要があります。 根 スーパー管理者ログイン。
注:Linux Red Hat 9オペレーティングシステムを作成する場合、SSHリモートコントロール用の鍵ペアを作成する必要があります。作成時に、「秘密鍵ファイル形式」はデフォルトで「.PPK」に設定されます。SSH接続にPuTTYを使用する場合は、ここで変更しないでください。一般的に使用されている「.pem」形式を選択すると、サーバーにSSH接続できなくなります。
参考文献:ルートアカウントSSHを使用してAWSにログインする方法
DNFコマンドの自動更新をインストールして有効にする
dnf-automaticをインストールする
dnf インストール dnf-automatic
起動時に dnf-automatic が起動するように設定します。
systemctl start dnf-automatic.timer
Red Hat サブスクリプション権限がない場合、この手順で dnf リポジトリを更新することはできません。
開発ツールパッケージグループをインストールする
開発ツール ソフトウェア パッケージ グループには、Linux でよく使用されるコマンドとツール ソフトウェアのほとんどが含まれています。
dnf グループインストール '開発ツール' -y
DNF更新システムパッケージ
システム内のソフトウェア パッケージを dnf の最新バージョンに更新します。
dnf -y アップデート
システム仮想メモリの構成
オペレーティングシステムのデフォルトインストールではスワップ領域が割り当てられないため、手動で追加する必要があります。オペレーティングシステムにスワップファイル(スワップ領域を割り当てるファイル)が設定されていない場合、メモリロード後にエラーが発生します。
使用 無料-m コマンドを実行してメモリ構成を確認します。Swap の後の数字が 0 の場合は、スワップ領域を追加する必要があります。
Swap の後はすべて 0 なので、Swap 仮想メモリの作成を始めましょう。
指定されたサイズの事前割り当て領域を持つファイルを作成します。ハードディスクの約8GBの領域をシステム仮想メモリとして設定します。
sudo dd if=/dev/zero of=/swapfile bs=1024 count=8388608
スワップ領域として指定されている場合、サーバーが少し遅くなりますので、しばらくお待ちください。
パーティションが完了したら、ls コマンドを使用してファイル サイズを確認します。
ls -lh /スワップファイル
サイズを確認した後、スワップ ファイルの権限を変更する必要があります。
sudo chmod 600 /スワップファイル
操作後、スワップファイルをフォーマットします。
sudo mkswap /スワップファイル
さて、スワップファイルが作成されたので、有効にしましょう。
sudo swapon /スワップファイル
最後に、再起動後にスワップが自動的に有効になるように fstab ファイルを変更します。
sudo vi /etc/fstab
VI を使用して /etc/fstab を編集し、ファイルの末尾に次の内容を追加します。
/swapfile スワップ スワップ sw 0 0
または、echo コマンドを使用して追加します。
echo '/swapfile swap swap swap sw 0 0' | sudo tee -a /etc/fstab
設定が完了したら、サーバーを再起動します。
スワッピングを停止したい場合は、 swapoff /swapfile スワップファイルを削除するコマンドは rm -ir /スワップファイル。
サーバーのタイムゾーンを変更する
サーバーのタイムゾーンをアジア/上海に変更すると、 タイムデートル タイムゾーンを照会するコマンド。
sudo timedatectl set-timezone Asia/Shanghai
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 のみであり、透過型ファイアウォールはすべての受信ポートを開いていることがわかります。
右上隅の「受信規則の編集」をクリックし、「受信規則の編集」で「規則の追加」をクリックし、種類に「すべてのトラフィック」を選択し、ソース情報に「Anywhere ipv4」を選択して、IP アドレスに 0.0.0.0/0 を入力します。
[ルールの保存] をクリックすると、ファイアウォールが透過型ファイアウォールに設定され、サーバーのすべてのポートが開きます。
RHEL 9 で Red Hat サブスクリプションを登録する方法
上記のRemiとEPELのRPMリポジトリをインストールしたら、公式リポジトリは無視して構いません。ここで登録するかどうかを選択できます。
RHEL 9 のインストール中にシステムを登録していない場合は、root ユーザーとして次のコマンドを実行して今すぐ登録できます。
Red Hatユーザーでない場合は、Red Hat公式サイト登録:https://www.redhat.com/wapps/ugc/register.html
ユーザー登録の際は、実際のメールアドレスを入力してください。登録後、メール内に確認メールへのリンクが記載されています。アカウントはアクティベーション後に有効になります。Red Hatユーザーの登録が完了したら、Xshellに戻ってログインしてください。
サブスクリプションマネージャー登録
Amazon クラウド構成 LNMP 環境
LNMP (Nginx/MySQL/PHP) をインストールする
Linux、PHP、MySQL を使用する利点については、多くを語る必要はありません。
Nginxは、Linux向けの小型で効率的なウェブサーバーソフトウェアです。ロシアで2番目に訪問者数の多いウェブサイトRambler.ru向けにIgor Sysoev氏によって開発されました。長年にわたり、ロシアの大手ウェブサイトで運用されています。現在では、国内外の多くのポータルサイトや業界ウェブサイトでもNginxが利用されており、非常に安定しています。
Nginx は非常に安定しており、機能が豊富で、インストールと設定が簡単で、必要なシステム リソースが少なくて済みます。
手動でインストールするのが面倒な場合はLNMP環境使用するか選択できますLNMPワンクリックインストールパッケージ以下の内容は学習参考用です。
AWS PHPをインストールする
クラウドサーバーを構成する際には、PHPが不可欠です。ほとんどのウェブサイトはPHPで書かれています。PHPがインストールされていない場合、サーバーはウェブサイト上で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-mysql、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_TRANSLATED は grok の PATH_INFO ではなく、SCRIPT_FILENAME に設定されていました。PATH_INFO の詳細については、CGI仕様を参照環境変数 this を 1 に設定すると、PHP CGI は仕様に合わせてパスを修正します。0 に設定すると、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がエラー、注意、警告を出力するかどうかを制御します。エラー出力は開発段階では非常に便利ですが、本番環境では非常に危険です。エラーの原因となるコードによっては、データベースのユーザー名やパスワードといった機密情報がアプリケーション外部に漏洩する可能性があり、さらに深刻な事態を招く可能性があります。
実稼働環境では、エラーを stdout に送信するのではなく、ログに記録することをお勧めします。
可能な値:
オフ = エラーを表示しない
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バージョンのダウングレードとアップグレード
一部のウェブサイトプログラムはメンテナンスが不十分で互換性が低く、PHPの下位バージョンしかサポートしていません。このようなウェブ要件を満たし、相互互換性を確保するには、PHPのバージョンをダウングレードする必要があります。例えば、一部のPHPプログラムは暗号化にSG11を使用しています。
SG11 は SourceGuardian 11 の略称です。 SourceGuardian公式バージョンは 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 install 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-mysql、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: コマンドが見つかりません」というプロンプトが表示された場合は、ネットワークコンポーネントツールnet-toolsもインストールする必要があります。
dnf インストール net-tools -y
ポートを確認すると、ポート 80 が nginx によって占有されており、nginx サービスが正常にインストールされていることがわかります。
一般的なコマンド:
再起動:
systemctl nginx を再起動する
起動する:
systemctl nginx を起動する
閉鎖:
systemctl nginxを停止する
州:
systemctl ステータス nginx
Nginxの設定
Nginx の設定ファイル nginx.conf を編集します。ウェブサイトに正常にアクセスできるようにするには、Nginx の設定ファイル nginx.conf を編集して変更する必要があります。nginx.conf は Nginx のコア設定ファイルです。VI コマンドを使用して /etc/nginx/nginx.conf を編集します。
vi /etc/nginx/nginx.conf
#ユーザーまたはグループ user nginx を設定します。#生成可能なプロセス数(デフォルトは1) worker_processes auto です。#エラーログのパスとレベルを指定します。この設定は、グローバルブロック、httpブロック、およびサーバーブロックに配置できます。レベルはdebug | info | notice | warn | error | crit | alert | emergです。レベルが高いほど、記録されるレコード数は少なくなります。通常、error_log /var/log/nginx/error.log にエラーが設定されます。#nginxプロセスの実行ファイルpid(/var/run/nginx.pid)の保存アドレスを指定します。#動的モジュール(/usr/share/nginx/modules/*.confなど)を読み込みます。 #動作モードと接続数の上限 - イベントグローバル設定 events { #単一のワークプロセスに許可される最大接続数。デフォルトは512です。worker_connections 1024; } #httpサーバー構成ファイル block 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; #Allows sendfile によるファイル転送を許可します。既定値はオフで、http ブロック、サーバー ブロック、場所ブロックに指定できます。 sendfile on; #tcp_nopush on; #接続タイムアウト。既定値は 75 秒で、http、サーバー、場所ブロックに指定できます。 keepalive_timeout 65; #gzip圧縮スイッチ。onはGzip圧縮をオンにします。デフォルトはoffで、gzipをオフに設定します。#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 text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml; #http ヘッダーに Vary: Accept-Encoding を追加するかどうかを指定します。gzip_vary をオンにすることをお勧めします。 #/etc/nginx/conf.d ディレクトリからモジュラー構成ファイルを読み込みます。 include /etc/nginx/conf.d/*.conf; }
上記はNginxの比較的シンプルな基本設定です。サーバーのウェブサイト設定は/etc/nginx/conf.d/ディレクトリに保存されます。
次に、実稼働環境のサーバー Web サイト構成を編集します。
#ドメイン名ポート301リダイレクトhttps server { server_name www.uzvod.com; # Webサイトのドメイン名はスペースで区切って複数指定できますreturn 301 http://uzvod.com$request_uri; } #予備構成NginxにはまだSSL証明書がないため、ルートドメイン名に301リダイレクトします。 #Webサイト構成 core blockserver { server_name uzvod.com; root /var/www/uzvod; index index.php index.html index.htm; location ~* ^/(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; rewrite ^/api.php(.*)$ /api.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; } } }
設定を追加したら、nginxサービスを再起動します。
systemctl nginx を再起動する
新しいテストページ index.php を作成し、以下の内容をファイルにコピーします。これは PHP プローブファイルです。
ディレクトリの権限を再設定する
chown -R nginx:nginx /var/www
ドメイン名にアクセスすると、ウェブサイトが正常に開きます。SSLドメイン名証明書をオンラインで申請する必要があることに注意してください。その後、nginxでドメイン名証明書を設定してください。
以下の証明書ロボットを使用して、SSLドメイン名証明書の申請に成功しました。次に、Nginxのサーバー設定ファイルを変更してください。
#Domain name port 301 redirect https server { listen 80; listen [::]:80; server_name www.uzvod.com uzvod.com; # ウェブサイトのドメイン名 (複数指定可能、スペースで区切る) return 301 https://uzvod.com$request_uri; ssl_certificate /etc/letsencrypt/live/uzvod.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/uzvod.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # は Certbot によって管理されています } #Website 構成 core block server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name uzvod.com; root /var/www/uzvod; index index.php index.html index.htm; http2_push_preload on; # 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 が必須です)。 # TLSv1.3 の 0-RTT を有効にします。 リバース プロキシの場合は $ssl_early_data を使用して、リプレイ攻撃を防止します。 # # @参照: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data ssl_early_data on; ssl_session_cache shared:SSL:50m; # HSTS (ngx_http_headers_module が必要) (15768000 秒 = 6 か月) add_header Strict-Transport-Security max-age=31536000; # OCSP ステープル --- # ssl_certificate の URL から OCSP レコードを取得してキャッシュします ssl_stapling on; ssl_stapling_verify on; include /etc/nginx/default.d/*.conf; # /etc/nginx/default.d からデフォルトのサーバー ブロック構成ファイルを読み込みます。 location ~* ^/(upload|vendor|thinkphp|extend|addons|application)/.*\.(php|php5)$ { deny all; } # 疑似静的ページ location / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^/admin.php(.*)$ /admin.php?s=$1 last; rewrite ^/api.php(.*)$ /api.php?s=$1 last; rewrite ^(.*)$ /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; 0-RTT in TLSv1.3 proxy_set_header Early-Data $ssl_early_data; } }
設定を追加したら、nginxサービスを再起動します。
systemctl nginx を再起動する
注: Nginx の設定が完了したら、以下の Certbot を使用して SSL ドメイン名証明書を生成します。最初に Nginx で SSL アクセスルールを設定しないでください。
NginxはCertbotを通じてSSLドメイン名証明書を生成します
Certbot は、Let's Encrypt 証明書の使用を自動化し、手動で管理される Web サイトで HTTPS を有効にする無料のオープン ソース ソフトウェア ツールです。
Certbot は、カリフォルニア州サンフランシスコに拠点を置き、デジタル プライバシー、言論の自由、イノベーションを守る 501(c)3 非営利団体である Electronic Frontier Foundation (EFF) によって開発されました。
Nginxの設定後、SSLドメイン名証明書ロボットCertbotを使用して、Growth CityのSSLドメイン名証明書を取得できます。具体的なインストール方法については、以下をご覧ください。
参考文献:無料のSSL証明書ロボット:Certbotは、httpsドメイン名証明書の自動更新を迅速に申請します
AWSにMySQLをインストールする
MySQLモジュールを取得する
dnfモジュールリストmysql
サーバーにはMySQL 8.0のみがインストールされているので、MySQL 8.0をインストールしましょう。
dnf インストール @mysql
dnf install mysql と dnf install @mysql を使用したインストールは異なります。@mysql には、より多くのインストール パッケージがあります。
インストール後、MySQLを起動時に起動するように設定する
systemctl enable --now mysqld
次に、MySQL が正常に実行されているかどうかを確認します。
systemctl ステータス mysqld
緑のライトは正常な動作を示し、赤のライトは障害を示し、MySQL は正常に動作しています。
パスワードとセキュリティ設定を追加する
走る mysql_secure_installation いくつかのセキュリティ関連の操作を実行し、MySQL ルート パスワードを設定するスクリプト。
sudo mysql_secure_installation
スクリプトの実行後、VALIDATE PASSWORDコンポーネントを設定するかどうかを尋ねられます。この手順では「Y」を選択してください。
パスワード検証ポリシー レベルを選択し、0 (低) を選択します。
MySQLのパスワードを設定します。設定したいパスワードを2回入力します。
入力したパスワードを引き続き使用してもよろしいですか? Y と入力してください。
匿名ユーザーを削除しますか? Y と入力します。
ルートリモートログインを許可しますか? N と入力します。
テストデータベースを削除しますか? Y と入力します。
権限テーブルを再ロードしますか? Y と入力します。
MySQLのリモートログインを設定します。ルートアカウントのリモートログインを設定する必要がある場合は、上記の手順を繰り返し、ルートのリモートログインを許可する手順をYに設定します。当面MySQLのリモートログインを設定する必要がない場合は、この段落は無視してください。
MySQLが初期化されたら、検証のためにMySQLにログインする必要があります。
次のコマンドを使用してログインし、パスワードを入力します。
mysql -u ルート -p
ログインに異常がなく、mysql>操作コンソールが表示できれば設定とインストールは成功しています。
MySQL コンソールで新しいユーザーを作成することも、MySQL 管理ツールを使用して新しいユーザーまたはデータベースを作成することもできます。
MySQLコンソールで新しいユーザーを作成する方法
リモートログイン用の新しいユーザーを作成する
UserNameにユーザー名を入力し、HostにIPアドレスを入力してください。例えば、8.8.8.8は、ユーザーがIPアドレス8.8.8.8からのみログインできることを意味します。IPログインを制限しない場合は、Hostに%を入力し、Passwordにパスワードを入力してください。
'Password' で識別されるユーザー 'UserName'@'Host' を作成します。
新しく作成したユーザーに権限を付与します。ここでのユーザー名とホストは、前の手順で作成したユーザーと同じです。
GRANTオプションを使用して、*.* のすべての権限を 'UserName'@'Host' に付与します。
念のため、リモート ログインが利用可能かどうかをテストします。パスワードを変更するための MySQL ステートメントは次のとおりです。
'Password' で識別されるユーザー 'root'@'localhost' を変更します。
ここまででMySQLはインストールされました。設定ファイルに追加の要件がある場合は、変更してください。 /etc/my.cnf 内の構成ファイル。
上記の設定が完了したら、MySQL サービスを再起動します。
systemctl で mysqld を再起動します。
MySQLの一般的なコマンド
MySQLを起動する
systemctl で mysqld を起動する
MySQLを再起動する
systemctl で mysqld を再起動します。
MySQLを停止する
systemctl で mysqld を停止します。
MySQLのステータスを確認する
systemctl ステータス mysqld
AWS phpMyAdminをインストールする
phpMyAdminはPHP処理するために書かれた無料のソフトウェアツールMySQL 管理。phpMyAdminは、MySQLとMariaDBの幅広い操作をサポートしています。一般的な操作(データベース、テーブル、列、リレーション、インデックス、ユーザー、権限などの管理)はユーザーインターフェースから実行できます。また、任意のSQL文を直接実行することも可能です。
phpMyAdmin は MySQL の管理ツールです。phpMyAdmin の Web サイト:https://www.phpmyadmin.net/
wget ダウンロード コマンドをインストールします。
dnf インストール wget
phpMyAdmin-5.1.3の最新バージョンをダウンロードしてください。tar.gz形式であることにご注意ください。
https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.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
vi config.default.php
host の後の localhost を 127.0.0.1 に変更します。注意: 数字を入力する際にキーパッドを使用しないでください。
意思$cfg['サーバー'][$i]['ホスト'] = 'localhost';変更する$cfg['サーバー'][$i]['ホスト'] = '127.0.0.1';
$cfg['サーバー'][$i]['ユーザー'] = 'root';
$cfg['Servers'][$i]['password'] = '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 を編集します。
vi config.inc.php
phpMyAdmin がクッキーに使用する短いパスワードを変更します。
$cfg['blowfish_secret'] = ''; 変更する $cfg['blowfish_secret'] = '123456*******';
注: '123456*******' は 32 ビットを超えるパスワード文字です。
このパスワードは、複数の PhpMyAdmin または他のプログラムが Cookie を共有するときに混乱を避けるために、Cookie を暗号化するために使用されます。
短いパスワードを編集した後、ホスト オプションを変更します。 $cfg['サーバー'][$i]['ホスト'] = 'localhost'; 変更する $cfg['サーバー'][$i]['ホスト'] = '127.0.0.1';
セッション パス (たとえば、/var/lib/php/session) のユーザー グループと権限を変更し、対応するセッション パスに移動します。
/var/lib/php をコピーする
chown nginx:nginx ./session
chmod -R 777 ./session
phpmyadminディレクトリに新しいtmpフォルダを作成し、権限を777に設定します。
mkdir /var/www/phpMyAdmin/tmp
chmod -R 777 /var/www/phpMyAdmin/tmp
最後に、phpMyAdmin ファイルが保存されているディレクトリのユーザー アクセス権を変更します。
chown -R nginx:nginx /var/www
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
フォルダをウェブサイトディレクトリに移動するmv wordpress /var/www
cd /var/wwwroot
wp-config-sample.phpファイルの名前を変更しますcp wp-config-sample.php wp-config.php
ウェブサイトの構成ファイルを変更します。vi wp-config.php
WordPress データベースの名前: definition( 'DB_NAME', 'WordPress' );
MySQL データベースのユーザー名: Define( 'DB_USER', 'root' );
MySQL データベースのパスワード: definition( 'DB_PASSWORD', 'mysql password' );
MySQLホスト: 定義( 'DB_HOST', '127.0.0.1' );
データ テーブルを作成するときのデフォルトのテキスト エンコーディング: definition('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 構成ファイルに、疑似静的プラグインのインストール用の次のコードを追加します。
# 你的ドメイン名return 301 https://uzbox.tk$request_uri; # 将 www ドメイン名 301 に登録 uzbox.tk } サーバー { listen 443 ssl http2;リッスン [::]:443 ssl http2;サーバー名 uzbox.tk;ルート/ホーム/wwwroot; ssl_certificate "/home/ssl/fullchain.cer"; ssl_certificate_key "/home/ssl/uzbox.tk.key"; ssl_session_cache 共有:SSL:1m; ssl_session_timeout 10分; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CH ACHA20-draft: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 オン; # TLSv1.3 の 0-RTT 用設定 ssl_early_data オン; ssl_stapling オン; ssl_stapling_verify オン; add_header Strict-Transport-Security "max-age=31536000"; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; # は、WordPress の疑似静的設定をサポートするために使用されます。 } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
設定を追加したら、nginxサービスを再起動します。
systemctl nginx を再起動する
最後に、MySQL で WordPress データベースを作成します。
たとえば、WordPressデータベースの名前:define('DB_NAME', 'ワードプレス123' );
コマンドまたは phpmyadmin を使用して MySQL で新しいものを作成する必要があります。ワードプレス123そうしないと、サイトを開いたときにデータベース接続エラーが表示されます。
データベースの設定後、WordPressページにログインし、サイト名、ユーザーアカウントのパスワード、その他の関連情報を入力すると、サイトが正常に作成されます。サイトのバックエンドにログインしたら、まずWordPressの固定リンクを変更し、バックエンドに入り、固定リンクの設定を開く必要があります。
自定义结构后面填入%category%/%post_id%
カテゴリディレクトリ /category/ を削除するには、「No Category Base」プラグインをインストールします。
残りの詳細な設定については、ボックスショップサイトのコンテンツ。