GNU/Linux >> Linux の 問題 >  >> Cent OS

Nginxを使用してWordPressをインストールし、CentOS8でSSLを暗号化する方法

WordPressは、無料のオープンソースであり、世界で最も広く使用されているコンテンツ管理システムです。これは、ブログ、ポートフォリオWebサイト、およびeコマースプラットフォームをホストするために使用できる非常に強力なブログプラットフォームです。 WordPressは、Apache / Nginxをウェブサーバーとして、MariaDB / MySQLをデータベースとして、PHP処理を使用します。 WordPressは、その機能をカスタマイズするために使用できる膨大な数のテーマとプラグインを提供します。

このチュートリアルでは、CentOS 8サーバーにNginxを使用してWordPressをインストールし、無料のLet'sEncryptSSL証明書を使用してサーバーを保護する方法を説明します。

前提条件
  • CentOS8を実行しているサーバー。
  • ルートパスワードはサーバーで構成されています。
  • 有効なドメイン名がサーバーのIPアドレスを指している。
はじめに

デフォルトでは、SELinuxはCentOS8サーバーで有効になっています。したがって、最初に無効にする必要があります。

これを行うには、/ etc / selinux/configファイルを編集します。

nano /etc/selinux/config

次の変更を行います:

SELINUX=disabled

ファイルを保存して閉じます。次に、サーバーを再起動して変更を適用します。

LEMPサーバーをインストールする

開始する前に、サーバーにNginx、MariaDB、PHP、およびその他の必要なパッケージをインストールする必要があります。次のコマンドを実行して、それらすべてをインストールできます。

yum install nginx php php-cli php-curl php-zip php-mbstring php-mysqlnd php-fpm curl unzip mariadb-server -y

すべてのパッケージがインストールされたら、Nginx、PHP-FPM、MariaDBサービスを開始し、システムの再起動後にそれらを開始できるようにします。

systemctl start nginx
systemctl enable nginx
systemctl start mariadb
systemctl enable mariadb
systemctl start php-fpm
systemctl enable php-fpm

次のコマンドを使用して、PHP-FPMサービスのステータスを確認することもできます。

systemctl status php-fpm

次の出力が得られるはずです:

? php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-10-17 05:39:11 EDT; 4min 40s ago
 Main PID: 1475 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 5060)
   Memory: 28.5M
   CGroup: /system.slice/php-fpm.service
           ??1475 php-fpm: master process (/etc/php-fpm.conf)
           ??1478 php-fpm: pool www
           ??1479 php-fpm: pool www
           ??1480 php-fpm: pool www
           ??1481 php-fpm: pool www
           ??1482 php-fpm: pool www

Oct 17 05:39:10 centos8 systemd[1]: Starting The PHP FastCGI Process Manager...
Oct 17 05:39:11 centos8 systemd[1]: Started The PHP FastCGI Process Manager.

完了したら、次のステップに進むことができます。

WordPressデータベースを構成する

デフォルトでは、MariaDBサーバーは保護されていません。したがって、最初にそれを保護する必要があります。次のコマンドで保護できます:

mysql_secure_installation

以下に示すように、すべての質問に答えてください。

Enter current password for root (enter for none):
Set root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

保護すると、次の出力が得られます。

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

次に、次のコマンドを使用してMariaDBシェルにログインします。

mysql -u root -p

プロンプトが表示されたらrootパスワードを入力し、次のコマンドを使用してWordPressのデータベースとユーザーを作成します。

MariaDB [(none)]> CREATE DATABASE wpdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES on wpdb.* to 'wpuser'@'localhost' identified by 'password';

次に、特権をフラッシュし、次のコマンドを使用してMariaDBシェルを終了します。

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

データベースを構成したら、次のステップに進むことができます。

ワードプレスをダウンロード

次のコマンドを使用して、最新バージョンのWordPressをダウンロードできます。

cd /var/www/html
wget https://wordpress.org/latest.tar.gz

ダウンロードしたら、次のコマンドを使用してダウンロードしたファイルを抽出します。

tar -xvzf latest.tar.gz

次に、wordpressディレクトリの所有権をnginxに変更します:

chown -R nginx: /var/www/html/wordpress/

次に、ディレクトリをwordpressに変更し、wordpressのデフォルト構成ファイルの名前を変更します。

cd /var/www/html/wordpress
cp wp-config-sample.php wp-config.php

次に、お気に入りのテキストエディタでファイルwp-config.phpを編集します。

nano wp-config.php

以下に示すようにデータベース情報を定義します。

/** The name of the database for WordPress */
define( 'DB_NAME', 'wpdb' );

/** MySQL database username */
define( 'DB_USER', 'wpuser' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

終了したら、ファイルを保存して閉じます。

WordPress用にNginxを構成する

次に、WordPressを提供するためのNginx仮想ホスト構成ファイルを作成する必要があります。次のコマンドで作成できます:

nano /etc/nginx/conf.d/wordpress.conf

次の行を追加します:

server {
    listen 80;
    server_name example.com;
    root /var/www/html/wordpress;
    index index.php;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }

}

ファイルを保存して閉じます。次に、次のコマンドを使用して、nginxに構文エラーがないか確認します。

nginx -t

次の出力が得られるはずです:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

最後に、Nginxサービスを再起動して、構成の変更を適用します。

systemctl restart nginx
WordPressダッシュボードにアクセス

WordPressがインストールおよび構成されたので、Webインターフェイスにアクセスします。

Webブラウザーを開き、URL http://example.comを入力します 。次のページにリダイレクトされます:

サイト名、管理者ユーザー名、パスワード、管理者メールなどの必要な情報をすべて入力し、WordPressのインストールをクリックします。 ボタン。インストールが完了したら。次のページが表示されます:

ログインをクリックします ボタン。 WordPressのログインページにリダイレクトされます:

管理者のユーザー名とパスワードを入力し、ログインをクリックします ボタン。次のページにWordPressダッシュボードが表示されます:

暗号化して安全なWordPress

Let's Encryptの無料SSLでWordPressサイトを保護するには、システムにCertbotLet'sEncryptクライアントをインストールする必要があります。デフォルトでは、CertbotはCentOS8のデフォルトリポジトリでは使用できません。そのため、Certbotの公式Webサイトからダウンロードする必要があります。

次のコマンドを使用して、Certbotをダウンロードしてインストールできます。

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

次に、次のコマンドを実行して、WordPressWebサイトのSSL証明書を取得してインストールします。

certbot-auto --apache -d example.com

メールアドレスを入力し、利用規約に同意するよう求められます。また、HTTPトラフィックをHTTPSにリダイレクトするかどうかを選択する必要があります。適切なオプションを選択して、Enterキーを押してください。インストールが正常に完了すると、次の出力が表示されます。

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2019-08-14. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
自動更新を暗号化するように設定

Let'sEncrypt証明書は90日間有効です。したがって、有効期限が切れる前に証明書を更新することをお勧めします。証明書を自動的に更新するようにCronジョブを設定できます。

これを行うには、次のコマンドを使用してcrontabを作成します。

crontab -e

次の行を追加します:

0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew

終了したら、ファイルを保存して閉じます。

結論

上記のチュートリアルでは、CentOSサーバーにNginxを使用してWordPressをインストールおよび構成する方法を学習しました。 Let'sEncryptの無料SSLでWordPressサイトを保護する方法も学びました。自分のWordPressWebサイトを簡単にホストできるようになったことを願っています。


Cent OS
  1. CentOS7にNginxとMariaDBを使用してownCloud9.1をインストールする方法

  2. Nginx、PHP-FPM、MariaDBを使用してCentOS7にMagentoをインストールします

  3. Nginxを使用してCentOS8にLet'sEncryptをインストールする方法

  1. CentOS7にHHVMとNginxを使用してWordPressをインストールする方法

  2. CentOS7にNginxとPHP-FPM7.1を使用してLaravel5.xをインストールする方法

  3. NGINXを使用してShopwareをインストールし、CentOS7で暗号化する方法

  1. Nginxを使用してWonderCMSをインストールし、CentOS7でSSLを暗号化する方法

  2. Nginxを使用してPicoCMSをインストールし、CentOS7で暗号化する方法

  3. Nginxを使用してAutomadCMSをインストールし、CentOS7でSSLを暗号化できるようにします