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

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

この記事では、Apache®を使用してLinux®WebサーバーにWordPress®をインストールする方法について説明します。

人気のあるオープンソースのブログツールであるWordPressは、PHPとMySQL®を使用してサイトのコンテンツとインターフェースを管理します。

重要 :RackspaceSupportはWordPress構成をサポートしていません。この記事では、ベストエフォートソリューションとして手順を説明しますが、予期しないダウンタイムを防ぐために、開発者は手順を実装する前に徹底的に確認する必要があります。

前提条件

sudoを使用して、root以外のユーザーとしてすべてのコマンドを実行します 特権。

このインストールでは、サーバーにLAMPスタックをインストールします。 LAMPには、Linux®、Apache、MySQL、およびPHPが含まれます。これらをすでにインストールしている場合は、次のセクションに進んでください。それ以外の場合は、RHEL7ベースのディストリビューションにLAMPスタックをインストールする方法に関する記事を参照してください。

WordPress用のMySQLデータベースとユーザーを作成します

前述のように、WordPressはリレーショナルデータベースを使用してコンテンツを管理します。この例では、以前にインストールしたMariaDBを使用して、WordPressが使用するユーザーとデータベースを作成します。次の手順を実行して、データベースとWordPressユーザーを作成します。

  1. 次のコマンドを実行して、rootユーザーでMySQLにログインします。
$ mysql -u root -p
  1. wpdatabaseという名前のデータベースを作成します 。すべてのMySQL命令は、セミコロン(; )で終了する必要があることを忘れないでください ):
CREATE DATABASE wpdatabase;
  1. WordPressがこのデータベースでの作業に使用するユーザーを作成します。ユーザーをwpuserとして設定します パスワードpassword
CREATE USER wpuser@localhost IDENTIFIED BY 'password';
  1. データベース全体を管理する権限をユーザーに付与します。
GRANT ALL PRIVILEGES ON wordpress.* TO wpuser@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
  1. MySQLインターフェースを終了します:
exit

この手順で、WordPressMySQLの要件が完了します。 WordPress用に特定のデータベースとユーザーを作成する必要はありませんが、セキュリティのために作成することを強くお勧めします。

WordPressをインストール

WordPressをインストールするには、次の手順を実行します。

  1. 次のコマンドを実行して、WordPressが画像のサイズを変更し、MySQLデータベースが必要な機能にアクセスできるようにするPHPパッケージをインストールします。
$ sudo yum install php74-gd php74-mysqlnd
$ sudo service httpd restart
  1. サーバーのホームディレクトリに最新のWordPressバージョンをダウンロードします:
$ cd ~
$ wget http://wordpress.org/latest.tar.gz
  1. 圧縮フォルダからすべてのファイルを抽出します:
$ tar xzvf latest.tar.gz

このコマンドは、 wordpressというディレクトリを作成します すべてのファイルを含むホームディレクトリで、WordPressが正しく機能する必要があります。

  1. 次のコマンドを実行して、ワードプレスをコピーします / var / www / htmlへのディレクトリ 、これにはすべてのWebページファイルが含まれ、デフォルトのアクセス許可が保持されます:
$ sudo mv ~/wordpress/ /var/www/html/example.com
  1. WordPressがアップロードされたすべてのファイルを保存できるフォルダーを作成します:
$ mkdir /var/www/html/example.com/wp-content/uploads
  1. 上記の手順では、Webサーバー上にWordPressのサンプルページを作成します。ただし、問題なく機能するには、ファイルの所有権をFTPユーザーまたはApacheユーザーとグループに変更して、WordPressが適切な権限ですべてのファイルにアクセスできるようにする必要があります。次のコマンドを実行します:
$ sudo chown -R FTP_USER:apache /var/www/html/example.com
WordPressを構成する

ほとんどの構成はWebページのグラフィックインターフェイス(GUI)を介して完了しますが、サーバーでいくつかの構成変更を行う必要があります。サーバーを構成するには、次の手順を実行します。

  1. すべてのWebファイルが配置されているフォルダーに移動します:
$ cd /var/www/html
  1. WordPressにはwp-config.phpという構成ファイルが必要なため 、存在しない場合は、次のコマンドを実行してサンプルファイルをコピーし、名前を変更します。
$ sudo cp wp-config-sample.php wp-config.php
  1. nanoやviなどのテキストエディタを使用して構成ファイルを編集します。この例では、viを使用しています :
$ sudo vi wp-config.php
  1. MySQL設定でデータベース情報を指定します セクション。 WordPress用のMySQLデータベースとユーザーの作成で定義されたデータベース名とユーザー資格情報を入力します 次の例のようなセクション:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wpdatabase');

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

/** MySQL database password */
define('DB_PASSWORD', 'password');
WordPressの保護 ファイルのアクセス許可を変更する

WordPressのドキュメントによると、ウェブサイトのドキュメントルートでファイルのアクセス許可を変更すると、ウェブサイトのセキュリティが向上します。

$ find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
$ find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;

vHost構成内または.htaccess内に、次のブロックを配置して、どのユーザーもスクリプトにアクセスできないようにすることができます。

# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>


# BEGIN WordPress
アップロードディレクトリでのPHPの実行を無効にする

Wordpressサイトが危険にさらされると、多くの場合、正当なWordpressファイルを装った書き込み可能なディレクトリにバックドアがアップロードされます。既存のセキュリティ戦略に追加するために実行できる1つのステップは、特定のディレクトリでのPHPの実行を無効にすることです。

最も一般的な方法の1つは、wp-content / uploadsディレクトリ内でPHPの実行を無効にすることです。これは、次の方法で実行できます。

$ vim /var/www/vhosts/example.com/wp-content/uploads/.htaccess
[...]
# Prevent PHP execution
<Files *.php>
deny from all
</Files>
[...]

警告: これにより、wp-content / uploadsディレクトリ内でPHPを実行する必要がある場合、テーマが壊れる可能性があります。何かが壊れているのを見つけたら、変更をロールバックするだけで、サイトが再び機能し始めます。

xmlrpc.php攻撃をブロックする

WordpressはXML-RPCを使用して、Wordpress内の機能をリモートで実行します。多くの場合、悪意のある当事者がxmlrpc.phpをブルートフォース攻撃で悪用しようとします。これにより、Webサーバーに何千ものリクエストが送信され、リソース競合の問題が発生する可能性があります。

xmlrpc.php攻撃は、サイトのアクセスログを確認することで検出できます。以下のように見える数十万から数千のリクエストが短期間に見られる場合、それはxmlrpc.phpが攻撃されていることを示しています:

$ tail /var/log/httpd/example.com-access.log
[...]
123.123.123.123 - - [2/Jun/2022:15:45:02 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
123.123.123.123 - - [2/Jun/2022:15:45:02 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
123.123.123.123 - - [2/Jun/2022:15:45:03 +0000] "POST /xmlrpc.php HTTP/1.1" 200 247 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
[...]

以下を.htaccessファイルに入れることで、Apacheでのxmlrpc.phpブルートフォース攻撃を軽減できます。

$ vim /var/www/vhosts/example.com/.htaccess
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>

wp-adminログインでSSLを強制する

$ vim /var/www/vhosts/example.com/wp-config.php
[...]
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
/* That's all, stop editing! Happy blogging. */
[...]

GUIで構成を完了します

http:// にアクセスして、WordPressページにアクセスできるようになりました。 。プロンプトが表示されたら、インストール言語、サイト情報、および管理者のポータルにアクセスするためのユーザーを入力します。この構成が完了すると、システムはメインのWordPressdashboardにリダイレクトします。

このダッシュボードにいつでもアクセスするには、 http:// /wp-login.phpにアクセスしてください。 またはhttp:// /wp-login.php

結論

WordPressは非常に直感的なコンテンツ管理システム(CMS)であり、ブログのWebページをすばやく無料で設定できます。この記事の手順を完了すると、WordPressサイトの使用を開始できます。


Linux
  1. Apache を使用して Ubuntu 22.04 に phpMyAdmin をインストールする

  2. Linux に SSL を使用して Apache 2 をインストールする方法 (mod_ssl、openssl を使用)

  3. Linux で Apache を使用してサブドメインを設定する

  1. Apache を使用して Ubuntu 20.04 に phpMyAdmin をインストールする

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

  3. Docker Compose、Nginx、SSL を使用した Apache で WordPress をインストールする

  1. Flatpakを使用してLinuxにアプリをインストールする

  2. LVMを使用してLinuxをインストールする

  3. Linux にソースから Apache 2 をインストールする