構築環境
- 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 のインストール
公式ページから入手
- Downloads
- Current Stable PHP 8.0.1 のWindows downloads
- 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にパスを通す
- WindowsのエクスプローラからPCを右クリック
- プロパティ
- システムの詳細設定
- 環境変数
- システム環境変数の Path を編集
-
c:/php8のパスをリストに追加する
PHPにパスが通ってるかチェック
- Windows のスタートメニュー右のコルタナから、
cmdと入力してEnterを押下し、コマンドプロンプトを起動 - コマンドプロンプト上で、
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 をインストール
公式ページから入手
- Download
- Architecture を32bit用(x86) に変更して msi パッケージでダウンロード
- DLした msi を実行し、インストールを行う
インストール時の手順はこちらのサイトを参考に作業
MariaDBクライアントを起動
スタートメニューからMariaDBクライアントを起動する
※コマンドプロンプトと同じ黒画面が起動する
WordPress用のデータベースを作成する
- MariaDBクライアント上でコマンドを実行してデータベースの作成を行う
create database wordpressdb;
とコマンドを実行すると、wordpressdb の名称でデータベースが作成される
使用するDBをwordpressdb に切り替える
use database wordpressdb;
wordpress をインストール
日本語版公式ページから入手
- トップの
wordpressを入手ボタンから入手する
wordpressの構成を任意パスに配置
c:/Apache24/htdocs以下にblogフォルダを作成し、wordpressのファイルを配置
c:/apache24/htdocs/blog/readme.htmlの構成
wordpressのconfigファイルを編集
-
c:/apache24/htdocs/blog/以下に存在するwp-config-sample.phpをコピーしwp-config.phpにリネームする - 下記項目を設定する
// ** 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 追記)