Ubuntu 24.04+Nginx+MariaDBでWordPressを構築する!

ソフトウェア

はじめに

 WordPressは多くの場合Apacheで構築されており情報もネット上に多く存在します(このサイトもApacheで構築されています)。ただ、Nginxで構築したいと思い、試してみましたのでよかったら参考にしてください。

環境

  • OS: Ubuntu 24.04
  • Webサーバ: Nginx 1.24.0
  • PHP: PHP 8.3.6
  • DBサーバ: MariaDB 10.11.8
  • WordPress: 6.7.1

手順

準備

 準備としてApacheがインストールされている場合アンインストールします。

Bash
sudo apt remove apache2 -y
sudo apt purge apache2 -y

 上記のコマンドを実行し、準備は完了です。

Nginxのインストールと設定

 さて、今回の主役となるNginxをインストールします。

Bash
sudo apt install nginx -y

 上記のコマンドを実行し、インストールは完了です。ブラウザからサーバーへアクセスし以下のような画面になることを確認してください。

 次にNginxの設定を行います。今回は何となくファイルを分けてみます。

Bash
sudo vim /etc/nginx/conf.d/upload_size.conf

 上記のコマンドでファイルを開きます。テキストエディターは好きなものをお使いください。(本記事ではVimを使用します。)

/etc/nginx/conf.d/upload_size.conf
server {
    client_max_body_size 32M;
}

 上記の内容を追加して保存します。

設定ファイルに問題がないか以下のコマンドで確認してください。

Bash
sudo nginx -t

問題なければ
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
のようになると思います。

 下記のコマンドでNginxを再読み込みします。

Bash
sudo nginx -s reload

Nginxはデフォルトだと1MBまでのデータしか受け付けないため、テーマやプラグインなどがアップロードできない可能性があります。そのため”client_max_body_size 32M;”を追加し32MBまでアップロードできるようにしています。必要に応じて変更してください。

PHPのインストールと設定

 WordPressを動かすのに必要なPHPをインストールします。

Bash
sudo apt install php -y

バージョンを確認:

Bash
php -v

 バージョンが8.3.xであることを確認してください。(Ubuntu24.04はデフォルトで8.3がインストールされるはずです。)

Bash
sudo apt install php-fpm php-mbstring php-mysql php-curl php-dom php-imagick php-xml php-zip -y

 WordPressに必要なモジュールや推奨のモジュールを上記のコマンドでインストールします。

 次に設定を行います。

Bash
sudo vim /etc/php/8.3/fpm/php.ini

ファイルを開き下記の項目を探し、書き換えてください。このファイルは2000行ほどあり、項目を探すのは少々大変です。

/etc/php/8.3/fpm/php.ini
memory_limit = 256M #約445行目
post_max_size = 32M #約713行目
upload_max_filesize = 32M #約865行目

 これが完了したらNginxの設定ファイルをもう一度開きます。

Bash
sudo vim /etc/nginx/sites-available/default
vim /etc/nginx/sites-available/default
server {
        listen 80 default_server;
        listen [::]:80 default_server;
        # SSL configuration
        #
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server;
        #
        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
        # Read up on ssl_ciphers to ensure a secure configuration.
        # See: https://bugs.debian.org/765782
        #
        # Self signed certs generated by the ssl-cert package
        # Don't use them in a production server!
        #
        # include snippets/snakeoil.conf;

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;

                # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #       deny all;
        #}
}

 上記のように変更してください。

変更点:
index.phpを上記の23行目に追加(実際のファイルの行数とは異なります。)
location ~ .php$…のコメントアウトを外し上記のように変更。

問題ないか確認してリロード

Bash
sudo nginx -t
sudo nginx -s reload

MariaDBのインストールと設定

 今回はデータベースサーバにMariaDBを使用します。

Bash
sudo apt install mariadb-server -y

 MariaDBをインストールしたら初期設定を行います。

Bash
sudo mysql_secure_installation

 上記のコマンド実行し、メッセージにそって設定します。初期パスワードはないのでそのままEnterをおしてください。そのあとは基本”y”で問題ないと思います。完了したら下記のコマンドを実行してください。

Bash
sudo mysql -u root -p

 先ほど設定したパスワードを入力し、ログインします。以下のSQLを実行しますが、太字の部分は適宜変更してください。

SQL
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE wp CHARACTER SET UTF8 COLLATE UTF8_BIN;
GRANT ALL PRIVILEGES ON wp .* TO 'user'@'localhost';
quit;

 上記のSQLを実行し、ユーザー、データベースを作成しユーザに権限を付与します。以上でデータベースの設定は終了です。

WordPressのインストールと設定

Bash
cd /var/www/html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz
sudo chown -R www-data:www-data /var/www/html/wordpress -R

 上記のコマンドを実行しWordPressをダウンロード、解凍、権限付与を行います。

 ここまで終わったら、サーバーにアクセスします。「サーバーのアドレス/wordpress」にアクセスします。言語選択画面になるので日本語を選択して「次へ」

「さあ、始めましょう!」をクリック。

 データベースの情報を入力して「送信」を押します。(データベースの情報は記事通りにすれば以下のようになります。)

そのあとはページに従いサイトのタイトルとユーザー、パスワードを設定してWordPressのインストールは完了です!

おわりに

 お疲れ様でした。ここまで書いておいてなんですがApacheのほうが楽ですね…
 最後まで読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました