この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:15
ページ更新者:atom
更新日時:2026-06-11 07:29:05

タイトル: インストール方法(Ubuntu + Apache)
SEOタイトル: Ubuntu + Apache に WordPress インストール完全ガイド|MySQL/PHP/SSL まで

この記事の要点
  • 構成: Ubuntu 22.04 / 24.04 + Apache 2.4 + MySQL 8 + PHP 8.x(LAMP)
  • apt install でミドルウェア一式 → MySQL root 設定DB 作成 → WP 展開 → wp-config.php
  • Apache のVirtualHost 設定、mod_rewrite 有効化 (a2enmod rewrite)
  • Let's Encrypt (certbot) で SSL 化、永続パーマリンク対応
  • 管理は phpMyAdmin + Linux 標準コマンド。本番運用はセキュリティ硬化が必須

前提・構成

項目バージョン例
OSUbuntu 22.04 LTS / 24.04 LTS
Web サーバApache 2.4
DBMySQL 8.0(または MariaDB 10.x)
PHPPHP 8.2 / 8.3
WordPress6.x(最新版)
SSLLet's Encrypt + certbot

1. パッケージ一括インストール

# システム更新
sudo apt update && sudo apt -y upgrade

# Apache + MySQL + PHP + 必要モジュール
sudo apt -y install \
    apache2 \
    mysql-server \
    php php-mysql php-curl php-gd php-mbstring php-xml php-zip php-imagick php-intl \
    libapache2-mod-php \
    unzip wget

# Apache 自動起動
sudo systemctl enable --now apache2

# 動作確認
curl -I http://localhost
# HTTP/1.1 200 OK

2. MySQL 初期設定

# セキュリティ初期化(root パスワード、anonymous 削除等)
sudo mysql_secure_installation

# 質問の例:
#   VALIDATE PASSWORD COMPONENT? → N(テスト環境)/ Y(本番)
#   root password         → 強いパスワード
#   Remove anonymous users? → Y
#   Disallow root login remotely? → Y
#   Remove test database? → Y
#   Reload privilege tables? → Y

3. WordPress 用データベースとユーザ作成

-- mysql にログイン
-- sudo mysql -u root -p

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'Strong@Password123';

GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';

FLUSH PRIVILEGES;
EXIT;

4. WordPress 本体のダウンロードと配置

cd /tmp
wget https://ja.wordpress.org/latest-ja.tar.gz

tar -xzf latest-ja.tar.gz

# /var/www/html/wordpress に配置
sudo mv wordpress /var/www/html/

# 所有者を Apache 実行ユーザ (www-data) に
sudo chown -R www-data:www-data /var/www/html/wordpress

# 権限調整
sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;

5. wp-config.php の作成

cd /var/www/html/wordpress
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
// wp-config.php 主要箇所
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'Strong@Password123' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );

// セキュリティキー: https://api.wordpress.org/secret-key/1.1/salt/ で生成して貼付
define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
// ... 全 8 個

// テーブル接頭辞(推測しにくい値推奨)
$table_prefix = 'wp_';

// 本番では false
define('WP_DEBUG', false);

6. Apache の VirtualHost 設定

sudo nano /etc/apache2/sites-available/wordpress.conf
<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/html/wordpress

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

    ErrorLog ${APACHE_LOG_DIR}/wordpress_error.log
    CustomLog ${APACHE_LOG_DIR}/wordpress_access.log combined
</VirtualHost>
# サイト有効化
sudo a2ensite wordpress.conf
sudo a2dissite 000-default.conf

# mod_rewrite を有効化(パーマリンクに必須)
sudo a2enmod rewrite

# 設定テスト
sudo apache2ctl configtest
# Syntax OK

# 再起動
sudo systemctl reload apache2

7. ブラウザでインストール完了

  1. http://example.com/ または http://<サーバ IP>/
  2. 言語選択 → 「日本語」
  3. サイトのタイトル / 管理者ユーザ名 / パスワード / メール入力
  4. WordPress をインストール」クリック
  5. ログイン → ダッシュボード

8. パーマリンク設定

「設定 → パーマリンク」で投稿名などを選ぶ。Apache .htaccess が動作するには AllowOverride All + mod_rewrite が必須:

# /var/www/html/wordpress/.htaccess (WordPress が生成)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

9. SSL 化(Let's Encrypt)

# certbot 導入
sudo apt -y install certbot python3-certbot-apache

# 証明書取得 + Apache 設定自動更新
sudo certbot --apache -d example.com -d www.example.com

# 自動更新が cron / systemd timer に登録される
sudo systemctl status certbot.timer

# 手動更新テスト
sudo certbot renew --dry-run

WordPress 管理画面の「設定 → 一般」でWordPress アドレス / サイトアドレスhttps:// に書き換え。

10. phpMyAdmin(任意)

sudo apt -y install phpmyadmin

# Apache 連携 → スペースキーで [*] を付けて選択
# dbconfig-common での自動設定 → Yes
# 管理用パスワード設定

# /etc/apache2/conf-enabled/phpmyadmin.conf にリンク済
sudo systemctl reload apache2

# 公開リスクを減らすため URL を変更
sudo nano /etc/apache2/conf-enabled/phpmyadmin.conf
# Alias /phpmyadmin /usr/share/phpmyadmin
# ↓
# Alias /pma-secret-path /usr/share/phpmyadmin

本番セキュリティ硬化

  • UFW: sudo ufw allow OpenSSH && sudo ufw allow "Apache Full" && sudo ufw enable
  • fail2ban で wp-login.php ブルートフォース対策
  • WP プラグイン: Wordfence / SiteGuard WP Plugin
  • 自動更新: define('WP_AUTO_UPDATE_CORE', true);
  • バックアップ: mysqldump + rsync + UpdraftPlus
  • PHP の expose_php = Off 等の硬化
  • 不要なテーマ・プラグイン削除

トラブルシュート

症状原因対処
500 エラーPHP モジュール不足 / .htaccess 構文ミスtail -f /var/log/apache2/error.log
「データベース接続確立エラー」DB ユーザ / パスワード違いwp-config.php 再確認
パーマリンクで 404mod_rewrite 無効 / AllowOverride Nonea2enmod rewrite + VirtualHost 修正
画像アップロード失敗uploads 権限chown -R www-data wp-content/uploads
mixed content 警告SSL 化後の http リソース残存Better Search Replace プラグインで一括置換

FAQ

Q: nginx の方が速いと聞いた
A: 静的配信は nginx の方が軽量ですが、.htaccess が使えない分カスタマイズの手間があります。CMS 1 台運用なら Apache でも十分です。

Q: MariaDB を使ってもよい?
A: はい、apt install mariadb-server に置き換えるだけ。WordPress は MySQL/MariaDB を同列に扱います。

Q: PHP は 7 系でも動く?
A: WordPress 6.x はPHP 7.4 以上を要求。セキュリティ的にも PHP 8.2+ を推奨します。

Q: 何台ものサイトを 1 サーバで運用したい
A: VirtualHost を複数定義し、それぞれ別 DocumentRoot / 別 DB に。リソースが厳しいなら nginx + php-fpm の方が密集できます。

📸 参考画像

※ 旧バージョンから引き継いだ参考画像です。手順・図解の補助としてご覧ください。

参考画像