LAMPスタックを使用してUbuntu22.04にWordPressをインストールする方法

提供:Dev Guides
移動先:案内検索

序章

WordPressは、人気のあるオープンソースのコンテンツ管理システム(CMS)であり、ユーザーがWebサイトのコンテンツを作成、カスタマイズ、および管理できるようにします。 CMSは、Webサイトを構築するための基本的なインフラストラクチャを提供します。これは、独自のWebサイトを最初から構築およびコーディングする知識がないユーザーに役立ちます。 WordPress CMSには、新しいWebページを作成したり、メディアを追加したりするためのユーザーフレンドリーなインターフェイスを備えた管理ダッシュボードなど、多くのカスタマイズツールがあります。 これらの理由から、WordPressは今日の市場で最も使用されているCMSの1つです。

WordPressにアクセスするにはさまざまなアプローチがありますが、セットアッププロセスの中には他のプロセスよりも複雑なものがあります。 このチュートリアルは、コマンドラインを介して管理されていないクラウドサーバーにWordPressインスタンスをインストールして管理したい方を対象としています。 このアプローチでは、既製のWordPressインストールよりも多くの手順が必要ですが、管理者はWordPress環境をより細かく制御できます。

このチュートリアルでは、LAMP( L inux、 A pache、 M ySQL、および P HP)スタックを使用します。 Linuxオペレーティングシステム、Apache Webサーバー、MySQLデータベース、およびPHPプログラミング言語を提供することにより、WordPressをサポートするサーバーアーキテクチャのオプション。 LinuxUbuntu22.04サーバーにLAMP経由でWordPressをインストールしてセットアップします。

ニーズと目標に応じて、より適切な他のオプションが見つかる場合があります。 オープンソースソフトウェアとして、WordPressは自由にダウンロードしてインストールできますが、Webで利用できるようにするには、クラウドインフラストラクチャとドメイン名を購入する必要があります。 サーバー側でのWordPressサイトのインストールとセットアップに関心がある場合は、このガイドに従ってください。

既製のWordPressインストールにアクセスする場合は、 DigitalOcean Marketplaceがワンクリックアプリを提供しており、サーバーを起動するときにインストールを通じてWordPressを開始できます。


前提条件

このチュートリアルを完了するには、次のものが必要です。

  • Ubuntu22.04初期サーバーセットアップガイドに従ってセットアップされた1つのUbuntu22.04サーバー。 root sudo以外のユーザーとファイアウォールが有効になっていることを確認してください。
  • サーバーにインストールされているLAMPスタック。 Linux、Apache、MySQL、PHP(LAMP)スタックをUbuntu 22.04 にインストールする方法に関するガイドに従って、このソフトウェアをインストールおよび構成します。
  • TLS/SSL証明書で保護されたサイト。 WordPressはユーザー入力を受け取り、ユーザーデータを保存するため、セキュリティのレイヤーを用意することが重要です。 TLS / SSLは、サイトからのトラフィックを暗号化して、ユーザーとユーザーの接続を保護するためのテクノロジーです。 この要件を満たすために利用できる2つのオプションは次のとおりです。 ドメイン名をお持ちの場合は、無料の信頼できる証明書を提供するLet'sEncryptを使用してサイトを保護できます。 これを設定するには、ApacheのLet'sEncryptガイドに従ってください。 ドメインがなく、テストまたは個人的な使用のためにこの構成を使用している場合は、代わりに自己署名証明書を使用できます。 これは同じタイプの暗号化を提供しますが、ドメイン検証はありません。 Apacheの自己署名SSLガイドに従ってセットアップしてください。

セットアップが完了したら、sudoユーザーとしてサーバーにログインし、最初の手順に進みます。

ステップ1—WordPress用のMySQLデータベースとユーザーを作成する

最初のステップは準備です。 WordPressはMySQLを使用して、サイトとユーザーの情報を管理および保存します。 MySQLはすでにインストールされていますが、WordPressで使用するデータベースとユーザーを作成する必要があります。

開始するには、次のコマンドを発行してMySQLルート(管理)アカウントにログインします(これはサーバーの root ユーザーではないことに注意してください)。

sudo mysql

注:前提条件にリストされているチュートリアル以外のチュートリアルに従ってMySQLをインストールした場合は、ルートMySQLユーザーのパスワード認証が有効になっている可能性があります。 その場合は、次のコマンドを使用してMySQLに接続できます。

mysql -u root -p

データベース内に、WordPressが制御するための専用データベースを作成します。 これは好きなように呼び出すことができますが、このガイドではwordpressという名前を使用します。 次のコマンドを実行して、WordPressのデータベースを作成します。

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

注:すべてのMySQLステートメントはセミコロン(;)で終了する必要があります。 問題が発生した場合は、これが存在することを確認してください。


次に、新しいデータベースの操作にのみ使用する別のMySQLユーザーアカウントを作成します。 特定のデータベースとアカウントを作成すると、管理とセキュリティの観点からサポートできます。 このガイドではwordpressuserという名前を使用しますが、この用途には任意の名前を使用してください。

このユーザーは、次のコマンドを実行して作成できます。 passwordがあるデータベースユーザーには、ここで強力なパスワードを選択することを忘れないでください。

CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

次に、wordpressuserが設定したデータベースに完全にアクセスできる必要があることをデータベースに通知します。

GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';

これで、データベースとユーザーアカウントができました。それぞれ、WordPress用に特別に作成されています。 MySQLの現在のインスタンスが最近行われた変更を認識できるように、特権をフラッシュする必要があります。

FLUSH PRIVILEGES;

次のように記述して、MySQLを終了します。

EXIT;

次のステップでは、サーバーのPHP拡張機能をダウンロードして、WordPressプラグインの基礎を築きます。

ステップ2—追加のPHP拡張機能をインストールする

LAMPスタックをセットアップするとき、PHPがMySQLと通信できるようにするために必要な拡張機能のセットはごくわずかでした。 ただし、WordPressとそのプラグインの多くは、追加のPHP拡張機能を活用しています。

WordPressで使用するための最も人気のあるPHP拡張機能のいくつかをダウンロードしてインストールできます。 ただし、最初に、APTパッケージ管理ツールを使用してローカルパッケージインデックスを更新します。

sudo apt update

次に、WordPress用のさまざまなPHP拡張機能をインストールできます。

sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

これにより、WordPressサイトに追加のプラグインをインストールするための基礎が築かれます。

注:各WordPressプラグインには独自の要件があります。 一部の場合、追加のPHPパッケージをインストールする必要があります。 プラグインのドキュメントを確認して、PHPの要件を確認してください。 使用可能な場合は、前の例で示したように、aptを使用してインストールできます。


これらの新しい拡張機能をロードするには、Apacheを再起動する必要があります。 次のセクションでは、Apacheの構成をさらに微調整して、それまで待つか、今すぐ再起動してPHP拡張プロセスを完了します。

sudo systemctl restart apache2

再起動した後、または待機することを選択した場合は、次のセクションに進んでApache構成の調整を開始できます。

ステップ3—.htaccessのオーバーライドと書き換えを許可するようにApacheの構成を調整する

次に、Apache構成にいくつかの小さな調整を加えます。 前提条件のチュートリアルに基づいて、/etc/apache2/sites-available/ディレクトリにサイトの構成ファイルが必要です。

このガイドでは、例として/etc/apache2/sites-available/wordpress.confを使用しますが、必要に応じて、既存の構成ファイルへのパスを置き換える必要があります。 さらに、WordPressインストールのルートディレクトリとして/var/www/wordpressを使用します。 独自の構成で指定されたWebルートを使用する必要があります。 LAMPチュートリアルに従った場合、これらの両方のインスタンスでwordpressではなくドメイン名である可能性があります。

注: 000-default.confのデフォルト構成(/var/www/htmlをWebルートとして使用)を使用している可能性があります。 これは、このサーバーで1つのWebサイトのみをホストする場合に使用できます。 そうでない場合は、必要な構成を論理チャンクに分割し、サイトごとに1つのファイルを作成することをお勧めします。


パスを特定したら、.htaccessの操作に進み、Apacheがディレクトリごとに構成の変更を処理できるようにします。

.htaccessオーバーライドの有効化

現在、.htaccessファイルの使用は無効になっています。 WordPressおよび多くのWordPressプラグインは、これらのファイルを広範囲に使用して、Webサーバーの動作をディレクトリ内で微調整します。

お好みのテキストエディタを使用して、WebサイトのApache構成ファイルを開きます。 ここでは、nanoを使用します。

sudo nano /etc/apache2/sites-available/wordpress.conf

.htaccessファイルを許可するには、ドキュメントルートを指すDirectoryブロック内でAllowOverrideディレクティブを設定する必要があります。 構成ファイルのVirtualHostブロック内に次のコンテンツを追加し、正しいWebルートディレクトリを使用していることを確認します。

/etc/apache2/sites-available/wordpress.conf

<VirtualHost *:80>
. . .
    <Directory /var/www/wordpress/>
        AllowOverride All
    </Directory>
. . .
</VirtualHost>

終了したら、ファイルを保存して閉じます。 nanoでは、CTRLXを同時に押してから、YENTERを押すことでこれを行うことができます。

リライトモジュールの有効化

次に、mod_rewriteを有効にして、WordPressのパーマリンク機能を使用できるようにします。

sudo a2enmod rewrite

これにより、次の2つの例のように、投稿への人間が読めるパーマリンクを増やすことができます。

http://example.com/2012/post-name/
http://example.com/2012/12/30/post-name

a2enmodコマンドは、Apache構成内で指定されたモジュールを有効にするスクリプトを呼び出します。

変更を有効にする

行った変更を実装する前に、次のテストを実行して、構文エラーが発生していないことを確認してください。

sudo apache2ctl configtest

次のような出力を受け取る場合があります。

OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

トップラインを抑制したい場合は、ServerNameディレクティブをメイン(グローバル)Apache構成ファイルの/etc/apache2/apache2.confに追加します。 ServerNameは、サーバーのドメインまたはIPアドレスにすることができます。 ただし、これは単なる警告メッセージであり、サイトの機能には影響しません。 出力にSyntax OKが含まれている限り、続行する準備ができています。

Apacheを再起動して変更を実装します。 このチュートリアルの前半で再起動した場合でも、今すぐ再起動してください。

sudo systemctl restart apache2

次に、WordPress自体をダウンロードして設定します。

ステップ4—WordPressをダウンロードする

サーバーソフトウェアが構成されたので、WordPressをダウンロードしてセットアップできます。 セキュリティ上の理由から、サイトから最新バージョンのWordPressを入手することを常にお勧めします。

まず、書き込み可能なディレクトリに変更します(/tmpのような一時的なディレクトリをお勧めします)。

cd /tmp

次に、次のcurlコマンドを使用して圧縮リリースをダウンロードします。

curl -O https://wordpress.org/latest.tar.gz

圧縮ファイルを抽出して、WordPressディレクトリ構造を作成します。

tar xzvf latest.tar.gz

これらのファイルをドキュメントルートに一時的に移動します。 その前に、ダミーの.htaccessファイルを追加して、後でWordPressで使用できるようにすることができます。

次のコマンドを実行してファイルを作成します。

touch /tmp/wordpress/.htaccess

また、サンプル構成ファイルをWordPressが読み取るファイル名にコピーします。

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

さらに、upgradeディレクトリを作成して、WordPressがソフトウェアの更新後に単独でこれを実行しようとしたときに、アクセス許可の問題が発生しないようにします。

mkdir /tmp/wordpress/wp-content/upgrade

これで、ディレクトリの内容全体をドキュメントルートにコピーできます。 ソースディレクトリの最後にドットを使用して、非表示のファイル(作成した.htaccessファイルなど)を含め、ディレクトリ内のすべてをコピーする必要があることを示しています。 /var/www/wordpressディレクトリをサーバーに設定したディレクトリに置き換えてください。

sudo cp -a /tmp/wordpress/. /var/www/wordpress

これで、WordPressディレクトリを構成する準備が整いました。

ステップ5—WordPressディレクトリを設定する

WebベースのWordPressセットアップを開始する前に、WordPressディレクトリ内のいくつかの項目を調整する必要があります。

所有権と権限の調整

もう1つの重要なステップは、WordPressが機能するために使用するファイルとディレクトリの適切なファイル権限と所有権を設定することです。

www-dataユーザーとグループにすべてのファイルの所有権を与えることから始めます。 これは、Apache Webサーバーを実行するユーザーであり、Apacheは、Webサイトにサービスを提供し、自動更新を実行するために、WordPressファイルの読み取りと書き込みができる必要があります。

chownコマンドを使用して所有権を更新します。これにより、ファイルの所有権を変更できます。 サーバーの関連ディレクトリを必ず指定してください。

sudo chown -R www-data:www-data /var/www/wordpress

次に、2つのfindコマンドを実行して、WordPressディレクトリとファイルに正しい権限を設定します。 この最初のfindコマンドは、/var/www/<>^wordpress<^>ディレクトリ内のすべてのディレクトリを設定し、それぞれの権限を750に設定します。

sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;

これは、ディレクトリ内の各ファイルを検索し、それらのアクセス許可を640に設定します。

sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

これらの権限により、WordPressを効果的に使用できるようになりますが、一部のプラグインと手順では追加の調整が必要になる場合があることに注意してください。

WordPress設定ファイルの設定

次に、メインのWordPress構成ファイルにいくつかの変更を加える必要があります。

ファイルを開くときの最初のタスクは、インストールのセキュリティレベルを提供するためにいくつかの秘密鍵を調整することです。 WordPressは、これらの値の安全なジェネレーターを提供するため、自分で適切な値を考え出す必要はありません。 これらは内部でのみ使用されるため、ここで複雑で安全な値を使用してもユーザビリティが損なわれることはありません。

WordPressシークレットキージェネレーターから安全な値を取得するには、次のコマンドを実行します。

curl -s https://api.wordpress.org/secret-key/1.1/salt/

次のような出力に似た一意の値を受け取ります。

警告!毎回一意の値を要求することが重要です。 次の値の例をNOTコピーしてください。


Outputdefine('AUTH_KEY',         '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
define('SECURE_AUTH_KEY',  'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
define('LOGGED_IN_KEY',    'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
define('NONCE_KEY',        'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
define('AUTH_SALT',        'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES  07VC*Lj*lD&?3w!BT#-');
define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
define('LOGGED_IN_SALT',   'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
define('NONCE_SALT',       'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

これらは、安全なキーを設定するために構成ファイルに直接配置できる構成行です。 今受け取った出力をコピーします。

次に、WordPress構成ファイルを開きます。

sudo nano /var/www/wordpress/wp-config.php

これらの設定の値の例を含むセクションを見つけます。

/var/www/wordpress/wp-config.php

. . .

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

. . .

これらの行を削除し、コマンドラインからコピーした値を挿入します。

/var/www/wordpress/wp-config.php

. . .

define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');

. . .

次に、ファイルの先頭にあるデータベース接続設定の一部を変更します。 MySQL内で構成したデータベース名、データベースユーザー、および関連するパスワードを調整する必要があります。

行う必要のある他の変更は、WordPressがファイルシステムへの書き込みに使用する方法を設定することです。 Webサーバーに必要な場所への書き込みを許可しているので、ファイルシステムメソッドを明示的に「direct」に設定できます。 現在の設定でこれを設定しないと、WordPressがいくつかのアクションを実行するときにFTPクレデンシャルの入力を求める結果になります。

この設定は、データベース接続設定の下、またはファイル内の他の場所に追加できます。

/var/www/wordpress/wp-config.php

. . .

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

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

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

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

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );


. . .

define('FS_METHOD', 'direct');

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

ステップ6—Webインターフェイスを介したインストールの完了

サーバーの構成が完了したので、Webインターフェイスを介してインストールを完了することができます。

Webブラウザーで、サーバーのドメイン名またはパブリックIPアドレスに移動します。

https://server_domain_or_IP

使用する言語を選択するように求められます。

次に、メインのセットアップページが表示されます。

WordPressサイトの名前を選択し、ユーザー名を選択します。 セキュリティ上の理由から、一意のものを選択し、「admin」などの一般的なユーザー名は使用しないことをお勧めします。 強力なパスワードが自動的に生成されます。 このパスワードを保存するか、別の強力なパスワードを選択してください。

メールアドレスを入力し、検索エンジンがサイトのインデックスを作成しないようにするかどうかを選択します。

先にクリックすると、ログインを求めるページが表示されます。

ログインすると、WordPress管理ダッシュボードが表示されます。

この時点で、WordPressWebサイトのデザインを開始できます。 WordPressを初めて使用する場合は、インターフェイスを調べて新しいCMSに慣れてください。

結論

おめでとうございます。WordPressがインストールされ、使用できるようになりました。

この時点で、次のことを開始することをお勧めします。

  • 設定>パーマリンクにあるWordPress投稿のパーマリンク設定を選択します。
  • 外観>テーマで新しいテーマを選択します。
  • 新しいプラグインをインストールして、プラグイン>新規追加でサイトの機能を向上させます。
  • 他のユーザーと共同作業を行う場合は、この時点でユーザー>新規追加でユーザーを追加することもできます。

WordPressコミュニティタグをチェックして、WordPressをインストールする別の方法、さまざまなサーバーディストリビューションにWordPressをインストールする方法、WordPressのインストールを自動化する方法、WordPressサイトを拡張する方法について他のリソースを参照できます。