優れたソフトウェアと実用的なチュートリアル
Google Cloud Server 構成 LNMP 環境のインストール Centos8 での PHP+Mysql+Nginx のインストールの詳細な説明
Googleクラウドサーバー構成 仕事をうまくやり遂げたいなら、まずは道具を研ぐことから始めましょう。ナイフを研いでも、薪割りは遅くなりません。まずはサーバーのLNMP環境を構築し、それからウェブサイトを構築しましょう。適切なPHP環境がなければ、後々面倒なことになります。以前、PHP環境を手動でインストールしてデプロイする方法を紹介しました。今日は、サードパーティ製のパネルを使わずにGoogleでPHP環境をインストールしてデプロイする方法をご紹介します。クラウドサーバー使用対象 DNF コマンド、PHP+を手動でインストールMySQL+エングス環境を構成する方法。
このチュートリアルは次の方に適しています:Centos7/セントOS ストリーム8/CentOS ストリーム 9/ レッドハットエンタープライズ リナックス (RHEL)
Google Cloud サーバーの構成
Centos8システムはグーグルの無料のクラウドサーバーこの記事でテストしたマシン タイプは e2-medium (2 vCPU、4 GB メモリ) です。
CentOS 8は21年末にサポートを終了すると発表されたため、GoogleはCentOS Streamにアップグレードしました。Googleクラウド 以前の Centos8 システムを CentOS Stream 8 および CentOS Stream 9 にアップデートする場合、操作に大きな変更はありません。ソフトウェア リポジトリ ソースを追加するだけです。
以下はCentOS Stream 8システムを例に挙げて実行します。Google Cloud サーバーの構成:
グーグル 雲 Google Cloud アプリケーションと仮想マシンの構成方法については、以下をご覧ください。無料のGoogle Cloudアプリケーション
VMサーバーをセットアップしたら、SSHに接続して操作を開始します。Centos8システムをインストールしたら、まず最初にシステムのrootパスワードを変更します。

Google Cloud Platform が提供する Web SSH を使用してサーバーに接続し、ログイン後に SSH 接続方法を変更します。
Google Cloud サーバー構成のサーバールートパスワードの変更
使用 sudo -i または sudo su スーパー管理者ルートユーザーに切り替えるコマンド、ルートスーパー管理者モードに切り替えて入力する パスワード パスワードを変更するコマンド。
sudo -i パスワード
変更したいパスワードを入力し、確認のため2回入力します。パスワードを確認したら、Enterキーを押して設定を完了します。 CD\ ルート ディレクトリに切り替えるコマンド。
使用 6 SSH 構成ファイルを変更するコマンド。
vi /etc/ssh/sshd_config

SSH リモート接続のポート番号を変更する場合は、ポートの前の # 番号を削除してから、変更するポート番号を変更します。
sshd_config の次の内容を変更します。
- ルートログイン許可 デフォルト値は no ですが、SSH リモート アクセスを使用するには yes に変更する必要があります。
- パスワード認証 デフォルト値は no です。パスワード ログインを有効にするには yes に変更します。
- クライアントアライブ間隔 デフォルト値は 420 です。これをクライアント接続のタイムアウト期間である 3600 に変更します。
ポート 10086 PermitRootLogin yes PasswordAuthentication yes ClientAliveInterval 3600
変更後、:wqVI 編集を終了するコマンド。
上記は、Google Cloud Server を使用して SSH ログインを有効にする方法です。SSH ポートを変更した後は、SElinux を無効にする必要があります。そうしないとログインできなくなります。
SElinuxを永久に無効にする
Google Cloud を構成するサーバーの場合は、まずSElinuxを恒久的に無効化する必要があります。SElinuxはLinuxのセキュリティを強化するために使用されますが、設定が非常に面倒です。そのため、恒久的に無効化することをお勧めします。
vi /etc/selinux/config
SELINUX=Enforcing を見つけて、i を押して編集モードに入り、パラメータを SELINUX=Disabled に変更します。
変更が完了したら、キーボードのEscキーを押してコマンドwqを実行し、ファイルを保存して終了します。その後、サーバーを再起動します。SElinuxの無効化に成功しました。次のステップはSSHポート番号の変更です。インターネット上には自動スキャンボットが多数存在し、一度攻撃を受けると悲惨な結果を招く可能性があります。Google Cloudはトラフィック量に応じて課金されます。300ドルかかるとはいえ、もし侵入されれば1日数千ドルの被害に遭っても問題ありません。そのため、まずは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ユーティリティです。これらのシムの主な目的は、yum-3との下位互換性を確保することです。
インストール後の使用 DNFアップデート
システム内のソフトウェアを最新バージョンに更新するコマンド。
dnf インストール dnf-utils dnf アップデート
システムで有効になっているデータソースを表示するには、 DNFリポリストオール このコマンドでは、有効になっていないものも含め、すべてのデータ ソースを表示できます。
DNFリポリストオール

使用 DNFリポリスト 現在使用中のソフトウェア ソースを表示するコマンド。
DNFリポリスト
使用 dnf repolist が無効 システムによって無効にされたデータ ソースを表示するコマンド。
dnf repolist が無効
ソフトウェアソースをインストールした後、インストールしたソフトウェアパッケージソースを設定して最適化する必要があります。 メイクキャッシュ ソース キャッシュを生成するコマンド。
dnf メイクキャッシュ
DNF の自動更新をインストールして有効にします。
dnf install dnf-automatic systemctl start dnf-automatic.timer
「開発ツール」パッケージ グループをインストールします。
dnf グループインストール '開発ツール' -y
DNF を使用してシステム パッケージを更新します。
dnf -y アップデート
Google Cloud Server の SWAP 仮想メモリの設定
Google Cloud オペレーティング システムのデフォルトインストールではスワップ領域が割り当てられないため、手動で追加する必要があります。オペレーティング システムにスワップファイル(スワップ領域の割り当て)が設定されていない場合、メモリの読み込み後にエラーが発生します。CentOS 8 オペレーティング システムにスワップ領域を追加する方法は次のとおりです。
使用 無料-m コマンドを実行してメモリ構成を確認します。Swap の後の数字が 0 の場合は、スワップ領域を追加する必要があります。
無料-m
スワップ仮想メモリを作成するには、次の 6 つの手順を使用します。
- 指定されたサイズの事前割り当てられたスペースを持つファイルを作成します。
- ファイル サイズを確認するには、ls コマンドを使用できます。
- スワップ ファイルの権限を変更します。
- スワップ ファイルをフォーマットします。
- スワップファイルを有効にします。
- 再起動後にスワップが自動的に有効になるように fstab ファイルを変更します。
8GBの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
使用 6 fstab ファイルの末尾に次のコマンドを追加します。
/swapfile スワップ スワップ sw 0 0
使用したくない場合は 6 コマンドを使用するか、直接使用することもできます エコー 起動時にスワップを開始するように設定するコマンド。
echo '/swapfile swap swap swap sw 0 0' | sudo tee -a /etc/fstab
サーバー時刻同期
サーバーの時刻同期ツールをインストールしてください。サーバーとクライアント間の時刻同期は非常に重要です。
現在のタイムゾーンを確認してください。タイムゾーンがUTCの場合は、サーバーのタイムゾーンを変更する必要があります。
timedatectl status|grep 'タイムゾーン' # サーバーのハードウェア時間を表示します hwclock # オペレーティングシステムの時間をハードウェア時間に同期します hwclock -w
サーバーのタイムゾーンを変更する
timedatectl set-timezone Asia/Shanghai timedatectl set-local-rtc 1 # dateコマンドを使用して、現在のサーバー時刻を確認します。date
サーバーのタイムゾーンをアジア/上海に変更すると、 タイムデートル タイムゾーンを照会するコマンド。
CentOS 8 では、ntp パッケージはデフォルトでサポートされなくなり、時間同期は chrony によって実装されます。
Centos8システムのインストール後、デフォルトでchronyパッケージが既に存在します。rpm -q chronyで存在を確認できます。存在しない場合は、dnfコマンドでインストールできます:dnf install chrony
vi /etc/chrony.conf
サーバー ntp.aliyun.com iburst
国内のAlibaba Cloud時刻同期サーバーを1行目に追加して保存します。
起動時にchronyを実行するように設定する
systemctl chronyd を有効にする systemctl chronyd を開始する
ユーザーとユーザーグループの追加
Centos8 を構成する前に、Web サービス アクセス関連の権限のユーザー グループとユーザーを追加する必要があります。
グループ追加 www ユーザー追加 -g www www
ユーザーとユーザーグループの設定が完了すると、Centos8の基本環境はほぼ構築完了です。次は、Web関連サービスのインストールを始めましょう。
Centos8の設定が完了したら、Nginx、PHP8、Mysqlをインストールします。インストールの順序を間違えないように注意してください。まずNginxをインストールし、次にPHP8とMysqlをインストールしてください。Nginx をインストールした後は、設定は必要ありません。PHP8 をインストールした後で Nginx を設定してください。
CentOSでTCP BBRアクセラレーションを有効にする
システムカーネルが4.9以上であれば、BBRはデフォルトで含まれています。
1. 以下のコードをルート権限で実行します。カーネルバージョンは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 Server の構成と 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 start nginx systemctl status nginx
ポート 80 の現在のステータスを表示します。
netstat -na | grep 80
nginx のデフォルト ポートが開いているかどうかを確認して設定します。
ファイアウォールコマンド --query-port=80/tcp
戻り値が no の場合、ポート 80 は開いていないため、ポート 80 へのアクセスを許可するようにファイアウォールを設定する必要があります。
ポート80を開きます:
ファイアウォールコマンド --add-port=80/tcp --permanent ファイアウォールコマンド --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 Cloud Server の設定と PHP8 のインストール
使用する場合 dnf -y php をインストール このコマンドを使って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 インストール php

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検索 このコマンドは、PHP 8.1 で使用できる拡張パッケージを確認します。
dnf 検索 php81*
検索してみると、php81関連のパッケージが多すぎることがわかりました。これらは何に使われるのでしょうか?インストールすべきものとインストールすべきでないものは何でしょうか?以下は、php8.1拡張機能インストールパッケージの詳細な紹介です。
PHP8.1 が準備完了です。どの拡張パッケージがインストールされているのか確認しましょう。
rpm -qa|grep php

使用することもできます php --モジュール インストールされている PHP 拡張機能を照会するコマンド。
php --モジュール
PHP 拡張機能をインストールする必要がある場合は、dnf -y install コマンドに、インストールする必要がある拡張機能の名前を付加して使用します。
たとえば、PHP の mysqlnd 拡張機能をインストールするには、次のようにします。
dnf インストール -y php-mysqlnd

上記すべてをインストールしたら、次に PHP の起動を設定します。
systemctl で php-fpm を有効にする
使用 システムctl コマンドは便利で、管理も簡単です。新しい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ファイルを編集する
使用 6 コマンドを使用してphp.iniファイルを編集するか、SFTPを使用してサーバーにログインし、メモ帳を使用してphp.iniファイルを編集および変更します。SFTPクライアントとしてはXftpが推奨されます。
vi /etc/php.ini
ファイル内の変数を次の値に変更します。
#PHPエラーを出力: display_errors = on #メモリ使用量を256Mに増やす: memory_limit = 256M #ファイルのアップロードサイズ。デフォルト値は小さすぎるため、1G、つまり1024Mに変更することをお勧めします: 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 NginxでPHPにアクセスするために127.0.0.1:9000を使用する場合は、変更する必要があります。 聞く 変数を listen = 127.0.0.1:9000 に変更してください。変更しないと、Nginx で 127.0.0.1:9000 を使用して PHP にアクセスできなくなります。
次に、リクエストのタイムアウト値を変更し、単一のリクエストのタイムアウトを変更し、先頭のセミコロンを削除して、値を 600 に変更します。
リクエスト終了タイムアウト = 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 が開いているかどうかを確認してください。
ネットスタット -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 status php-fpm
PHPをアンインストールする
dnf を使用してインストールされた PHP サービスをアンインストールする場合は、uninstall コマンドを実行します。
注意: PHPを手動でコンパイルしてインストールした場合、取り除く アンインストールコマンドが無効です。まずPHPメインプログラムをアンインストールし、次にシステム固有のPHP-commonを削除してください。
dnf php を削除 dnf php-common を削除 -y
SELinuxを無効にする
存在する セントOS 8 永久に無効にする SELinux
vi /etc/selinux/config
意思 SELinux プロパティは次のように設定されています 無効 その後、サーバーを再起動します。
Google Cloud Server の構成Nginx を構成する
以下は nginx1.20.1 を例にしています。
nginx.confを編集する
正常にウェブサイトにアクセスするには、Nginx のコア設定ファイルである Nginx 設定ファイル nginx.conf を編集して変更する必要があります。 6 /etc/nginx/nginx.conf を編集するコマンド。
vi /etc/nginx/nginx.conf
以下は、参考用の単純な nginx.conf ファイルの例です。
user nginx; #ユーザーまたはグループを設定します。デフォルトはnobodyです。 worker_processes auto; #生成を許可するプロセスの数です。デフォルトは1です。 pid /run/nginx.pid; #nginxプロセス実行の保存アドレスを指定します。 file error_log /var/log/nginx/error.log error; #エラーログのパスとレベルを指定します。この設定は、グローバルブロック、httpブロック、サーバーブロックに配置できます。レベルはdebug | info | notice | warn | error | crit | alert | emergで、レベルが高いほどエラーログの記録数が少なくなります。一般的には#動的モジュールをロードします。 include /usr/share/nginx/modules/*.conf; #動作モードと接続数の上限 - eventsグローバル設定 events { accept_mutex on; #パニックを防止するためにネットワーク接続のシリアル化を設定します。デフォルトはオンです。 multi_accept on; #プロセスが同時に複数のネットワーク接続を受け入れるかどうかを設定します。デフォルトはオフです。 #epollを使用します。 #イベント駆動型モデル。select|poll|kqueue|epoll|resig|/dev/poll|eventport worker_connections 4096; #単一のワーカープロセスに許可される最大接続数。デフォルトは512です。 } #httpサーバー構成ファイル block http { log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #ログ形式をカスタマイズします access_log /var/log/nginx/access.log myFormat; #アクセス ログのパスと形式を設定します。combined はログ形式のデフォルト値です。 rewrite_log on; #access_log off; #サービス アクセス ログをキャンセルします sendfile on; #Allow sendfile にファイルを転送します。デフォルトはオフで、http ブロック、サーバー ブロック、ロケーション ブロックで使用できます。 sendfile_max_chunk 0; #プロセスごとの呼び出しあたりの転送数は、設定値より大きくすることはできません。デフォルトは 0 で、上限はありません。 keepalive_timeout 1000; #接続タイムアウト。デフォルトは 75 秒で、http、サーバー、ロケーション ブロックで使用できます。 client_max_body_size 1024m; types_hash_max_size 4096; tcp_nodelay 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)。数字が大きいほど圧縮率は高くなりますが、CPU 時間も長くなります。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 image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/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_cache shared:le_nginx_SSL:10m; ssl_session_timeout 1440m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers off; ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"; include /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 index.php index.html index.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 $fastcgi_path_info; fastcgi_pass php-fpm; }
入力 /etc/nginx/conf.d ディレクトリ、ディレクトリ内 php-fpm.conf ファイルに変更を加える必要はありません。 php-fpm.conf PHP8.1 をインストールすると自動的に生成されます。php.confFastCGI サーバーに渡すために使用される PHP スクリプトの一部。
# PHP-FPM FastCGI サーバー # ネットワークまたは UNIX ドメイン ソケット構成 アップストリーム php-fpm { server unix:/run/php-fpm/www.sock; }
存在する /etc/nginx/conf.d カタログの新着 デフォルト.conf ファイルを作成するか、カスタム .conf ファイルを作成します。server{...} には、Web サイトの構成コンテンツが含まれます。
これは単なるテスト例です。本番環境でのサーバー構成ははるかに複雑です。
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name XXX.com; root /home/www; index 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_cache shared: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 オン; # サーバーの推奨アルゴリズムを使用 # TLSv1.3 の 0-RTT の構成 ssl_early_data オン; ssl_stapling オン; ssl_stapling_verify オン; 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 オフ; proxy_read_timeout 1200 秒; 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 接続 "upgrade"; proxy_set_header Early-Data $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 をアンインストールする場合は、uninstall コマンドを実行します。
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 Server の構成と MySQL のインストール
Centos8はdnfを使ってmysqlをインストールします。まず、システムにmysqlがインストールされているかどうかを確認してください。
rpm -qa |grep -i mysql
サーバーにMySQLがインストールされていない場合は、今すぐインストールしてください。MySQLが以前にインストールされている場合は、removeコマンドを使用してアンインストールしてください。
まず、データ ソースに含まれるバージョンを確認します。
dnf リスト mysql*

MySQL 8.0をインストールする
Centosの公式ソフトウェアソースにはバージョン8.0.26のみが含まれています。より上位のバージョンをインストールする場合は、別のデータソースを使用する必要があります。
dnf -y mysql-server をインストール

インストールが成功したら、MySQL を起動し、起動時に起動するように設定します。
#MySQLを起動します。systemctl start mysqld #ブートスタートアップを設定します。systemctl enable mysqld #インストールされているMySQLのバージョンを確認します。mysqladmin --version
最後に、インストールされた MySQL 8.0 のステータスを確認します。
systemctl ステータス mysqld

緑色のライトが点灯しました。すべて正常です。次に、MySQL サーバーを構成します。
Google Cloud Server 構成 MySQL
走る mysql_secure_installation セキュリティ関連のアクションを実行し、MySQL ルート パスワードを設定するスクリプト:
sudo mysql_secure_installation

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

パスワード検証ポリシー レベルを選択し、以下を入力します。 0 (低い)
新しいパスワードを入力してください。パスワードは8文字以上で、大文字、小文字、数字、特殊記号を含める必要があります。設定したパスワードを確認してください。

提供されたパスワードを引き続き使用するかどうかを確認し、以下を入力します。はい

MySQLのインストールではデフォルトで匿名ユーザーが設定されており、ユーザーアカウントを作成せずに誰でもログインできます。これはテストとインストールをスムーズにするためのものです。本番環境に移行する前に、匿名ユーザーを削除してください。
匿名ユーザーを削除しますか? 入力してください: はい

MySQLへのrootによるリモートログインを無効にします。以下を入力してください。 北

MySQLにはデフォルトで「test」というデータベースが付属しており、誰でもアクセスできます。これもテスト目的のみに使用されるため、本番環境に移行する前に削除する必要があります。
MySQL に付属するテスト データベース入力を削除します。はい

権限テーブルを再ロードすると、これまでに加えられたすべての変更がすぐに有効になります。
権限テーブルを再ロードするには、次のように入力します。はい
MySQL 8.0 のデフォルトの文字セットは utf8mb4 なので、文字セットを変更する必要はありません。これで MySQL の設定は完了です。
MySQLのリモートログインを設定する
注: ルート アカウントのリモート ログインを設定する必要がある場合は、前の手順を繰り返し、ルート リモート ログインを許可して Y に設定します。
次回使用 mysql -u ルート -p MySQL にログインするコマンドを実行し、root ユーザーのホスト フィールドを '%' に設定します。これは、root のすべての IP アドレスからのログイン要求を受け入れることを意味します。
更新ユーザー 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 サイトの実際のニーズを満たすことができる、現在知られている中で最も強力な無料クラウド サーバーです。