GNU/Linux >> Linux の 問題 >  >> Debian

Debian9にApacheを使用してWordPress5をインストールします

このチュートリアルでは、Debian9-StretchのLAMPスタックの上に最新バージョンのWordPress5をインストールして構成する方法を説明します。 Wordpressは、間違いなく、インターネットパブリッシングに最近使用されている最も人気のあるオープンソースのコンテンツ管理システムまたはCMSの1つであり、小さなブログサイトであれ有名な有名ブランドであれ、世界中の6000万を超えるウェブサイトに電力を供給しています。 PHPとMySQLエンジンに基づいて、Wordpressは多くの場合LAMPコレクションに関連付けられており、専用サーバーまたは仮想プライベートサーバー、あるいは共有Webホスティングプロバイダーにインストールされています。 LAMPの頭字語は、ソフトウェアのコレクション、別名ソフトウェアバンドルを表します。これは通常、 Linuxで構成されます。 選択したディストリビューションに関係なく、オープンソースカーネル、 Apache HTTPサーバーは、その安定性、柔軟性、パフォーマンスにより、インターネットで最も人気のあるオープンソースWebサーバーの1つであり、 PHP サーバー側のインタプリタプログラミング言語とMariaDB 最も人気のあるデータベースソフトウェアの1つであるリレーショナルデータベース管理システム(RDBMS)は、元のMySQLからオープンソースコミュニティによってフォークされ、同時に開発されました。

要件
  • 仮想プライベートサーバーまたは仮想マシン、あるいは専用のベアメタルマシンに直接Debian9オペレーティングシステムをクリーンインストールします。
  • VPSまたはリモートサーバーの場合のSSHリモートアクセスまたは直接コンソールアクセス
  • 少なくともサーバー上に構成されたネットワークインターフェースの静的IPアドレス
  • Webページをインターネットで公開する必要がある場合は、適切なDNSレコードが構成された登録済みのパブリックドメイン名が必要になります。このチュートリアルでは、 example.comを使用します 例として、メインルーターの背後にあるNATのプライベートスペースからのドメインと静的IPアドレス。ドメインは、Apache 80および443ポートをルーター側から内部のセルフホスト仮想マシンLANにポート転送することにより、インターネットからアクセスできます。

LAMPソフトウェアバンドルをインストールする

すべてのLAMPコンポーネントのインストールを開始する前に最初に行うことは、Debian 9サーバーにログインし、カーネルアップグレード、パッケージアップデート、セキュリティパッチなど、すべてのシステムコンポーネントに対して最新の手順を実行することです。ルート権限を持つ次のコマンド。

apt-get update
apt-get upgrade
apt-get dist-upgrade

次のステップでは、以下のコマンドを実行して、ホスト名変数を独自のわかりやすい名前に置き換えて、マシンの名前を設定する必要があります。それに応じて新しいホスト名を適用するために、システムを再起動する必要がある場合があることに注意してください。

hostnamectl set-hostname hostname.yourdomain.com

また、さまざまなトラブルシューティングの問題に後で役立つ次のユーティリティをインストールする必要があります。

apt install net-tools sudo wget curl bash-completion

マシンのホスト名が適用されたら、root権限で再度ログインし、Apache HTTPサーバーをインストールします。これは、デフォルトでは、バイナリパッケージにプリコンパイルされ、Debian9リポジトリによって提供されます。

apt install apache2

次に、次のコマンドを発行して、最新バージョンのPHP言語インタープリターとApacheWebサーバーに必要なすべてのモジュールをインストールしてWordpressCMSをデプロイします。

apt install libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-xml php7.0-curl php7.0-mbstring php7.0-mcrypt php7.0-xmlrpc

LAMPスタックを完成させるために現在欠落している最後のコンポーネントは、MariaDBデータベースサーバーです。次のコマンドを実行して、ApacheHTTPサーバーからデータベースにアクセスするために必要なPHPモジュールと一緒にMariaDBサーバーをインストールします。

apt install php7.0-mysql mariadb-server mariadb-client

MariaDBデータベースがインストールされたら、デーモンを起動し、実行中の mysql_secure_installationでデータベースを保護します。 以下の抜粋に示すようなスクリプト。主にはいで答えます すべての質問で、スクリプトはプロンプトを表示します。また、rootアカウントには強力なパスワードを選択してください。 MySQLのrootアカウントはLinuxのrootアカウントと同一ではないことに注意してください。 1つ目はMariaDBデータベースの管理にのみ使用され、2つ目はすべてのLinuxシステムのスーパーユーザーアカウントです。これらのアカウントがシステム内で重複することはありません。

systemctl start mariadb
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
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データベースのセキュリティ保護はまだ完了していません。デフォルトでは、パスワードの入力を求められることなく、データベースのルートアカウントを使用してローカルホストからMariaDBにログインできます。起こりうるセキュリティの問題を防ぐために、rootユーザーでデータベースにログインし、次のコマンドを発行します。

mysql -u root -p
MariaDB> use mysql;
MariaDB> update user set plugin='' where User='root';
MariaDB> flush privileges;
MariaDB> quit

次に、 root でログインして、データベースをテストします。 パスワードなしのアカウント。 MariaDBデータベースへのアクセスを拒否する必要があります。

次のステップでは、Apache WebサーバーのTLSを有効にして構成し、モジュールを書き換えます。これらはデフォルトで無効になっています。以下のコマンドを実行して、両方のモジュールを有効にします。

a2enmod rewrite ssl
a2ensite default-ssl.conf

次に、両方の有効なサイトのApache構成ファイルを開き、 DocumentRootの下に次のブロックを追加します。 次のスクリーンショットに示すようなディレクティブ。

nano /etc/apache2/sites-enabled/000-default.conf
nano /etc/apache2/sites-enabled/default-ssl.conf

両方の構成ファイルに、次のコードブロックを追加します。

    <Directory /var/www/html>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Require all granted
    </Directory>

apacheでdefault-ssl.conf TLS構成ファイルは、Apache SSLプロトコルのセキュリティを向上させるために、存在しない場合は以下のコンテンツを追加することもできます。これらのコード行は、一般的なSSLの脆弱性を修正する必要があります。

SSLProtocol all -SSLv2 -SSLv3
# Add SSL Cipher in one long line
SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder     on
SSLOptions +StrictRequire
 
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

上記の抜粋に示されている行がApacheSSL構成ファイルにすでに存在する場合は、上記のように変更するようにしてください。これらの設定を適用するには、Apacheヘッダーを有効にします。 モジュールを作成し、次のコマンドを実行してサービスを再起動します。

a2enmod headers
systemctl restart apache2.service

本番Webサイトの場合、WordPress CMSはほとんど動的コンテンツをPHPゲートウェイ経由で生成し、内部ユーザーの認証プロセスも処理するため、ApacheTLSモジュールを有効にする必要があります。 TLSテクノロジーを使用すると、転送される情報が両端で暗号化され、接続が保護されることが保証されます。情報がプレーンテキストで配信されないため、サードパーティまたは中間者はトラフィックを傍受できますが、コンテンツを復号化することはできません。

上記のすべての変更を行った後、潜在的な構文エラーを検出するためにApache構成をテストし、すべてに問題がない場合は、LAMPデーモンを再起動して、これまでに行ったすべての変更を反映し、次のコマンドを発行してシステム全体でサービスを有効にします。 。

apache2ctl -t
systemctl restart apache2.service mariadb.service
systemctl enable apache2.service mariadb.service

最後に、 netstat を発行して、ApacheおよびMariaDBサービスがリスニング状態でポートを開いているかどうかを確認します。 コマンドを実行し、 egrepを使用して出力をフィルタリングします これまでに、Apache Webサーバーにはポート80と443(HTTPおよびhttpsプロトコルに対応)が一般的に公開され、MariaDBは localhost:3306にのみバインドする必要があります。 ソケット。 -nを使用します netstatに対するフラグ サービス名の表示を抑制するコマンド。

netstat -tlp| egrep 'http|mysql'

インターネットからHTTPおよびHTTPSプロトコルを介してWebサーバーにアクセスできるようにするには、ブラウザを開いてドメイン名に移動します。 HTTPSプロトコルを介してブラウジングすると、ブラウザに証明書エラーが表示されます。これは、ApacheのデフォルトのTLS構成ファイルが自己署名証明書を使用するように構成されているためです。 TLSエラーを受け入れて、以下に示すようにデフォルトのWebページに移動し続ける必要があります。

http://www.yourdomain.com

https://www.yourdomain.com

インターネットからドメインのデフォルトのWebページにアクセスできない場合は、最初にシステムのファイアウォールルールが要求をブロックしているかどうかを確認するか、サーバーが内部LANの背後にある場合に備えて、ルーターの適切なポートが内部LANに転送されることを確認する必要があります。 NAT-edネットワーク。また、ドメインレジストラパネルでDNSレコードをチェックし、それらがWAN IPを指していること、およびレコードがインターネット上で伝播を終了したかどうかを確認することもできます。

PHPがサーバー側で期待どおりに機能しているかどうかをテストするには、PHP phpを作成します。 / var / www / html /内 システムパス。ApacheWebサーバーのデフォルトのWebドキュメントルートパスであり、次のコマンドを発行し、ブラウザから次のURIに移動して、結果を取得します。 http://www.yourdomain.com/info .php

echo '<?php phpinfo(); ?>' > /var/www/html/info.php

WordPress5.0をインストール

LAMPスタックが完全に構成されたので、WordpressCMSのインストールは比較的簡単です。まず、MariaDBデータベースにログインし、以下のコマンドを発行して、WordpressとWordpressCMSをインストールおよび管理するための適切なパスワードを持つユーザーのインストールデータベースを作成します。独自の要件に合わせて、データベース名とデータベースクレデンシャルを自由に置き換えてください。

mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress-user'@'localhost' IDENTIFIED BY 'wordpress-pass';
FLUSH PRIVILEGES;

次に、 wget を使用して、公式Webサイトから最新のWordpresstarballをダウンロードします。 ユーティリティを使用して、 tarで圧縮アーカイブを抽出します 効用。以下のコマンドを発行して、インストールファイルをApacheWebサーバーのドキュメントルートパスにコピーします。また、デフォルトの index.htmlを必ず削除してください ウェブページ。

cd /tmp
wget http://wordpress.org/latest.tar.gz
tar xfz latest.tar.gz
cp -rf wordpress/* /var/www/html/
rm /var/www/html/index.html

Webサーバーにwww-dataを付与するには、以下の説明に従ってApacheWebルートパスの権限を変更します。 インストールディレクトリへの完全な書き込み権限をグループ化します。この構成により、ApacheWebサーバーはこの特定のシステムパスの下でファイルとディレクトリを作成または変更できます。最も重要なものは、アップロードです。 ディレクトリと.htaccess ファイル。Apacheの機能を制御および拡張するために使用できます。

chmod -R 775 /var/www/html/
chgrp -R www-data /var/www/html/
ls -al /var/www/html

これですべてが整ったので、Wordpressのインストールを始めましょう。インストールプロセスはブラウザから実行されます。ブラウザを開き、HTTPSプロトコルを介してドメインにアクセスします。インストールの最初の画面で、 Let's goを押します ボタンをクリックしてインストールを開始します。

次のインストール画面で、データベースの名前、データベースアクセスの資格情報、Wordpressのインストール用に以前に作成したデータベースホストを追加し、[送信]をクリックします。 ボタンをクリックして続行します。データベースの構成は、 /var/www/html/wp-config.phpに保存されます。 後日、Wordpressの特別な目的のためにファイルを手動で変更できます。

次の画面で、インストールの実行をクリックします ボタンをクリックして、Webサイトのタイトル、Webサイトの管理者の資格情報、および電子メールアドレスを入力します。強力なパスワードは、インストールスクリプトによって自動的に生成される必要があります。このパスワードを保存するか、独自の強力なパスワードを提供するかを選択できます。終了したら、Wordpressのインストールを押します ボタンをクリックして、インストールプロセスを完了します。

最後に、インストールが正常に完了したら、ログインします。 インストールプロセス中に作成されたクレデンシャルを使用してWordpressダッシュボードにアクセスし、独自のWebサイトの管理を開始します。

WordPressバックエンドにログインします。

Wordpress管理ダッシュボード。

新しいWordPressGutenbergEditorで投稿を編集します。

新しいTwentyNineteenテーマを備えたWordpress5.0フロントエンド。

おめでとう!これで、Debian9のコードネームStretchのLAMPソフトウェアバンドルに最新バージョンのWordpressCMSが正常にインストールされました。

このチュートリアルの仮想マシンイメージのダウンロード

このチュートリアルは、VMWareおよびVirtualboxと互換性のあるovf/ova形式の仮想マシンイメージをすぐに使用できる状態で利用できます。仮想マシンイメージは、次のログイン詳細を使用します:

SSH/シェルログイン

ユーザー名:管理者
パスワード:howtoforge

このユーザーにはsu権限があります。

ユーザー名:root
パスワード:howtoforge

WordPressログイン

ユーザー名:admin
パスワード:howtoforge

MySQLログイン

ユーザー名:root
パスワード:howtoforge

VMのIPは192.168.1.100で、ファイル/ etc / network/interfacesで変更できます。仮想マシンを保護するために、上記のすべてのパスワードを変更してください。


Debian
  1. Debianにリモートデータベースを使用してWordPressをインストールする

  2. Debian7にApacheCassandraをインストールします

  3. Debian9にコックピットをインストールする

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

  2. Nginx を使用して Debian 11 に phpMyAdmin をインストールする

  3. Apache を使用して Debian 11 に phpMyAdmin をインストールする

  1. Debian9のLAMPにWordpressをインストールする

  2. Debian 11 /Debian10にApacheを使用してphpMyAdminをインストールする方法

  3. LinuxにApacheを使用してWordPressをインストールする