Centos8 での Google Cloud Server の設定と LNMP 環境 PHP+Mysql+Nginx のインストールの詳細説明
グーグルクラウドサーバ構成 作業者が仕事をうまくやりたいなら、まず道具を研ぐ必要があります。ナイフを研いだり、間違って薪を割ったりする必要があります。まず、サーバーの LNMP 環境を設定します。建てるさて、Webサイトを構築する場合、PHP環境が整っていないと後々大変なことになります。以前に PHP 環境を手動でインストールおよびデプロイする方法について説明しましたが、今日はサードパーティ パネルを使用せずに PHP 環境をインストールおよびデプロイする方法について説明します。Googleクラウドサーバー使用する DNF PHP+ を手動でインストールするコマンドMySQL+Nginx環境構築方法。
このチュートリアルは次の対象に適用されます: Centos7/CentOS ストリーム 8/CentOS ストリーム 9/レッドハット エンタープライズ Linux (RHEL)
Googleクラウドサーバー構成
Centos8 システムがインストールされているグーグル無料のクラウドサーバー上記の、この記事でテストしたマシンタイプは e2-medium (2 vCPU、4 GB メモリ) です。
CentOS 8が21年末にサポートを終了し、CentOS Streamにアップグレードすると発表したため、Googleは 雲 以前の Centos8 システムを CentOS Stream 8 および CentOS Stream 9 システムにアップデートしても、操作性はあまり変わりません。ソフトウェア ウェアハウスのソースを追加するだけです。
以下では、CentOS Stream 8 システムを例として実行します。Googleクラウドサーバー構成:
Google Cloud Google Cloud アプリケーションと仮想マシン設定方法については、以下を参照してください。Google Cloud に無料で申し込む
VMサーバのセットアップ後、SSH接続して運用を開始します。 Centos8 システムをインストールした後、最初に行うことは、システムの root パスワードを変更することです。
Google Cloud Platform の組み込み Web SSH を使用してサーバーに接続し、ログイン後に SSH 接続方法を変更します。
Google クラウド サーバーの構成がサーバーの root パスワードを変更する
使用 sudo -i または 須藤す スーパー管理の root ユーザーに切り替えるコマンド。root スーパー管理者モードに切り替えて、次のように入力します。 パスワード パスワードを変更するコマンド。
sudo -i パスワード
変更したいパスワードを入力し、確認用のパスワードを2回入力し、確認後Enterを押すと設定が完了します。使用 CD\ ルートディレクトリに切り替えるコマンド。
使用 VI SSH 設定ファイルを変更するコマンド。
vi /etc/ssh/sshd_config
SSH リモート接続用のポートを変更する場合は、ポートの前にある # 番号を削除し、変更するポート番号を変更します。
sshd_config の次の内容を変更します。
- PermitRootログイン デフォルト値は no ですが、SSH リモート アクセスを使用する前に、yes に変更する必要があります。
- パスワード認証 デフォルト値は no ですが、パスワード ログインを有効にするには、yes に変更します。
- クライアントアライブ間隔 デフォルト値は 420 ですが、クライアント接続のタイムアウト時間である 3600 に変更されます。
ポート 10086 PermitRootLogin はい PasswordAuthentication はい ClientAliveInterval 3600
変更後、使用します:wqVI編集を終了するコマンド。
以上がGoogle Cloud Serverを利用してSSHログインを有効にする方法です。 SSH ポートを変更した後は、SElinux をオフにする必要があります。オフにしないとログインできません。
SElinuxを完全にシャットダウンする
Googleクラウドを構成するSElinuxはLinuxのセキュリティを強化するために使用されますが、設定が非常に面倒です。永久に閉じることをお勧めします。
vi /etc/selinux/config
SELINUX=enforcing を見つけ、i を押して編集モードに入り、パラメータを SELINUX=disabled に変更します。
変更が完了したら、キーボードの Esc キーを押し、コマンド wq を実行し、ファイルを保存して終了します。次に、再起動してサーバーを再起動します。 SElinux は正常にシャットダウンされました。次のステップは、SSH ポート番号を変更することです。インターネット上には自動スキャン マシンが多数あります。一度感染すると、悲惨な結果になります。Google Cloud はトラフィックに基づいて料金を請求します。ただし、300 US が無料です。数千ドルでも問題ありません。したがって、最初に SSH のリモート ポートを変更することをお勧めします。
注: 一部のシステムではファイアウォールがデフォルトで有効になっているため、ファイアウォールのステータスを確認する必要があります。
systemctl ステータス ファイアウォール
ファイアウォールがオンになっている場合は、root ユーザー権限を使用して firewalld をオフにする必要があります。
# はまずファイアウォールを停止する必要があります。 systemctl stop firewalld # ファイアウォールが停止した後、永続的にシャットダウンします。 systemctl disable firewalld
後で本番環境に入るときに、Google Cloud プラットフォームにファイアウォールを設定できます。
サーバーを再起動してください!
リブート
Google Cloud Server は CentOS 7/CentOS Stream 8/9 を構成し、ソフトウェア ソース epel と remi をインストールします
次に、centos8 システムに必要なソフトウェアをさらにインストールする必要があるため、システムのアップデートとシステム ソフトウェア パッケージに必要なソースのインストールを開始しましょう。追い出す と remi は centos8 に不可欠なソフトウェア リポジトリです。
RPM を使用してソフトウェア ソースをインストールします。
CentOS 7 インストール ソフトウェア リポジトリ:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
CentOS Stream 8 インストール ソフトウェア リポジトリ:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-8.rpm
CentOS Stream 9 インストール ソフトウェア リポジトリ:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-9.rpm
DNF メソッドを使用してソフトウェア ソースをインストールします。
DNF は、次世代の yum パッケージ マネージャー (Yum の派生版) です。 dnf と yum の構文は似ており、多くの類似点があります。DNF は、RHEL 8 および CentOS Stream 8 システムにデフォルトでインストールされます。
CentOS 7 インストール ソフトウェア リポジトリ:
CentOS7ではまずdnfコマンドをインストールする必要があります。
dnf インストール https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm dnf インストール https://rpms.remirepo.net/enterprise/remi-release-7.rpm
CentOS Stream 8 インストール ソフトウェア リポジトリ:
dnf インストール https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm dnf インストール https://rpms.remirepo.net/enterprise/remi-release-8.rpm
CentOS Stream 9 インストール ソフトウェア リポジトリ:
dnf インストール https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm dnf インストール https://rpms.remirepo.net/enterprise/remi-release-9.rpm
ソフトウェアソースがインストールされたら、インストールします dnf-utils
dnf-utils
DNF 上の CLI シムとして実装されたクラシックな YUM ユーティリティ。これらの shim の主な目的は、yum-3 との下位互換性を確保することです。
インストール後に使用する DNFアップデート
システムソフトウェアを最新バージョンにアップデートするコマンド。
dnf インストール dnf-utils dnf アップデート
システムで有効になっているデータ ソースを確認するには、次を使用します。 DNFはすべて再ポリストします このコマンドは、無効なデータ ソースを含むすべてのデータ ソースを表示できます。
DNFはすべて再ポリストします
使用 DNF再ポリリスト 現在使用されているソフトウェア ソースを表示するコマンド。
DNF再ポリリスト
使用 DNF リポリストが無効になっています システムが無効にしたデータ ソースを表示するコマンド。
DNF リポリストが無効になっています
ソフトウェア ソースをインストールした後、インストールされたソフトウェア パッケージ ソースをセットアップして最適化する必要があります。使用 メイクキャッシュ このコマンドはソース キャッシュを生成します。
dnf メイクキャッシュ
DNF を有効にして自動更新をインストールします。
dnf install dnf-automatic systemctl start dnf-automatic.timer
「開発ツール」パッケージ グループをインストールします。
dnf グループ install '開発ツール' -y
DNF を使用してシステム パッケージを更新します。
dnf -y アップデート
Google Cloud Server が SWAP 仮想メモリを構成する
Google Cloud によってインストールされるデフォルトのオペレーティング システムはスワップ領域を割り当てないため、手動で追加する必要があります。オペレーティング システムがスワップファイルを構成しない (スワップ領域を割り当てる) と、メモリ ロード後にエラーが発生します。 centos8オペレーティングシステムのスワップ領域を追加する方法を教えましょう!
使用 フリー -m コマンドを使用してメモリ構成を確認し、Swap の後に 0 がある場合は、スワップ領域を追加する必要があります。
フリー -m
6 つの手順を使用してスワップ仮想メモリを作成します。
- 指定されたサイズの事前に割り当てられたスペースを使用してファイルを作成します。
- lsコマンドでファイルサイズを確認するには;
- スワップ ファイルの権限を変更します。
- スワップファイルをフォーマットします。
- スワップファイルを有効にします。
- 再起動後に自動的に有効になるように fstab ファイルを変更します。
8G SWAP パーティションを作成します。SWAP 仮想メモリを増減したい場合は、count= の後の値を変更してください。
sudo dd if=/dev/zero of=/swapfile bs=1024 count=8388608 ls -lh /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile sudo vi /etc/fstab
使用 VI このコマンドは、fstab ファイルの末尾に次の内容を追加します。
/swapfile スワップ スワップ sw 0 0
使用したくない場合は、 VI コマンドを直接使用することもできます エコー 起動時にスワップが開始されるように設定するコマンド。
echo '/swapfile swap swap sw 0 0' | sudo tee -a /etc/fstab
サーバー時刻の同期
サーバー時刻同期ツールをインストールする サーバーとクライアント間の時刻同期は非常に重要です。
現在のタイムゾーンを確認します。タイムゾーンが UTC の場合は、サーバーのタイムゾーンを変更する必要があります。
timedatectl status|grep 'タイム ゾーン' # サーバーのハードウェア時刻を表示します。 hw Clock # オペレーティング システムの時刻をハードウェア時刻に同期します。
サーバーのタイムゾーンを変更する
timedatectl set-timezone アジア/上海 timedatectl set-local-rtc 1 # は、date コマンドを使用して現在のサーバー時刻を確認します。日付
サーバーのタイムゾーンをアジア/上海に変更します。これは後で使用できます。 時刻日付ctl タイムゾーンを問い合わせるコマンド。
CentOS 8 では、ntp ソフトウェア パッケージはデフォルトでサポートされなくなり、時刻同期は chrony によって実装されます。
デフォルトでは、chrony ソフトウェア パッケージは、centos8 システムのインストール後にすでに存在します。rpm -q chrony によって存在するかどうかを確認できます。存在しない場合は、dnf を使用してインストールします: dnf install chrony
vi /etc/chrony.conf
サーバー ntp.aliyun.com iburst
国内の Alibaba Cloud 時刻同期サーバーを最初の行に追加して保存するだけです。
chrony を設定して実行を開始する
systemctl chronyd を有効にする systemctl chronyd を開始する
新しいユーザーとユーザー グループを追加する
Centos8 を構成する前に、Web サービス アクセスに関連する権限を与えるユーザー グループとユーザーを追加する必要があります。
groupadd www useradd -g www www
ユーザーとユーザーグループの設定が完了すると、Centos8の基本環境はほぼ整ったので、Web関連サービスのインストールを開始します。
Centos8の設定が完了したら、Nginx+PHP8+Mysqlをインストールしますので、Nginxをインストールしてから、PHP8、Mysqlをインストールする順番を間違えないように注意してください。Nginx のインストール後は設定は必要なく、PHP8 のインストール後に Nginx の設定を行うことができます。
CentOS に付属の TCP BBR アクセラレーションをオンにする
システムに 4.9 以降のカーネルが付属している場合、BBR がデフォルトで含まれています。
1. root 権限を使用して次のコードを実行します (カーネル バージョンは 4.9 以降です)。
uname -r
2.BBRをオンにする
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
3. 効果的な変更
sysctl-p
4. 以下のコマンドを実行し、結果に bbr が含まれていれば、カーネルで bbr が有効になっていることがわかります。
sysctl net.ipv4.tcp_available_congestion_control
注: 次のコマンドを実行することもできます。結果に bbr があれば、カーネルで bbr が有効になっていることも証明できます。
lsmod | grep bbr
Google Cloud サーバーの構成とインストール Nginx
nginx のインストールは比較的簡単です。インストール後にバージョンを確認すると 1.14.1 になっています。DNF を使用したソフトウェア パッケージは比較的安定したパッケージです。バージョンが若干低い場合がありますが、これは CentOS の公式ソースでは正常です。
Nginx をインストールする前に、まず Nginx に必要な依存関係パッケージをインストールします。
dnf -y install zlib zlib-devel pcre pcre-devel openssl openssl-devel gd-devel make gcc gcc-c++
- gcc Linux コンパイラ
- pcre は、perl 互換の正規表現ライブラリを含む perl ライブラリです。nginx の http モジュールは、pcre を使用して正規表現を解析します。
- zlib ライブラリは、さまざまな圧縮と圧縮を提供します。解凍するnginx が zlib を使用して http パッケージのコンテンツを処理する方法gzip
- openssl は安全な Web 通信の基礎、つまり https 関連の依存関係です。
nginx をインストールします。
Nginx に必要な依存関係パッケージがインストールされたら、次のコマンドを入力して nginx をインストールします。
dnf インストール nginx nginx -v
インストール後、スタートアップを設定します。
systemctl で nginx を有効にする
Nginx を起動します。起動後、以下の Nginx の現在の状態を確認します。
systemctl nginx の開始 systemctl ステータス nginx
ポート 80 の現在のステータスを確認します。
netstat -na | grep 80
nginx のデフォルト ポートが開いているかどうかを確認して設定します。
ファイアウォール-cmd --query-port=80/tcp
戻り値が no の場合、ポート 80 は開いていないため、ポート 80 を許可するようにファイアウォールを設定する必要があります。
ポート 80 を開きます。
firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload
ブラウザにサーバーの IP アドレスを入力し、nginx のようこそページにアクセスできるかどうかを確認します。
Nginx のインストールが成功したので、インストール先ディレクトリを確認します。 Nginx を手動でインストールするディレクトリは通常 /usr/local/nginx ですが、yum/dnf を使用してインストールされたディレクトリは手動でインストールされたディレクトリとは異なります。yum/dnf を使用して nginx をインストールする場合に対応するディレクトリは次のとおりです。
- Nginx のメイン設定ファイル: /etc/nginx/nginx.conf
- Nginx実行ファイルディレクトリ:/usr/sbin/nginx
- Nginx ホームページの HTML ページのパス: /usr/share/nginx/html
- 演技ディレクトリ:/var/cache/nginx/proxy_temp
- Nginx キャッシュ ディレクトリ:/var/cache/nginx/fastcgi_temp
- scgi ディレクトリ:/var/cache/nginx/scgi_temp
- uwsgi ディレクトリ:/var/cache/nginx/uwsgi_temp
- Nginx ログ ディレクトリ:/var/log/nginx
インストール後に使用する nginx -t コマンドを使用して、インストールが正しいかどうかをテストします。正解すると次の内容が返されます。
CentOS8 のデフォルトのソフトウェア リポジトリに組み込まれている nginx のバージョンは 1.14.1 ですが、最近、スキャンが不足しているため、バージョン 1.17.7 以降にアップグレードする必要があるとのメッセージが表示されました。より高いバージョンの nginx をインストールする場合は、次を確認してください。Centos8に最新バージョンのNginxをインストールする方法
Googleクラウドサーバーの設定とPHP8のインストール
使用する場合 dnf -y php をインストールする コマンドがデフォルトで PHP をインストールする場合、デフォルトでインストールされるバージョンは非常に低く、現在の PHP バージョンは PHP8.1 です。PHP8.1 をインストールする方法を見てみましょう。
まず、システムに PHP8.1 をインストールするためのソフトウェア ソースを確認します。
DNFリストPHP
Centos8 のデフォルト ウェアハウスの php バージョンは 7.2.24 です。このバージョンは低すぎます。次に、remi ソースに切り替えて、php8.1 バージョンを見つけます。
利用可能な PHP のリストを取得します。
dnfモジュールリストphp
次のステップでは、remi ウェアハウスの PHP モジュールを有効にし、まず PHP モジュールをリセットします。
PHP データ ソース モジュールをリセットします。
dnfモジュールリセットphp
次に、新しい PHP データ ソース モジュールをセットアップして有効にします。php8.1 をインストールし、remi-8.1 を有効にする必要があります。
dnf モジュールは php:remi-8.1 を有効にします
remi-8.1モジュールが有効になったので、php8.1をインストールしましょう。
インストール コマンドを入力してインストールします。
dnf installphp
PHP が正常にインストールされたら、一般的に使用されるいくつかの PHP 拡張機能パッケージを追加でインストールします。
dnf install -y php-{mysqlnd、xml、xmlrpc、curl、gd、imagick、mbstring、opcache、soap、zip}
php8.0の拡張機能のインストール
dnf install -y php-{mysqlnd,pecl-imagick,pecl-imagick-devel,gd,intl,cli,mbstring,curl,php-pecl-zip}
使用 DNF検索 PHP8.1 で利用可能な拡張パッケージを確認するコマンド:
dnf 検索 php81*
問い合わせた結果、php81 関連のソフトウェア パッケージが多すぎることがわかりました。これらは何に使用されますか?どれをインストールする必要があり、どれをインストールしないほうがよいでしょうか?以下は、php8.1 拡張機能インストール パッケージの詳細な紹介です。
PHP8.1 の準備が整ったので、どの拡張パッケージがインストールされているかを確認してみましょう。
rpm -qa|grep php
も使用できます php –モジュール インストールされている PHP 拡張機能をクエリするコマンド。
php --モジュール
PHP 拡張機能もインストールする必要がある場合は、dnf -y install コマンドと、インストールする必要がある拡張機能の名前を使用します。
たとえば、PHP 用の mysqlnd 拡張機能をインストールします。
dnf install -y php-mysqlnd
上記をインストールしたら、次にphpの起動設定を行います。
systemctl で php-fpm を有効にする
使用 システム制御 素早く簡単に管理できるコマンド。新しい PHP ソフトウェア パッケージの更新がある場合は、次のコマンドを使用して、利用可能な最新バージョンにアップグレードできます。
DNFアップグレード
これで PHP8.1 のインストールが正式に完了したので、PHP サービスを開始して PHP を動作させます。
systemctl を有効にする php-fpm --now
systemctlステータスphp-fpm
ステータス ライトが緑色の場合は、PHP が正常に動作していることを意味します。いくつかの PHP 設定ファイルを変更する必要があります。
PHP8の設定
php.iniファイルを変更する
php.ini ファイルは PHP の中核となる設定ファイルです。変更には注意してください。
php.ini ファイルの場所を見つけます。
php -info | grep php.ini
php.iniファイルを編集する
使用 VI コマンドを使用して php.ini ファイルを編集するか、SFTP を使用してサーバーにログインし、メモ帳を使用して php.ini ファイルを編集および変更します。推奨される SFTP クライアントは Xftp です。
vi /etc/php.ini
ファイル内の変数を次の値に変更します。
# は PHP エラーを出力します。display_errors = on # はメモリ使用量を 256M に増加します。memory_limit = 256M # ファイルのアップロード サイズ、デフォルト値は小さすぎます。1024M の 1G サイズを変更することをお勧めします。upload_max_filesize = 1024M # 形式の最大値48M が推奨されます: post_max_size = 48M # 各スクリプトの最大実行時間 (秒): max_execution_time=600 # が受け入れることができる GET/POST/COOKIE 入力変数の数: max_input_vars = 3000 # 各スクリプトがリクエスト データの解析に費やす最大時間: max_input_time = 1000
変更が完了したら保存して終了し、phpのwww.confファイルを変更します。
改訂 http://www.conf 書類
http://www.confはphp-fpmのプロセスサービスの設定ファイルです。
ユーザーグループとユーザー名の変更、設定 http://www.conf ファイルに対するユーザー グループのアクセス許可。意思 http://www.conf アクセス権限設定 -R、ユーザー、ユーザーグループをnginxに設定
chown nginx:nginx -R /etc/php-fpm.d/www.conf
編集 http://www.conf ファイルを作成し、ユーザーおよびユーザー グループ変数を変更します。
vi /etc/php-fpm.d/www.conf
意思 http://www.conf ファイル内の変数 ユーザー そして グループ すべては次のように変更されました nginx。
変更後、表示します 聞く 変数:
注: 変数 聞く、デフォルトは listen = /run/php-fpm/www.sock 127.0.0.1:9000 を使用して Nginx で PHP にアクセスする場合は、次のことが必要です。 聞く 変数を listen = 127.0.0.1:9000 に変更します。それ以外の場合、Nginx で 127.0.0.1:9000 を使用すると、PHP にアクセスできなくなります。
次に、リクエストのタイムアウト値を変更し、単一リクエストのタイムアウト期間を変更し、先行するセミコロンを削除して、値を 600 に変更します。
request_terminate_timeout = 600
変更が完了したら、:wq ファイルを保存して終了すると、www.conf ファイルが変更されます。
セッション権限を変更する
たとえば、/var/lib/php/session のユーザー グループと権限を変更します。
cd /var/lib/php chown nginx:nginx ./session chmod -R 777 ./session
systemctlリロードphp-fpm
この時点で、PHP はインストールおよび構成されています。PHP サービスを再起動するか、サーバーを再起動します。
注: Nginx が PHP アクセスをサポートしていない場合は、listen 変数が Nginx の設定と一致しているかどうかを確認し、127.0.0.1:9000 を使用してアクセスしている場合は、ファイアウォールでポート 9000 が開いているかどうかを確認してください。
netstat -lntp
PHPコンソールコマンド
# PHP の開始: systemctl start php-fpm # 停止: systemctl stop php-fpm # 再起動: systemctl restart php-fpm # 変更した設定を有効にするために再起動: systemctl reload php-fpm # スタートアップのセットアップ: systemctl enable php-fpm #PHP 現在のステータス: systemctl ステータス php-fpm
PHPをアンインストールする
dnf を使用してインストールされた php サービスをアンインストールする場合は、アンインストール コマンドを実行できます。
注: php を手動でコンパイルしてインストールする場合、取り除く アンインストール コマンドが無効です。まず php メイン プログラムをアンインストールしてから、システムに付属の php-common を削除してください。
dnf 削除 php dnf 削除 -y php-common
SELinuxを無効にする
存在する CentOS 8 永久に無効化されました SELinux
vi /etc/selinux/config
意思 SELinux プロパティは次のように設定されています 無効 次に、サーバーを再起動します。
Google Cloud サーバー構成 Nginx の構成
以下では、例として nginx1.20.1 バージョンを取り上げます。
nginx.confを編集する
Web Web サイトに正常にアクセスできるようにするには、Nginx 構成ファイル nginx.conf を編集および変更する必要があります。nginx.conf は、Nginx のコア構成ファイルです。使用 VI /etc/nginx/nginx.confを編集するコマンド。
vi /etc/nginx/nginx.conf
以下は、参照のみを目的とした単純な nginx.conf ファイルの例です。
user nginx; # はユーザーまたはグループを構成します。デフォルトは、nobodybody です。 worker_processes auto; # は生成するプロセスの数を許可します、デフォルトは 1 です pid /run/nginx.pid; # は nginx プロセス実行ファイルのストレージアドレスを指定します error_log /var/log/nginx/error.log error; # はエラーログのパスとレベル。この設定は、グローバル ブロック、http ブロック、およびサーバー ブロックに配置できます。レベルは次のとおりです: debug|info|notice|warn|error|crit|alert|emerg。レベルが高いほど、レコードは少なくなります。一般に、エラー #動的モジュールをロードするように設定されています。 include /usr/share/nginx/modules/*.conf; # 動作モードと接続の最大数 - events global settings events { accept_mutex on; # は、サンダーリング グループの発生を防ぐためにネットワーク接続のシリアル化を設定します、デフォルトは on multi_accept on ; # は、プロセスが同時に複数のネットワーク接続を受け入れるかどうかを設定します。デフォルトはオフです。 #use epoll; # イベント駆動型モデル、select|poll|kqueue|epoll|resig|/dev/poll|eventport worker_connections 4096; # 最大値単一のワークプロセスで許可される接続 番号、デフォルトは 512 } #http サーバー構成ファイル ブロック http { log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for '; 1TP 5T カスタム ログ形式 access_log /var/log/nginx/ access.log myFormat; # 設定 アクセス ログのパスと形式。 combined はログ形式のデフォルト値です。 rewrite_log on; #access_log off; # cancel service access log sendfile on; # では、sendfile モードでファイルを転送できます(デフォルトはオフで、http ブロック、server ブロック、location ブロックに含めることができます)。 sendfile_max_chunk 0; # プロセス呼び出しごとの転送数は設定値を超えることはできません。デフォルトは 0、つまり上限はありません。 keepalive_timeout 1000; # 接続タイムアウト、デフォルトは 75 秒、http、server、location ブロックに含めることができます。 client_max_body_size 1024m;types_hash_max_size 4096; tcp_nolay on; tcp_nopush on;default_type application/octet-stream; # デフォルト ファイル タイプ、デフォルトは text/plain fastcgi_connect_timeout 3000; #fastcgi 接続タイムアウト、デフォルト 60 秒 fastcgi_send_timeout 3000; # nginx プロセスはリクエストを次のように送信します。 fastcgi プロセス プロセスのタイムアウト時間、デフォルト値は 60 秒 fastcgi_read_timeout 3000; # fastcgi プロセスが出力プロセスを nginx プロセスに送信するためのタイムアウト時間、デフォルト値は 60 秒 gzip on; #gzip 圧縮スイッチ、 on は Gzip 圧縮をオンにします、デフォルトは off です、オフにします gzip_min_length 1k; # gzip 圧縮を有効にします 最小ファイル、設定値より小さいファイルは圧縮されません gzip_comp_level 9; # gzip 圧縮レベル、1 ~ 9、数値が大きいほどgzip_buffers 4 16k; # 圧縮に必要なバッファのサイズを設定します。 gzip_http_version 1.1; # gzip 圧縮の HTTP プロトコルのバージョンを設定します。負荷がない場合、gzip_types は使用できません。 text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php 画像/jpeg 画像/gif 画像/png アプリケーション/vnd.ms-fontobject フォント/ttf フォント/opentype フォント/x-woff image/svg+xml; 圧縮用の # ファイル タイプ。 JavaScript にはさまざまな形式があります。値は mime.types ファイルにあります。 gzip_vary on; # http ヘッダーに Vary: Accept-Encoding を追加するかどうか、有効にすることをお勧めします gzip_disable "MSIE [1-6]\."; # IE 6 を無効にする gzip gzip_proxied off; ssl_session_cacheshared:le_nginx_SSL:10m; ssl_session_timeout 1440m; ssl_session_tic がオフ ; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers がオフ; ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA 384:ECDHE -RSA-AES2 56- GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"; /etc を含む/nginx/mime.types ; # ファイル拡張子とファイルタイプのマッピングテーブル。 MIME タイプ (電子メール サポート タイプ) を設定します。タイプは mime.types ファイルによって定義されます。 include /etc/nginx/conf.d/*.conf; # は、/etc/nginx/conf.d ディレクトリからモジュール構成ファイルをロードします。 }
FastCGI に接続する
PHP スクリプトを使用して Web サイトを構築する場合は、PHP をサポートするように Nginx を設定する必要もあります。
以下に PHP サービス接続モジュールを紹介します。次のように入力します。 /etc/nginx/default.d カタログ、ビュー php.conf 書類。このファイルはPHPのインストール時に使用されます。自動生成このファイルは変更する必要がなく、PHP スクリプトを FastCGI サーバーに渡すために使用されます。
# PHP スクリプトを FastCGI サーバーに渡します # # ソケット設定については、conf.d/php-fpm.conf を参照してください # インデックスindex.phpindex.htmlindex.htm; location ~ \.(php|phar)(/.*)? $ { fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$; fastcgi_intercept_errors on; fastcgi_index Index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastc gi _path_info; fastcgi_pass php-fpm; }
入力 /etc/nginx/conf.d ディレクトリ、ディレクトリ php-fpm.conf ファイルを変更する必要はありませんが、 php-fpm.conf PHP8.1のインストール時に自動生成されます。php.confPHP スクリプトを FastCGI サーバーに渡すために使用されます。
# PHP-FPM FastCGI サーバー # ネットワークまたは UNIX ドメイン ソケット設定アップストリーム php-fpm { サーバー unix:/run/php-fpm/www.sock; }
存在する /etc/nginx/conf.d ディレクトリに新規作成 デフォルト.conf ファイルを作成するか、新しいカスタム .conf ファイルを作成します。 Server{…} には Web サイト設定コンテンツが含まれています。
これはテスト用の単なる例であり、運用環境のサーバー構成はさらに複雑です。
サーバー { リッスン 443 ssl http2; リッスン [::]:443 ssl http2; サーバー名 XXX.com; ルート /home/www; インデックス Index.php Index.html Index.htm; ssl_certificate "/etc/letsencrypt/live/** */fullchain.pem"; # ssl 証明書アドレス ssl_certificate_key "/etc/letsencrypt/live***/privkey.pem"; # ssl 証明書アドレス ssl_session_cacheshared:SSL:1m; ssl_session_timeout 10m; # キャッシュ有効期間 ssl_ciphers ECDHE-RSA - AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 暗号化アルゴリズム ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # セキュア リンク オプションの暗号化プロトコル ssl_prefer_server_ciphers on; # はサーバー側の優先アルゴリズム # を使用します TLSv1.3 の 0-RTT の設定 ssl_early_data on; ssl_stapling on; ssl_stapling_verify on; add_header Strict-Transport-Security "max-age=31536000"; include /etc/nginx /default.d/*.conf; # は、デフォルトサーバーブロックの設定ファイルを /etc/nginx/default.d からロードします。 # 疑似静的ページの場所 / { try_files $uri $uri/ /index.php?$args; } # リバース プロキシの場所 /update32/ { proxy_redirect off; proxy_read_timeout 1200s; proxy_pass http://127.0.0.1:20892; proxy_http_version 1.1; proxy_set_header X -Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header アップグレード $http_upgrade; proxy_set_header 接続 "アップグレード"; $ssl_early_data; } }
Web ストレージ ディレクトリにアクセス許可を追加します。
chown nginx:nginx -R /home/www
構成が完了したら、/home/www ディレクトリに新しいindex.php ファイルを作成し、次のコードを貼り付けます。
<?php phpinfo(); ?>
これは PHP プローブ コードです。コードをindex.php に貼り付けた後、ファイルを保存し、root としてサーバーを再起動します。
Nginx 公式 PHP FastCGI サンプルにアクセスしてください
Nginx で発生した問題:
「nginx: [emerg] 不明なディレクティブ "" in /etc/nginx/conf.d/」というエラーが表示されます。これは、Windows で SFTP を使用してアップロードするときのスペース変換の問題です。Linux で VI を使用して編集する場合、この問題は発生しません。
Nginxをアンインストールする
dnf を使用してインストールされているすべての nginx をアンインストールする場合は、アンインストール コマンドを実行できます。
dnf は nginx を削除します
Nginxコンソールコマンド
開始: systemctl start nginx 停止: systemctl stop nginx 再起動 (nginx を停止せずに、変更した設定を有効にする): systemctl reload nginx 再起動: systemctl restart nginx ブートの設定: systemctl Enable nginx ブートの無効化: systemctl disable nginx サービスのステータスの表示: systemctl status nginx
ここまでで Nginx のインストールは終了したので、MYSQL データベース サービスのインストールを開始しましょう。
Google Cloud サーバーの構成とインストール MySQL
Centos8 では mysql のインストールに dnf を使用しますので、まずシステムに mysql がインストールされているかどうかを確認します。
rpm -qa |grep -i mysql
MySQL がこれまでにサーバーにインストールされていない場合は、今すぐインストールを開始してください。以前に MySQL をインストールしたことがある場合は、remove コマンドを使用してアンインストールしてください。
まず、データ ソースにどのバージョンがあるかを確認します。
dnf リスト mysql*
MySQL8.0をインストールする
公式 Centos ソフトウェア ソースにはバージョン 8.0.26 のみが含まれているため、それより高いバージョンをインストールする場合は、他のデータ ソースを使用する必要があります。
dnf -y インストール mysql-server
インストールが成功したら、MySQL を起動し、起動時に MySQL を起動するように設定します。
# MySQL を開始します systemctl start mysqld # boot systemctl を設定します mysqld を有効にします # MySQL インストールのバージョンを確認します mysqladmin --version
最後に、インストールされているMySQL8.0の状態を確認します。
systemctl ステータス mysqld
OK、緑色のライトが点灯しています。すべて正常です。次に、MySQL サーバーを構成します。
Google Cloud サーバー構成 MySQL
走る mysql_secure_installation いくつかのセキュリティ関連の操作を実行し、MySQL root パスワードを設定するスクリプト:
sudo mysql_secure_installation
VALIDATE PASSWORD COMPONENT を使用してパスワードをテストし、セキュリティを強化できます。パスワードの強度をチェックし、ユーザーがそれらのパスワードのみを設定できるようにします
十分安全です。 VALIDATE PASSWORD コンポーネントを設定しますか?
入力:Y をクリックし、Enter キーを押して設定を入力します。
パスワード検証ポリシー レベルを選択し、次のように入力します。 0 (低い)
新しいパスワードを入力してください。パスワードは 8 文字以上で、大文字、小文字、数字、特殊記号を含む必要があります。設定したパスワードを確認してください。
提供されたパスワードを引き続き使用するかどうかを確認するには、次のように入力します。Y
デフォルトでは、MySQL は匿名ユーザー。ログインせずに、MySQL が作成したユーザー アカウントに誰でもログインできます。これはテストのみを目的としており、インストールをよりスムーズに行うためのものです。実稼働環境に入る前に、それらを削除する必要があります。
匿名ユーザーを削除しますか?入力: Y
root を使用して MySQL にリモートでログインすることは禁止されています。 N
MySQL にはデフォルトで「test」というデータベースが付属しています。データベース、誰でもアクセスできます。これもテスト専用であり、運用環境に移行する前に環境から削除する必要があります。
MySQL に付属するテスト データベース入力を削除します。Y
権限テーブルを再ロードすると、これまでに行われたすべての変更がすぐに有効になります。
権限テーブルを再ロードするには、次のように入力します。Y
MySQL8.0 にはデフォルトで utf8mb4 文字セットがすでに含まれているため、文字セットは変更されません。このステップで MySQL は正常に構成されました。
mysqlリモートログインを設定する
注: リモート ログイン用に root アカウントを設定する必要がある場合は、前の手順を繰り返してから、root リモート ログインを許可し、Y に設定します。
次回の使用 mysql -u root -p このコマンドを使用して MySQL にログインし、root ユーザーのホスト フィールドを「%」に設定します。これは、root のすべての IP アドレスからのログイン要求を受け入れることを意味します。
UPDATE USER SET host='%' WHERE user='root';
設定後、mysql サービスを再起動します。
systemctl で mysqld を再起動します
MySQLコンソールコマンド
開始: systemctl start mysqld 停止: systemctl stop mysqld 再起動: systemctl restart mysqld ブートの設定: systemctl Enable mysqld ブートの無効化: systemctl disable mysqld サービスのステータスの表示: systemctl status mysqld
この時点で、すべてがインストールされています。 php+mysql+nginxのLinux環境が無事セットアップされました。
強くお勧めします: Google Cloud Server は現在、ほとんどの Web サイトの実際のニーズを満たすことができる、真に強力な無料のクラウド サーバーであることが知られています。