linuxcentos8はphp7nginx1.4 mysql8をインストールし、php Webサイトを実行し、各モジュールを最初から構成します
現在、主要な国内[クラウドサーバー](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です、私はそれを再試行することを選びました。
yum install nginx php
nginxを開始
systemctl start nginx.service
nginxステータスを表示
systemctl status nginx
起動するようにnginxを設定します
systemctl enable nginx.service
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構成ファイルは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;
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;}
ドメイン名が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;}
################################ 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;
読み取りが必要なファイルには644を設定し、php記事などのポイントする必要のあるファイルには755を設定し、htmluploadfileフォルダーなどの読み取りと書き込みが必要なフォルダーには777を設定します。
具体的な権限設定については、「[ユーザーグループの概念とファイル権限のクリア—ウェブサイトの権限設定について](https://www.zhoulujun.cn/html/theory/computBase/2018_0320_8090.html)」の前に書いた記事を参照してください。
centos8はデフォルトでselinuxを有効にしているため、権限を設定します。それでもWebサイトにアクセスできません。 403エラーは一般的に報告されます。
インターネットで検索すると、一般的にselinuxを閉じるように言われますが、個人的には閉じることはお勧めしません
chcon -v -R --type=httpd_sys_content_t /data/www/
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)」を参照してください。
設定後、ウェブサイトを実行する準備が整いました
Webサイトは通常、この新しく追加されたユーザーを使用してログインします。root権限が必要な場合は、suに切り替えます。
詳細については、「[Linuxユーザーの追加、ユーザーパスワードの変更、ユーザー権限の変更、ルートユーザー操作の設定](https://www.cnblogs.com/zhoulujun/p/12177956.html)」を参照してください。
ssh構成ファイルの変更
vim /etc/ssh/sshd_config
「#Port22」を見つけ、この行に「yyp」と直接入力してこの行を次の行にコピーし、2行のコメントである「#」記号を削除して次のように変更します。
# Port 22
Port 10086
ポートを変更するときは、10000〜65535のポート番号を選択するのが最適です。10000未満のポート番号は、システムまたは特別なソフトウェアによって占有されやすいか、新しいアプリケーションが将来そのポートを占有する準備をするときに、最初に占有され、ソフトウェアが発生します。操作できません**。
PermitRootLogin no
AllowUsers andyzhou
sshサービスを再起動します
systemctl restart sshd
私の個人的なブログは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
次の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