centos8Webサイト構成へのサーバーのアップグレード-phpおよびmysqlを5.6からphp7およびmsyqlにアップグレード

linuxcentos8はphp7nginx1.4 mysql8をインストールし、php Webサイトを実行し、各モジュールを最初から構成します

[ CentOS7とcentOS8の間の選択](https://www.cnblogs.com/zhoulujun/p/12095574.html)##

現在、主要な国内[クラウドサーバー](https://cloud.tencent.com/product/cvm?from=10680)のデフォルトのcentosシステムバージョンはまだ7です。現在、centosのサポートはありません。vultrなどの海外のクラウドサーバーメーカーのデフォルトは8です。

centos8のパフォーマンスが向上し、公式ウェブサイトでより明確に紹介されています

centos8 minバージョンをインストールし、システムをチェックして、nginxのデフォルトが1.14であることを確認します。

開発言語バージョン

データベースバージョン

そして私のサーバーmsyqlはmsyql5.6ですphpはphp5.6です、私はそれを再試行することを選びました。

[ centos8は、nginx mysql phpシステムのデフォルトバージョンを最初からインストールしてphp Webサイトを構築します](https://www.cnblogs.com/zhoulujun/p/12099870.html)##

centos8 install nginx

yum install nginx php

centos8 install php

centos8 install mysql

Webサイトnginxselinuxファイルのアクセス許可の構成##

ウェブサイトnginx構成

Nginxの基本構成については、ここでは説明しません。「[Nginx Sunflower Collection-Grassroots Webmaster Configuration Nginx Operation and Maintenance Encyclopedia](https://www.zhoulujun.cn/html/tools/webServer/nginx/2018_0618_8124.html)」を確認してください。

私のような小さな水道管サイトの場合、注意が必要なのは、nginxが電流を制限することです

一般的な構成は次のとおりです

 # 1 Mは16384の状態を格納でき、reteの値は整数でなければなりません。
 # 1つのリクエストが2秒に制限されている場合は、30rに設定できます/m、ここで$binary_remote_addrは、独自のログに基づく必要がある場合があります_置き換えるフォーマット変数構成
 limit_conn_zone $binary_remote_addr zone=perip:1m;
 limit_conn_zone $server_name zone=perserver:1m;
 # limit_req   zone=perip burst=10;
  # 同時クライアント接続の数を20に制限し、一度に(毎回)IPアドレスごとに1つの接続のみを許可します。.;
 # 各IPが開始できるのは20接続のみを制限することです(addrの後に制限を続ける必要があります_conn_ゾーン変数に対応)
 # ipが各ipによるlmitへのアクセスを制限するキーであることを示します.htmlファイルの場合、最大で1つがオンラインになります。そうでない場合、残りは使用できなくなります。
 limit_conn perip 14;
 limit_conn perserver 10;
 limit_req_zone $binary_remote_addr zone=per_ip:1m rate=400r/s;
 limit_req_zone $server_name zone=per_server:10m rate=600r/s;
 limit_req zone=per_ip burst=300 nodelay;
 limit_req zone=per_server burst=500;

具体的には、「[Nginxでのlimit_reqモジュールのバーストパラメータの超詳細分析](https://blog.csdn.net/hellow__world/article/details/78658041)」を読むことをお勧めします。

nginx構成ディレクトリの構造は次のとおりです

このサイトの構成をここに投稿してください

nginxの基本構成####

nginx構成ファイルはHOCONであり、intellijによって編集されます。構成ビュー: "HOCON:[nginx構成ファイルのサフィックスconfは、どのフォーマットタイプのフォルダーですか? intellij](https://www.cnblogs.com/zhoulujun/p/12112904.html)を編集する方法」、他のエディターにも対応するプラグインが必要です。コードを認識するプラグインがあり、エディターはより快適なはずです。

# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /etc/nginx/modules/*.conf;

events {
 # essential for linux, optmized to serve many clients with each thread
  # Linuxキー構成により、単一のスレッドで複数のクライアント要求を処理できます。
  use epoll;
  # Determines how many clients will be served by each worker process.
  # ( Max clients = worker_connections * worker_processes)
  # " Max clients" is also limited by the number of socket connections available on the system (~64k)
  # 単一のNginxプロセスで処理できるクライアントの数を構成します(クライアントの最大数)=プロセスごとの接続数*プロセス数)
  # クライアントの最大数は、オペレーティングシステムのソケット接続の数にも影響されます(最大64K)
  worker_connections 51200;

  # nginxサーバーが複数のクライアント接続要求を受信できるかどうかを構成するために使用されます。デフォルト値はオフです。
  multi_accept on;
}
# http config
include /etc/nginx/http/default.conf;
# include /etc/nginx/http/http_web.conf;

nginxhttp構成

http {
################################ logs  #######################
 log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
 # Buffer log writes to speed up IO, or disable them altogether
 # ログを高速IOストレージデバイスに書き込むか、ログを直接閉じます。
 # access_log /var/log/nginx/access.log main buffer=16k;
 access_log off;
 # 重大なエラーのみを記録する重大なエラーログのみを記録する
 error_log /var/log/nginx/error.log crit;

################################ file  #######################
 # types
 include             /etc/nginx/mime.types;
 default_type        application/octet-stream;

 charset UTF-8;
 # 投稿リクエストの取得のみを許可する
 add_header 'Access-Control-Allow-Methods''GET, POST';
 # nginxのバージョン番号を非表示にする
 server_tokens off;
################################ gzip圧縮関連の構成を有効にする#######################
 gzip on;
 gzip_disable   "MSIE [1-6]\.";
 gzip_min_length  1k;
 gzip_buffers     4 16k;
 gzip_http_version 1.1;
 gzip_comp_level 4;
 gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
 gzip_vary on;
 gzip_proxied   expired no-cache no-store private auth;

 # 最適化された構成のセットアップをリクエストする#######################
 tcp_nodelay         on;
 # sendfile()切り替え回数を減らすだけでなく、コピー数も減らすことができます。
 sendfile            on;
 # バッファ内のデータをすぐに送信します
 tcp_nopush          on;
 # 各TCP接続の持続時間を指定します。 Nginxのデフォルト値は75秒ですが、一部のブラウザは最大60秒しか保持しないため、60秒に設定できます。
 # 接続維持を構成する-アライブタイムアウトの場合、サーバーはタイムアウト後に対応する接続を閉じます
 keepalive_timeout   65;
 types_hash_max_size 2048;
 client_max_body_size 2m;
 # Number of requests a client can make over the keep-alive connection. This is set high for testing.
 # 単一のクライアントが維持します-有効な接続で送信できる要求の数。テスト環境では、比較的大きな値を構成する必要があります。
 keepalive_requests  10000;
 # Timeout for keep-alive connections. Server will close connections after this time.
 # 接続維持を構成する-アライブタイムアウト期間、サーバーはタイムアウト後に対応する接続を閉じます。
 # クライアントが完全な要求ヘッダーをサーバーに送信するためのタイムアウト期間。クライアントが指定された時間内に完全な要求ヘッダーを送信しない場合、NginxはHTTP 408(Request Timed Out
 client_header_timeout 40s;
 # send the client a "request timed out"if the body is not loaded by this time. Default 60.
 # クライアントがサーバーとの接続を確立した後、リクエスト本文を送信するためのタイムアウト期間を指定します。クライアントが指定された時間内にコンテンツを送信しない場合、NginxはHTTP 408(Request Timed Out)を返します。
 client_body_timeout 40s;
 reset_timedout_connection on;
 # If the client stops reading data, free up the stale client connection after this much time. Default 60.
 # クライアントデータ読み取りタイムアウト構成。クライアントはデータの読み取りを停止し、タイムアウト期間後に対応する接続を切断します。デフォルトは60秒です。サーバーがクライアントにデータを送信するためのタイムアウト期間
 send_timeout 30;
 server_names_hash_bucket_size 128;
 # クライアントリクエストヘッダーのバッファサイズ。システムのページサイズに応じて設定できます。通常、リクエストヘッダーのサイズは1kを超えませんが、一般的なシステムページは1kより大きいため、ここではページサイズとして設定します。
 client_header_buffer_size 32k;
 large_client_header_buffers 4 32k;

################################ 速度制限構成################################
 limit_conn_log_level error;
 limit_conn_status 503;
 # limit_conn_zone $binary_remote_addr zone=one:1m;
 # limit_conn_zone $server_name zone=perserver:1m;
 # allipsという名前の制限を定義します_req_ゾーンはセッションの保存に使用され、サイズは10Mメモリです。
 # に$binary_remote_addrがキーです,1秒あたりの平均リクエスト数を20に制限します。
 # 1 Mは16384の状態を格納でき、reteの値は整数でなければなりません。
 # 1つのリクエストが2秒に制限されている場合は、30rに設定できます/m、ここで$binary_remote_addrは、独自のログに基づく必要がある場合があります_置き換えるフォーマット変数構成
 limit_conn_zone $binary_remote_addr zone=perip:1m;
 limit_conn_zone $server_name zone=perserver:1m;

 # limit_req   zone=perip burst=10;
  # 同時クライアント接続の数を20に制限し、一度に(毎回)IPアドレスごとに1つの接続のみを許可します。.;
 # 各IPが開始できるのは20接続のみを制限することです(addrの後に制限を続ける必要があります_conn_ゾーン変数に対応)
 # ipが各ipによるlmitへのアクセスを制限するキーであることを示します.htmlファイルの場合、最大で1つがオンラインになります。そうでない場合、残りは使用できなくなります。
 limit_conn perip 14;
 limit_conn perserver 10;
 limit_req_zone $binary_remote_addr zone=per_ip:1m rate=400r/s;
 limit_req_zone $server_name zone=per_server:10m rate=600r/s;
 limit_req zone=per_ip burst=300 nodelay;
 limit_req zone=per_server burst=500;
################################ web server #######################
 include  /etc/nginx/http/http_web.conf;}

Nginxの空のドメイン名設定、IPアクセスは禁止されています####

ドメイン名がIPサーバーに解決されて、IPが壁にぶつかるのを防ぎます

# nginxの空のホストヘッダーと悪意のあるドメイン名が指すのを防ぐために、nginxの空のホストヘッダーをオフにします
server {
 listen *:80default;
 server_name _;
 # index index.html index.php index.htm;
 # root  /data/wwwroot/zhoulujun;
 # include /etc/nginx/conf.d/php.conf;
 # rewrite ^(.*)//zhoulujun.cn permanent;return301 https://www.zhoulujun.cn$request_uri;}

nginxphpサポート構成####

################################ php関連の構成#######################
 # Load modular configuration files from the /etc/nginx/conf.d directory.
 # include /etc/nginx/conf.d/php-fpm.conf
 upstream php-fpm {
  server unix:/run/php-fpm/www.sock;}
################################ phpfastcgi関連の構成#######################
 fastcgi_connect_timeout 300;
 fastcgi_send_timeout 300;
 fastcgi_read_timeout 300;
 fastcgi_buffer_size 64k;
 fastcgi_buffers 4 64k;
 fastcgi_busy_buffers_size 128k;
 fastcgi_temp_file_write_size 256k;

################################ host ################################
 include  /etc/nginx/site/default.conf;

linuxサーバーのWebディレクトリのアクセス許可設定###

読み取りが必要なファイルには644を設定し、php記事などのポイントする必要のあるファイルには755を設定し、htmluploadfileフォルダーなどの読み取りと書き込みが必要なフォルダーには777を設定します。

具体的な権限設定については、「[ユーザーグループの概念とファイル権限のクリア—ウェブサイトの権限設定について](https://www.zhoulujun.cn/html/theory/computBase/2018_0320_8090.html)」の前に書いた記事を参照してください。

centos8はデフォルトでselinuxを有効にしているため、権限を設定します。それでもWebサイトにアクセスできません。 403エラーは一般的に報告されます。

centos8Webサーバーselinux設定###

インターネットで検索すると、一般的にselinuxを閉じるように言われますが、個人的には閉じることはお勧めしません

Webディレクトリの読み取り権限にselinuxを設定します####

chcon -v -R --type=httpd_sys_content_t /data/www/

Webディレクトリへのアクセス許可を書き込むようにselinuxを設定します####

chcon -R -t httpd_sys_rw_content_t /data/www/

詳細については、「[centos8 nginxサーバーのルートが(/ data / www)などのカスタムディレクトリを指している、アクセスレポート403 404、すべてのファイルユーザーグループがルート権限である755](https://www.cnblogs.com/zhoulujun/p/12111367.html)」を参照してください。

設定後、ウェブサイトを実行する準備が整いました

linuxウェブサイトの基本的なセキュリティ設定##

linuxユーザーの追加、ユーザーパスワードの変更、ユーザー権限の変更、ルート操作の設定###

Webサイトは通常、この新しく追加されたユーザーを使用してログインします。root権限が必要な場合は、suに切り替えます。

詳細については、「[Linuxユーザーの追加、ユーザーパスワードの変更、ユーザー権限の変更、ルートユーザー操作の設定](https://www.cnblogs.com/zhoulujun/p/12177956.html)」を参照してください。

[ root sshログインを禁止してデフォルトポートを変更する](https://www.cnblogs.com/zhoulujun/p/12170309.html)###

ssh構成ファイルの変更

sshログインポートを変更します####

vim /etc/ssh/sshd_config

「#Port22」を見つけ、この行に「yyp」と直接入力してこの行を次の行にコピーし、2行のコメントである「#」記号を削除して次のように変更します。

# Port 22
Port 10086

ポートを変更するときは、10000〜65535のポート番号を選択するのが最適です。10000未満のポート番号は、システムまたは特別なソフトウェアによって占有されやすいか、新しいアプリケーションが将来そのポートを占有する準備をするときに、最初に占有され、ソフトウェアが発生します。操作できません**。

ルートsshログインを禁止する####

PermitRootLogin no

ssh共通ログインユーザーを追加します####

AllowUsers andyzhou

sshサービスを再起動します

systemctl restart sshd

[ linuxファイアウォールポート設定](https://www.cnblogs.com/zhoulujun/p/12103593.html)###

[ linux仮想メモリ設定](https://www.cnblogs.com/zhoulujun/p/12159159.html)###

私の個人的なブログは1gの小さなメモリで、mysqlが実行され、頻繁にクラッシュします。

free -mメモリを表示し、状況に応じてメモリを設定します。通常、仮想マシンのメモリは物理メモリの2倍です。次に、2gの仮想メモリを設定します。コマンドは次のとおりです。

dd if=/dev/zero of=/opt/swap bs=1024 count=2048000
chmod 600/opt/swap
mkswap /opt/swap
swapon /opt/swap

mysqlは新しいユーザーを作成して承認し、ルートログインを禁止します###

次のsql行はニーズを満たす必要があります

CREATE USER'userName '@'アクセス制限 'IDENTIFIED BY'password';

データベース名にすべての特権を付与します。テーブル名を「userName」@「アクセス制限」に付与します。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPassword';

FLUSH PRIVILEGES;

ウェブサイトのクラウドフレアのスピードアップ##

アリババクラウド、ゾーンファイルをエクスポートし、次にテンプレートをエクスポートしてから、コピーして貼り付けます

「[CDNを使用してWebサイトを高速化する方法– Cloudflare無料バージョンの詳細な使用法チュートリアル](https://www.jianshu.com/p/1e73c2d66ac8)」など、多くのオンラインチュートリアルがあります。

ここに注意すべきいくつかのポイントがあります

アンダーアタックモードをオンにすると、常に500万のスタートアップページが表示され、無料のユーザーはカスタマーページでそれを構成できなくなります

具体的な構成は次のとおりです。「[cloudflare5秒シールドページのチュートリアルをカスタマイズする方法](https://www.zhujib.com/rhzdymdymjc.html)」

2つ目は、cloudflare Rocket Loaderが中国でブロックされていることです。非同期実行では、挿入されたjsがこのjsによってブロックされます。国内のユーザーが何であれ、閉鎖したほうがいいです。

参照リンク:「[cloudflareRocket Loader中国のユーザーは使用しない方がよい](https://z-dg.cc/527.html)」

Webサイトを構成したら、ポータル「[vmware14installcentos8](https://www.cnblogs.com/zhoulujun/p/12095633.html)」をローカルにミラーリングできます。

まず、個人のWebサイトの移行手順に従って、非常に多くを整理します。後でテキストを整理する

[このサイト](https://www.zhoulujun.cn/)の記事「[centos8Webサイト構成へのサーバーアップグレード-5.6からphp7およびmsyql8へのphpおよびmysqlのアップグレード](https://www.zhoulujun.cn/html / os / linux / 8242.html)」を転載、
ソースを示してください:[https://www.zhoulujun.cn/html/os/linux/8242.html](https://cloud.tencent.com/product/cvm?from=10680)

Recommended Posts

centos8Webサイト構成へのサーバーのアップグレード-phpおよびmysqlを5.6からphp7およびmsyqlにアップグレード
centos7.2.1511にjdk1.8.0_151とmysql5.6.38をインストールする方法
Centos 6.4 python2.6を2.7にアップグレード
Centos 6.4 python2.6を2.7にアップグレード
CentOS6.5はカーネルを3.10.28にアップグレードします
CentosはLAMPをコンパイルしてインストールします(apache-2.4.7 + mysql-5.5.35 + php 5.5.8)+ Redis
CentOS8にPostfixメールサーバーをインストールして構成する方法
CentOS7はopenjdk、tomcat、mysqlプロセスの紹介をインストールします
Centosのデフォルトのpython2.6のアップグレード
CentOSはpython2をpythにアップグレードします
Centosmysqlのインストールと構成
CentOS8は、LNMP環境を展開して、mysql8.0.29チュートリアルの詳細をコンパイルおよびインストールします。
CentOS8にMySQLをインストールする方法
CentOS7yumはmysqlをインストールして起動します
CentOS7をCentOS8にアップグレードする方法(詳細な手順)
CentOSYumはMySQL5.6をコンパイルしてインストールします
CentOS 7はNginx、PHP、MySQLパッケージをインストールします
CentOSにPHP7.4をインストールする方法
CentOS7でOpenSSLとOpenSSHをアップグレードする
Ubuntu14.04でPHP7にアップグレードする方法
リモートUbuntuサーバーに接続されたMySQL
CentOS7yumはmysqlをインストールして起動します
Centos6.7には、へのpythonアップグレードが付属しています
MySQL5.7をインストールするためのcentos7。* tarパッケージ
CentOSNTPサーバーのインストールと構成
CentOSサーバーの時刻を北京の時刻に変更します
CentOS8にPHPをインストールする方法
Centos7mysqlデータベースのインストールと構成