ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
前提・構成
| 項目 | バージョン例 |
|---|---|
| OS | Ubuntu 22.04 LTS / 24.04 LTS |
| Web サーバ | Apache 2.4 |
| DB | MySQL 8.0(または MariaDB 10.x) |
| PHP | PHP 8.2 / 8.3 |
| WordPress | 6.x(最新版) |
| SSL | Let'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. ブラウザでインストール完了
- http://example.com/ または http://<サーバ IP>/
- 言語選択 → 「日本語」
- サイトのタイトル / 管理者ユーザ名 / パスワード / メール入力
- 「WordPress をインストール」クリック
- ログイン → ダッシュボード
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 再確認 |
| パーマリンクで 404 | mod_rewrite 無効 / AllowOverride None | a2enmod 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 の方が密集できます。
📸 参考画像
※ 旧バージョンから引き継いだ参考画像です。手順・図解の補助としてご覧ください。

ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- インストール方法(Ubuntu + Apache)
- Wordpressのインストール方法
- ローカル環境への導入方法
- PHPの使用方法
- DB設定
- DB接続方法
- index.phpをURLに含めないようにする方法
- コメントに絵文字を入力可能にする方法
- サイト(ドメイン)の引越し方法
- 独自の関数一覧
- エラー一覧
- Wordpressの一連の処理の流れ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?