ウェブサイト検索

自分のサーバーでWordPressサイトをセットアップする方法(Ubuntu & NGINXを使用)


他の誰かに月額料金を支払ってWordPressインスタンスを管理してもらうことは常に可能ですが、既存のハードウェアを活用したい人や、自分のブログを設定するための楽しいプロジェクトを望んでいる人にとって、セルフホスティングは非常に理にかなっています。ここでは、NGINXを使用してUbuntu Linux上に基本的なWordPressサイトをセットアップおよび構成する方法を示します。

依存関係のインストール

まず、NGINXをインストールする必要があります。aptを更新してインストールします:

sudo apt update

sudo apt install nginx

もし UFW のようなファイアウォールが有効になっている場合は、開放する必要があります:

sudo ufw allow 'Nginx HTTP'

Wordpressがインストールされたら、NGINXを設定します。それまでの間、Wordpressが使用するMySQLデータベースを作成する必要があります。

MySQLがインストールされていない場合は、aptから入手できます。インストールが完了したら、mysql_secure_installationを実行してセキュリティを強化してください。詳細については、一般的なデータベースのセキュリティに関するガイドを読んでください。ただし、MySQLがlocalhostで実行されている限り、問題ないはずです。

sudo apt install mysql-server

sudo mysql_secure_installation

WordPressが使用するためのデータベースを作成します。テーブルなどを設定する必要はなく、空のデータベースで大丈夫です。

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

次に、wordpressuserという名前のユーザーを作成し、データベースへのアクセスを与えます。パスワードを変更することを忘れないでください。

CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON * . * TO 'wordpressuser'@'localhost';

FLUSH PRIVILEGES;

WordPressはPHPで動作するため、機能するにはPHPがインストールされている必要があります。以下の拡張機能と一緒にインストールしてください:

sudo apt install php-fpm php-mysql

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

PHPサービスを再起動して、新しい拡張機能に最新の状態にしてください。ここでバージョン番号を変更する必要があるかもしれないことに注意してください。

sudo systemctl restart php7.4-fpm.service

ワードプレスのインストール

彼らのサイトからWordPressの最新ビルドをダウンロードしてください:

cd /tmp

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

tar xzvf latest.tar.gz

次に、サンプル設定をWordPressが実際に読み込む場所にコピーします:

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

一時ディレクトリを適切なインストール場所に移動し、データのchownを行います:

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

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

セキュリティとパスワード管理に使用されるソルトを設定する必要があります。WordPressのAPIから新しいソルトのセットを取得できます:

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

次に、WordPressの設定ファイルを開き、値を貼り付けます。

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

このファイルにいる間に、データベースの設定を構成する必要があります。

define('DB_NAME', 'wordpress');

/** MySQL database username */

define('DB_USER', 'wordpressuser');

/** MySQL database password */

define('DB_PASSWORD', 'password');

define('FS_METHOD', 'direct');

それが完了したら、WordPressを設定する必要があり、コンテンツを配信するためにNGINXを設定する必要があります。

NGINXの設定

NGINXは、異なるエンドポイントを設定するために/etc/nginx/sites-available/の構成ファイルを使用します。このフォルダにあなたのサイト用の新しいファイルを作成し、以下を貼り付けてください:

Upstream to abstract backend connection(s) for php

upstream php {

server unix:/var/run/php/php7.4-fpm.sock;

server 127.0.0.1:9000;

}

server {

## Your website name goes here.

server_name domain.tld;

## Your only path reference.

root /var/www/wordpress;

## This should be in your http block and if it is, it's not needed here.

index index.php;

location = /favicon.ico {

log_not_found off;

access_log off;

}

location = /robots.txt {

allow all;

log_not_found off;

access_log off;

}

location / {

# This is cool because no php is touched for static content.

# include the "?$args" part so non-default permalinks doesn't break when using query string

try_files $uri $uri/ /index.php?$args;

}

location ~ .php$ {

#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

include fastcgi_params;

fastcgi_intercept_errors on;

fastcgi_pass php;

#The following parameter can be also included in fastcgi_params file

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {

expires max;

log_not_found off;

}

}

ホスト名やその他の設定の情報を入力する必要があること、また新しいPHPバージョンを使用している場合はその更新が必要であることに注意してください。この設定をsites-availableに保存し、それからsites-enabledにシンボリックリンクを作成して有効にする必要があります。

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

一度有効にしたら、NGINXを再起動してください。ブラウザでサイトを訪れるとWordPressが表示されます。初回設定のウォークスルーを行う必要があります。

sudo service nginx restart

今後はいつでもダッシュボードをhttps://example.com/wp-admin/で表示できるようになります。

次に、サイトの接続を安全にするためにSSLを設定する必要があります。これは、LetsEncryptの無料証明書へのCLIフロントエンドであるcertbotを使用して無料で行うことができます。

sudo apt-get install certbot

sudo apt install python3-certbot-nginx

それから、certbotを実行します:

sudo certbot nginx -certonly

その後、NGINXを再起動する必要があります。

sudo サービス nginx 再起動

サイトの設定

おめでとうございます!あなたは稼働中のWordPressサイトを持っています。デフォルトのテーマではおそらくひどい見た目になっています。最初にやりたいことはテーマを変更することで、ダッシュボードから行うことができます。

選択したテーマに関わらず、外観タブからそれを有効にする必要があります。

その後、サイトにアクセスしてヘッダーの「カスタマイズ」をクリックすることで、設定とスタイルを構成できます。最も良いことの一つは、サイトに完全にカスタムのCSSを追加できることで、ページ上の任意の要素を変更できます。

テーマに何かを編集したい場合、PHPをいじることを気にしないのであれば、テーマファイルを直接編集できます。たとえば、私はテーマファイルを編集して、投稿のリストではなく、2つの投稿を横並びにしたグリッドをレイアウトしました。

cd /var/www/wordpress/wp-content/themes/dark-press/

sudo nano index.php

関連記事: