Alibaba CloudにWordPressをインストールし、Centos8でLNMP環境を構築するチュートリアル

Alibaba Cloud Centos8はLNMP環境を構築し、WordPressをインストールします。Alibaba CloudでCentos8オペレーティングシステムをセットアップしたら、まず基本的な設定を行います。Alibaba CloudはWordPressをインストールします。

Alibaba CloudにWordPressをインストールし、Dnfを使ってCentos8にLNMP環境を構築する

Alibaba Cloud Centos8でDnfを使ってLNMPをインストールする、WordPressインストールチュートリアル

アリババクラウドLNMP環境を構築してインストールする Alibaba CloudでCentOS 8オペレーティングシステムをセットアップしたら、まずは基本的な設定を行います。Alibaba CloudにWordPressをインストールします。

Alibaba CloudがCentOS8の中国語パッケージをインストール

合格 DNF検索 中国語言語パックを検索するコマンド

dnf検索言語パック

簡体字中国語のインストールパッケージは次の通りです: langpacks-zh_CN.noarch
DNF コマンド経由で直接:

dnf インストール langpacks-zh_CN

言語を変更:

vi /etc/locale.conf

元のコンテンツを次のように変更します。

LANG="zh_CN.UTF-8"

最後に、次のコマンドを渡します。ロケール -a zh_CNが正常にインストールされているか確認する

Alibaba Cloudはcentos8でEPELとREMIソースを設定します

epelリポジトリをインストールする

dnf -y インストール https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

epelライブラリが正常にインストールされているかどうかを確認する

rpm -qa | grep epel

remiリポジトリをインストールする

dnf インストール https://rpms.remirepo.net/enterprise/remi-release-8.rpm

remiライブラリが正常にインストールされているかどうかを確認する

rpm -qa | grep remi

ソフトウェアソースをインストールした後、DNFキャッシュを再構築します。

dnf メイクキャッシュ

Centos9の場合は、次のパスに従ってソフトウェアソースをインストールします。

dnf -y インストール https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm dnf -y インストール https://rpms.remirepo.net/enterprise/remi-release-9.rpm

実行中のすべてのサービスを取得し、ポートの使用状況を表示します。

systemctl list-units --type=service netstat -lntup
Alibaba CloudにWordPressをインストールし、Centos8でLNMP環境を構築するチュートリアル

Alibaba Cloud は cnetos8 で DNF 経由で php/nginx/mysql をインストールします

Alibaba CloudにPHPをインストールする

EPEL および Remi リポジトリを正常に追加したら、次のコマンドを実行して、利用可能な PHP モジュール ストリームのリストを取得します。

dnfモジュールリストphp


PHPモジュールをリセットします:

dnfモジュールリセットphp


PHPバージョンに対応するストリームモジュールを有効にします。ここではPHP 7.4バージョンをインストールするため、remi-7.4バージョンのストリームを有効にします。

dnf モジュールを有効にする php:remi-7.4

PHPをインストールします。このコマンドは、他の多くのパッケージもインストールします。

dnf インストール php
dnf で php-mysql と php-gd をインストールします 

 
PHP をインストールした後、PHP の権限を変更します。

vi /etc/php-fpm.d/www.conf


ユーザー =
group = nginx WordPress をインストールした際にディレクトリが作成できない場合は、wp ファイル保存ディレクトリ、nginx ユーザーグループ、PHP ユーザーグループが同じユーザーの下にあることを確認してください。
wp ストレージ ディレクトリの権限を変更します。

chown -R nginx:nginx /home/www


php-fpm がどのユーザー グループに属しているかを確認します。

ps -ef | grep php-fpm

PHP 設定ファイルを変更します。

vi /etc/php.ini


cgi.fix_pathinfo を = 0 に変更しました。
upload_max_filesize = 2M ファイルのアップロードサイズ。デフォルト値は小さすぎるため、1024M に変更することをお勧めします。
display_errors = on エラーを印刷する
post_max_size = フォームの最大サイズは 8M、1024M が推奨
max_execution_time=600 PHPスクリプトの最大実行時間 権限設定:

chown -R nginx:nginx /run/php-fpm/www.sock

PHP が正常にインストールされているかどうかを確認します。

php -v

起動および実行中のサービスを設定します。

systemctl で php-fpm を有効にする

 

systemctl php-fpm を起動する


一般的な操作コマンド:
再起動:

systemctl php-fpm を再起動します。


起動する:

systemctl php-fpm を起動する


閉鎖:

systemctl 停止 php-fpm


州:

systemctl ステータス php-fpm

Alibaba Cloudにnginxをインストールする

EPEL および Remi リポジトリを正常に追加したら、次のコマンドを実行して、利用可能な nginx モジュール ストリームのリストを取得します。

dnfモジュールリストnginx


nginx モジュールをリセットします:

dnfモジュールリセットnginx

nginxのバージョンに対応するストリームモジュールを有効にします。ここではnginx1.18バージョンをインストールするので、nginx1.18バージョンのストリームを有効にします。

dnfモジュールを有効にする nginx:1.18

nginxをインストールします。このコマンドは、他の多くのパッケージもインストールします。

dnf インストール nginx -y


nginx が正常にインストールされているかどうかを確認します。

nginx -v

ポートの使用状況を確認します:

netstat -lntup

起動および実行中のサービスを設定します。

systemctl で nginx を有効にする

 

systemctl nginx を起動する

nginxをアンインストールする

dnf nginx を削除

一般的なコマンド:
再起動:

systemctl nginx を再起動する


起動する:

systemctl nginx を起動する


閉鎖:

systemctl nginxを停止する


州:

systemctl ステータス nginx

注: インストールされているnginxのバージョンがPHPをサポートしていない場合、PHPページを開いた後にページのダウンロードが発生します。test.phpというテストページを作成してください。ページの内容:

<?php
phpinfo();
?>

  PHPがサポートされていない場合は、nginxインストールディレクトリ/etc/nginxにconf.dフォルダとdefault.dフォルダを作成する必要があります。以下の内容を含む/default.d/php.confファイルを作成してください。

# PHP スクリプトを FastCGI サーバーに渡します # # ソケット構成については conf.d/php-fpm.conf を参照してください # index index.php index.html index.htm; location ~ \.php$ { try_files $uri =404; fastcgi_intercept_errors on; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass php-fpm; }

  次の内容を含む /conf.d/php-fpm.conf ファイルを作成します。

# PHP-FPM FastCGI サーバー # ネットワークまたは UNIX ドメイン ソケット構成 アップストリーム php-fpm { server unix:/run/php-fpm/www.sock; }

nginx.conf ファイルに、フォルダー挿入参照ステートメントを 2 つ追加します。

nginxはドメイン名証明書sslを生成します

acme.sh スクリプトを使用して SSL 証明書を申請します。 まずsocatをインストールします:

dnf インストール socat


acme.shをインストールする

カール https://get.acme.sh | sh


スクリプトをインストールした後は、必ず再起動してください。

リブート

証明書申請:
nginx でドメイン名を設定したら、次のように証明書を申請します。

acme.sh --issue -d www.uzbox.tk -d uzbox.tk --webroot /home/uzbox/


nginxの設定を読み取るコマンドも使用できます。サイトがnginxで設定されていない場合は、まずサイトを設定してください。

acme.sh --issue -d www.uzbox.tk -d uzbox.tk --nginx

証明書の申請が成功したら、証明書をインストールします。 まず、nginx 構成ファイルのサーバー ブロックに次のコードを追加します。

ssl_certificate /home/ssl/uzbox.tk/fullchain.cer; ssl_certificate_key /home/ssl/uzbox.tk/uzbox.tk.key;

  ドメイン名証明書の申請が成功したら、指定された場所に証明書をインストールする必要があります。/home/フォルダ内に新しい/ssl/フォルダを作成し、その下に証明書保存フォルダ/uzbox.tk/を作成します。その後、以下のコマンドを実行して証明書をインストールしてください。注意:証明書保存フォルダを作成していない場合、証明書のインストールは「Unable to touch '/home/ssl/uzbox.tk/uzbox.tk.key': No such file or directory」というエラーメッセージが表示されて失敗します。

acme.sh --installcert -d uzbox.tk --key-file /home/ssl/uzbox.tk/uzbox.tk.key --fullchain-file /home/ssl/uzbox.tk/fullchain.cer --reloadcmd "service nginx force-reload"

より詳細なドメイン名証明書申請チュートリアル:acme.sh ドメイン名SSL/TSL証明書の無料申請

Alibaba Cloud CentOS 8 で dnf 経由で MySQL をインストールする

最新のパッケージマネージャーを使用してインストールする

dnf インストール @mysql


起動する

systemctl enable --now mysqld


MySQLサーバーが実行中かどうかを確認する

systemctl ステータス mysqld

パスワードとセキュリティ設定を追加する
mysql_secure_installation スクリプトを実行します。このスクリプトは、セキュリティ関連の操作をいくつか実行し、MySQL ルート パスワードを設定します。

sudo mysql_secure_installation


手順は次のとおりです。
VALIDATE PASSWORDコンポーネントを構成するように求められます。yと入力してEnterキーを押すと構成に入ります。
パスワード検証ポリシーのレベルを選択します。0(低)を選択し、Enterキーを押します。
新しいパスワードを2回入力してください
入力したパスワードを引き続き使用してもよろしいですか? y と入力して Enter キーを押します。
匿名ユーザーを削除しますか?yと入力してEnterキーを押します
ルートリモートログインを許可しますか?nと入力してEnterキーを押します
テストデータベースを削除しますか?yと入力してEnterキーを押します
権限テーブルを再読み込みしますか?yと入力してEnterキーを押します
MySQLのリモートログインを設定します。ルートアカウントのリモートログインを設定する必要がある場合は、前の手順「ルートのリモートログインを許可しますか?」を繰り返します。この手順は「y」に設定する必要があります。
次に、MySQL にローカルでログインし、root ユーザーのホスト フィールドを '%' に設定します。これは、root のすべての IP アドレスからのログイン要求を受け入れることを意味します。
設定後、mysqlサービスを再起動します。

systemctl で mysqld を再起動します。


MySQL 8.0がデフォルトで設定されています文字セットが変更されなくなったため、文字セットは変更されなくなりました

Alibaba CloudにphpMyAdminをインストールする

Webサイト:https://www.phpmyadmin.net/
phpMyAdmin の最新バージョンをダウンロードしてください。phpMyAdmin は視覚的な MySQL 管理ツールです。

wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz


ダウンロード後、ファイルを解凍します

tar -zxvf phpMyAdmin-最新-すべての言語.tar.gz


解凍したファイルの名前を変更する

mv phpMyAdmin-5.2.0-すべての言語 phpMyAdmin


フォルダをウェブサイトディレクトリに移動する

mv phpMyAdmin /home/www


インストール後にPHP拡張機能がインストールされていない場合は、PHP-mysqlnd拡張機能をインストールする必要があります。

dnf で php-mysqlnd をインストールします

最後に、Web ディレクトリを再認証します。

chown -R nginx:nginx /home/www

phpMyAdmin 設定ファイルを変更します。

phpMyAdmin ホームディレクトリで、設定ファイルの名前を変更します。

cd /home/uzbox/phpMyAdmin/

 

mv config.sample.inc.php config.inc.php

 

vi config.inc.php

$cfg['Servers'][$i]['host'] = 'localhost'; を $cfg['Servers'][$i]['host'] = '127.0.0.1'; に変更しました。
次に、phpMyAdmin が Cookie に使用する短いパスワードを変更します。
$cfg['blowfish_secret'] = ''; は $cfg['blowfish_secret'] = '123456'; に変更されます (注: '123456' は 32 ビットを超える任意の文字です)。
このパスワードは、複数の PhpMyAdmin または他のプログラムが Cookie を共有するときに混乱を避けるために、Cookie を暗号化するために使用されます。

Alibaba CloudにWordPressをインストールし、Centos8でLNMP環境を構築するチュートリアル

セッションパス(たとえば、/var/lib/php/session)のユーザーグループと権限を変更し、対応するセッションパスに移動します。

/var/lib/php をコピーする

 

chown nginx:nginx ./session

 

chmod -R 777 ./session


phpmyadminディレクトリに新しいtmpフォルダを作成し、権限を777に設定します。

chmod -R 777 /home/uzbox/phpMyAdmin/tmp


phpMyAdmin の高度な機能が完全に構成されておらず、一部の機能が有効化されていない問題を解決しました。
これは、phpMyAdmin で空の phpmyadmin データベースを作成するをクリックすることで解決できます。
最後に、Nginx で phpMyAdmin のアクセスパスを設定すると、正常にアクセスできるようになります。 アクセス時に phpmyadmin が空白の場合はどうすればいいですか? 別のバージョンをお試しください。注:phpMyAdmin 5.2.0はphp7.2以降のみをサポートしています。php7.2はサポートされていません。phpMyAdminに空白ページが表示される場合は、phpバージョンを変更するか、phpMyAdminのバージョンを変更してみてください。phpMyAdminページがエラーで開く場合は、phpバージョンを変更してから再度アクセスしてみてください。 phpMyAdmin 5.2.0

phpMyAdmin 5.2.0のリリースへようこそ。このリリースには、多くの新機能と多数のバグ修正が含まれています。また、下流のパッケージングチームを支援するために、5.1シリーズの最終リリースとなるphpMyAdmin 5.1.4もリリースしました。ほとんどのユーザーは5.2.0に移行することをお勧めします。特に注目すべきは、これらのリリースでは、ファイルのエクスポート時に発生するネットワークエラーが修正されていることです( https://github.com/phpmyadmin/phpmyadmin/issues/17445 )。5.2.0 のその他のハイライトは次のとおりです。

  • Microsoft Internet Explorerのサポートを削除しました
  • PHP 7.2以降が必要です
  • openssl PHP拡張機能が必要です
  • システム CA バンドルと cacert.pem の処理が改善され、必要に応じて Mozilla CA にフォールバックできるようになりました。
  • 「マスター/スレーブ」という用語を「マスター/レプリカ」に置き換えます
  • テーブル検索に「NOT LIKE %...%」演算子を追加します
  • Mroongaエンジンのサポートを追加
  • アカウントロックアウトのサポートを追加
  • SQLパーサーライブラリの修正と改善

もちろん、このリリースに含まれるChangeLogファイルまたはオンラインで見つけることができます。その他の修正と新機能については、https://demo.phpmyadmin.net/master-config/index.php?route=/changelog をご覧ください。 現在入手可能https://phpmyadmin.net/downloads/ダウンロード

Alibaba CloudにWordPressをインストールする

WordPress公式サイト:https://cn.wordpress.org/
まず、WordPress の最新バージョンをダウンロードしてください。

wget https://cn.wordpress.org/latest-zh_CN.tar.gz


ダウンロード後、ファイルを解凍してください。

tar -xzvf 最新-zh_CN.tar.gz


フォルダをウェブサイトディレクトリに移動する

mv wordpress /var/wwwroot

 

cd /var/wwwroot


wp-config-sample.phpファイルの名前を変更します

cp wp-config-sample.php wp-config.php 


ウェブサイトの構成ファイルを変更します。

vim 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' );
データテーブルを作成する際のデフォルトのテキストエンコーディング:define('DB_CHARSET', '' );
ファイルの末尾に次のコードを追加します。

if(is_admin()) {add_filter('filesystem_method', create_function('$a', 'return "direct";' ));define( 'FS_CHMOD_DIR', 0751 );}


設定ファイルを変更した後、phpMyAdminをWordPressディレクトリに配置します。

mv phpMyAdmin /var/wwwroot/phpMyAdmin


https://ウェブサイトのドメイン名/phpMyAdmin
次にphpMyAdminを開き、新しいWordPressデータベースを作成し、「WordPress」という名前を付けて、空のデータベースを作成します。このデータベース名は、上記のwp-config.phpで設定した名前と同じにする必要があります。
その後、ブラウザでウェブサイトを設定し、インストール手順を順に実行してください。Google Chromeのご利用をお勧めします。
https://ウェブサイトのドメイン名/wp-admin/install.php ウェブサイトプラグイン更新のインストールとテンプレートのインストール権限設定:
このステップでは、ディレクトリのパーミッションを777に設定する人もいますが、これはセキュリティリスクを伴います。正しい設定は、すべてのユーザーグループとユーザー、つまりPHPのユーザーグループ、NGINXのユーザーグループ、そしてWordPressストレージディレクトリのユーザーグループを統一することです。
まずウェブサイトの保存ディレクトリに入り、フォルダのユーザーグループと権限を確認します

cd /var/wwwroot/


ls -l コマンドを使用して、ディレクトリが属するユーザーグループを表示します。デフォルトのユーザーグループとユーザーはどちらも root です。

ls -l


ウェブサイトが保存されているディレクトリのユーザー グループの権限を変更します。

chown -R nginx:nginx /var/wwwroot/


たとえば、nginx は nginx ユーザーを使用して起動されるため、ここでは nginx ユーザー グループと nginx ユーザーに変更する必要があります。
PHP では、起動に nginx ユーザー グループも使用する必要があります。

vi /etc/php-fpm.d/www.conf


ユーザー = Apache
グループ = Apache
nginxユーザーグループとユーザーを変更する
ユーザー = nginx
グループ = nginx
php ユーザーグループ、NGINX ユーザーグループ、および wordpress ストレージディレクトリのユーザーグループを変更したら、サーバーを再起動するだけです。
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 1024; #単一のワーカープロセスに許可される最大接続数。デフォルトは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 8; # 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; include /etc/nginx/mime.types; # ファイル拡張子とファイルタイプのマッピングテーブル。MIMEタイプ(メールサポートタイプ)を設定します。タイプはmime.typesファイルで定義されます。include /etc/nginx/conf.d/*.conf; # /etc/nginx/conf.dディレクトリからモジュール設定ファイルを読み込みます。}

サーバー構成:

server { listen 80; listen [::]:80; server_name www.uzbox.tk uzbox.tk; #ウェブサイトのドメイン名return 301 https://uzbox.tk$request_uri; #301Redirect to https } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name www.uzbox.tk; #ウェブサイトのドメイン名(複数指定可能、スペース区切り)return 301 https://uzbox.tk$request_uri; ssl_certificate /home/ssl/uzbox.tk/fullchain.cer; ssl_certificate_key /home/ssl/uzbox.tk/uzbox.tk.key; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name uzbox.tk; root /home/www; index index.php index.html index.htm; ssl_certificate /home/ssl/uzbox.tk/fullchain.cer; ssl_certificate_key /home/ssl/uzbox.tk/uzbox.tk.key; ssl_session_cache shared:le_nginx_SSL:10m; ssl_session_timeout 1440m; ssl_session_tickets オフ; 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-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/default.d/*.conf; # /etc/nginx/default.d からデフォルト サーバー ブロックの構成ファイルをロードします。 # 疑似静的ページの場所 / { if (-f $request_filename/index.html){ rewrite(.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite(.*) $1/index.php; } if (!-f $request_filename){ rewrite(.*) /index.php; } } }

擬似静的プラグインのインストール:
まず、WordPress の固定リンクを変更し、バックエンドに移動して、固定リンク設定を開く必要があります。
自定义结构后面填入%category%/%post_id%
「No Category Base」プラグインをインストールして、カテゴリディレクトリ /category/ を削除し、最後にサーバー上で実行されているすべてのサービスを確認します。

systemctl list-units --type=service
スコア

手紙への返信

メールアドレスが変更されることはありません。 支払い欄に必須の項目は必須です