WordPress構築作業の備忘録


構築環境

  • Win10-32bit版 Diginnos-StickPC-HDD32GB
  • Apache2.4
  • PHP8
  • MariaDB10.5
  • WordPress5.6

Apache2.4のインストール

公式ページから入手
インストール手順は、こちらのサイトを参考に作業

任意パスに配置

仮にインストールパスを以下に設定
c:/Apache24

httpd.conf の内容を設定

c:/Apache24/conf/httpd.conf

ルートパスを指定

Define SRVROOT "c:/Apache24/"
ServerRoot "${SRVROOT}"

ポート番号を指定

Listen 80

ServerName を指定

ServerName localhost:80

PHP8 のインストール

公式ページから入手
1. Downloads
2. Current Stable PHP 8.0.1 のWindows downloads
3. VS16 x86 Thread Safe の zip をダウンロード ※今回はWin-32bit版を入手

任意のパスに配置

仮にインストールパスを以下に設定
c:/php8

PHP.ini の設定を行う

c:/php8/に存在するphp.ini-developmentをコピーして、php.iniにリネーム

extension_dir を編集する

;extension_dir = "./"
; On windows:
;extension_dir = "ext"
  ↓
extension_dir = "C:/php8/ext"
; On windows:
;extension_dir = "ext"

※2個あるけど、今回は片方だけ設定した、絶対パスと相対パスの指定らしい

他のextension を編集する

;extension=gd
;extension=mbstring
  ↓
extension=gd
extension=mbstring
  • gd ... 画像処理系のなんかを有効
  • mbstring ... マルチバイト文字列のなんかを有効

環境変数の設定でPHP8にパスを通す

  1. WindowsのエクスプローラからPCを右クリック
  2. プロパティ
  3. システムの詳細設定
  4. 環境変数
  5. システム環境変数の Path を編集
  6. c:/php8 のパスをリストに追加する

PHPにパスが通ってるかチェック

  1. Windows のスタートメニュー右のコルタナから、cmd と入力してEnterを押下し、コマンドプロンプトを起動
  2. コマンドプロンプト上で、php -version と入力してパス通過をチェック
  • 失敗時
'php' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
  • 成功時
PHP 8.0.1 (cli) (built: Jan  5 2021 23:45:55) ( ZTS Visual C++ 2019 x86 )
Copyright (c) The PHP Group
Zend Engine v4.0.1, Copyright (c) Zend Technologies

MariaDB10.5 をインストール

公式ページから入手
1. Download
2. Architecture を32bit用(x86) に変更して msi パッケージでダウンロード
3. DLした msi を実行し、インストールを行う
インストール時の手順はこちらのサイトを参考に作業

MariaDBクライアントを起動

スタートメニューからMariaDBクライアントを起動する
※コマンドプロンプトと同じ黒画面が起動する

WordPress用のデータベースを作成する

  • MariaDBクライアント上でコマンドを実行してデータベースの作成を行う
create database wordpressdb;

とコマンドを実行すると、wordpressdb の名称でデータベースが作成される

使用するDBをwordpressdb に切り替える

use database wordpressdb;

wordpress をインストール

日本語版公式ページから入手
1. トップのwordpressを入手ボタンから入手する

wordpressの構成を任意パスに配置

c:/Apache24/htdocs以下にblogフォルダを作成し、wordpressのファイルを配置
c:/apache24/htdocs/blog/readme.htmlの構成

wordpressのconfigファイルを編集

  1. c:/apache24/htdocs/blog/以下に存在するwp-config-sample.phpをコピーしwp-config.phpにリネームする
  2. 下記項目を設定する
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'database_name_here' );

/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'username_here' );

/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', 'password_here' );

/** MySQL のホスト名 */
define( 'DB_HOST', 'localhost' );

/** データベースのテーブルを作成する際のデータベースの文字セット */
define( 'DB_CHARSET', 'utf8' );

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define( 'DB_COLLATE', '' );
  • DB_NAME -> MariaDB で作成したデータベース名 ※今回は wordpressdb
  • DB_USER -> MariaDB のユーザー名、よくわからなかったので、とりあえず、root を指定
  • DB_PASSWORD -> MariaDB をインストールした際に設定した、パスワードを設定 **********
  • DB_HOST -> MariaDBを置いてるホスト名、localhostで良さげ、外部のDBを使う場合は、URLを指定とかになると思う
  • DB_CHARSET -> MariaDB の設定で使用する文字コードの設定っぽい、よくわからんけど、まぁ良い

認証キーを設定する

phpファイル内に、自動生成のURLが記載されてるので、それを利用して作成したものを、張り付ける

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' );

WordPressの install スクリプトで、DBなど構成要素を作成する

Chrome等のブラウザで、 localhost:80/blog/wp-admin/install.phpにアクセスして、
ワードプレスの作成画面を起動しようと思ったら、以下のエラーが出て悩む

Fatal error: Uncaught Error: Call to undefined function mysql_connect()

php.iniの設定が不足していたので追加する

c:/php8/php.ini

;extension=mysqli
  ↓
extension=mysqli
  • mysqli ... wordpressのDBでMySQL(MariaDB)を使うので有効

Apacheの設定も不足していたので追加する

c:/apache24/conf/httpd.confに設定追加

LoadModule php_module "C:/php8/php8apache2_4.dll"
PHPIniDir "C:/php8"
AddHandler application/x-httpd-php .php

再度アクセスしてみるが症状が変わらない

Fatal error: Uncaught Error: Call to undefined function mysql_connect()
  • php.ini と httpd.conf を更新したのに、apache のサービスを再起動してなかった

  • apache サービスを再起動して、再度アクセスすると無事インストールスクリプトが起動して、インストールが完了

トラブルシューティング

公開用URLにアクセスしても、ディレクトリ構成がブラウザに表示されてしまう

  • 原因: apache の設定が不足していた apache の httpd.conf の設定に以下の項目があるので設定が必要

index.htmlの他に、index.php も呼び出せるようにしておく必要があったみたい

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
  ↓
<IfModule dir_module>
    DirectoryIndex index.html
    DirectoryIndex index.php
</IfModule>

設定して、apache サービスを再起動して、アクセスすると、トップページが表示された。
(2021/01/11 追記)

WordPressのテーマやプラグインのインストールに失敗する

  • 原因: PHP.ini の設定が不足していたので、下記の設定を追加
extension=php_curl.dll
extension=php_openssl.dll

(2021/01/24 追記)

プライベートネットワーク上にある別マシンからWordPressにアクセスすると上手く接続できない

  • 原因: WordPressのサイトアドレスの設定にlocalhostが含まれる形になっていたのが問題
    別PCでアクセスすると、localhost のせいで、自身のマシン上にアクセスしようとしておかしくなってた。

(2021/01/24 追記)