Wampserver(WAMP)つかってみた

らら
らら

はじめに

今まで、XAMPPを使ってたんですが・・昨今、PHPバージョンアップ対応ごとに・・

XAMPPのPHPフォルダーを差し替えてたり・・してたのですが・・・面倒になったので・・

WAMPがver3からコンパネから切り替えられるそうなので・・インスコしてみた。

あと。MANPもできるようだけど・・PRO版有償だったので・・こっちで・・

1点、XAMPPまわりのメール送信系はないみたいなので・・XAMPでメール系だけ動かして・・・かsendmailだけ拝借?・・

あと、Wampserverでperlのこと書いてなかったけど・・・たぶんCGIモードでいけるでしょ・・って感じで・・

今回の目的は、1つで、Wordpress, Movable Typeを動かしたい!ってこと・・

CMS・・

うちも・・

Movable Type 3,4,5系から、Wordpressへ移行して・・現在は、クラウドSaas系Movable Typeに戻ったりと・・

あいまあいまで・・PowerCMSとか・・で・・

過去のWordpressを動かしたり・・面倒・・・

Wampserverをインストール!

作業前に・・

C:/Windows/system32/drivers/etc/hostsを事前にバックアップとっておいてください。消える場合があります。

下記からwampserver3.3.7_x64.exeを落として・・・

https://www.wampserver.com/en/

実行すると。。

Wampserver(WAMP)つかってみた Wampserver(WAMP)つかってみた

ありゃ・・Visual C++ ライブラリいれろ・・って・・しかも・・おおい・・・

Wampserver(WAMP)つかってみた

下記を読むと・・

https://wampserver.aviatechno.net/

Wampserver(WAMP)つかってみた

どうも上のVisualCppRedist AIO All Releases ってのが一括でやってくれそう・・

なんか、32bit版64bit版とかいろいろいるみたいで・・

Wampserver(WAMP)つかってみた

下記をダウンロードして たぶんこいつが32bit,64bitって両方ぽい・・

VisualCppRedist_AIO_x86_x64.exe

実行すると・・勝手にすべてインストールが始まる・・・

Visual C++で現在実行されているアプリがあると、無視してインストールするか都度聞かれる・・

自分は無視してインストールを選んだ・・・

インストール後、再起動要望で・・

Wampserver(WAMP)つかってみた

で再度wampserver3.3.7_x64.exe

おいらは、CはSSDで容量ないのでDドライブにインストール

Wampserver(WAMP)つかってみた

下記がでた・・いまedgeだけど・・別のブラウザーにする?みたいな・・

いいえで・・・

Wampserver(WAMP)つかってみた

今度は・・エディタがメモ帳だけど・・変えるみたいな・・のがでて・・

おいらは変えた。ファイル選択で自分のエディタの実行ファイルを選択した。

Wampserver(WAMP)つかってみた Wampserver(WAMP)つかってみた

マウス右と左クリックでメニューあるみたいね。

おわり・・

Wampserver(WAMP)つかってみた

インストール後、wampserverを一度起動しておきましょう! 以下のインストール時エラーになる場合があります。

入れたのがPHP 7.4.33/8.0.30/8.1.31/8.2.26/8.3.14/8.4.0だけだったので。php5も入れておくことに・・

下記から

https://wampserver.aviatechno.net/

PHP 5.6.40 64 bit x64 MD5 をダウンロード!

wampserver3_x64_addon_php5.6.40.exe

Wampserver(WAMP)つかってみた

インストール開始。。

Wampserver(WAMP)つかってみた Wampserver(WAMP)つかってみた Wampserver(WAMP)つかってみた Wampserver(WAMP)つかってみた

完了・・

下記に入ったみたい・・・

D:\wamp64\bin\php のディレクトリ


<DIR>          php5.6.40
<DIR>          php7.4.33
<DIR>          php8.0.30
<DIR>          php8.1.31
<DIR>          php8.2.26
<DIR>          php8.3.14
<DIR>          php8.4.0

ディスクトップのアイコンから起動・・

やぼったい・・・画面。。

Wampserver(WAMP)つかってみた

PHPバージョンみるといるポイ

トレイのアイコン、左クリックで

Wampserver(WAMP)つかってみた

localhostでブラウザーアクセス

見えてる。。

Wampserver(WAMP)つかってみた

見えない場合は。windows hostsでlocalhostが127.0.0.1で登録されているか確認

MySQL

phpmyadminは、初期はroot,パスワード空白なので・・SQLのアカウントを作りましょう・・

http://localhost/phpmyadmin/

PHPのバージョンが7.3より低い場合、PerlのDBIを使用する場合、設定しないとそのままMySQL 9が使用できません。(旧バージョンからの移行時)

バージョン9より、本格的にmysql_native_passwordが禁止されています。

バージョンよりパスワード暗号化がcaching_sha2_passwordが導入され。バージョンによってデフォルトでsha2で設定されている場合があります。

MySQL 5系のシステムをバージョンを上げるのは、現在のところ、MySQL 8.0系を使用するのがベスト

Myisamでutf8mb4を利用する場合

既存でインデックスキー varchar(255)などと行っている場合、Myisamのインデックスキーの領域が1000byteで固定なので考慮が必要

utf8(utf8mb3)は1文字で3バイト使用される varchar(255)の場合255*3 765バイト

utf8mb4は1文字で4バイト使用される varchar(255)の場合255*4 1020バイト で使用できなくなる・・

インデックスキーの領域を増やすには再コンパイルが必要

ここでの注意は、Mysqlは、varchar(文字数) 文字数なので、バイト数で換算すると上記になります。

その他、記憶領域、検索スピードなど・・影響がでます。。

https://wampserver.aviatechno.net/

Wampserver(WAMP)つかってみた

wampserverサイトから、下記バージョンをインストールするとバージョンの切り替えができます。

wampserver3_x64_addon_mysql8.0.40.exe

パスワード暗号のバージョン5用対応

PHPのバージョンが7.3より低い場合、PerlのDBIを使用する場合です

bin\mysql\mysql8.0.40\my.iniで下記をバージョンによって設定します。

バージョン8


[mysqld]
default_authentication_plugin=mysql_native_password

バージョン8.4


[mysqld]
mysql_native_password=on
上記設定後、WAMPを再起動します。

SQLコマンドでプラグイン確認


show plugins;

SQLコマンドで文字コード確認


show variables like '%char%';

MySQL5.7はutf8、MySQL8.0はutf8mb3が設定されています。

ストレージエンジンのデフォルト確認InnoDB MyISAM


SHOW ENGINES;

WAMPは、Mysqlのバージョンの切り替えもできるので便利です。

Wampserver(WAMP)つかってみた

Movable Typeの設定

MySQL8系では、utf8mb3は非推奨で、utf8mb3の場合utf8を使ってくださいとなっているようで・・

utf8mb4 はutf8mb4で記載してくださいとなっている・・・

utf8(utf8mb3)とutf8mb4の違いは・・

utf8(utf8mb3)は3バイト、utf8mb4は4バイト使用され、保存領域など+1バイト増加します。その分、一部非常用漢字、スマフォ用の絵文字が使用できるようになります。

日本語だけなら、2バイトでShift_JIS-2004とかも・・

注意)Movable Typeは、動作検証用、開発者ライセンス、無料トライアルを前提です・・それ以外は。ライセンス購入が必要です。

Movable Type の公式では、現在のところutf8でutf8_general_ciの指定になっています。MySQLは5.7.x を推奨 / 8.0.x まで検証済み

Movable Type 8の動作環境

https://www.movabletype.jp/documentation/mt8/start-guide/about-movable-type/system-requirements/

Movable Type 8のMySQL設定

https://www.movabletype.jp/documentation/mt8/installation/database/mysql/

MySQL5


[mysqld]
default-character-set=utf8
[mysql]
default-character-set=utf8

データベース作成時のモード

utf8_general_ci

MySQL8.4.3 or 5.5以上

微妙に・・character-set-serverとか


[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8

データベース作成時のモード

utf8mb3_general_ci

utf8mb4設定時のエラー


failed to execute statement CREATE INDEX mt_category_meta_type_vchar ON mt_category_meta (category_meta_type,category_meta_vchar_idx): 
Specified key was too long; max key length is 1000 bytes at lib/MT/Upgrade.pm line 866.

Movable Typeをutf8mb4でインストールしたい。絵文字つかいたい。。

MySQL 5.5以上、 Movable Type 7 r.5001 / 6.8.1 以上

MySQL 8.0.24 以上であれば、MySQL 5.7.9 以下で必要な、InnoDB設定はいらない・・

WAMPでは、wampserver3_x64_addon_mysql5.7.44.exeであれば、設定は下記で問題ありません。

bin\mysql\mysql8.0.40\my.iniをいじる。

MySQL 5系 utf8mb4+InnoDB化で必要設定

8系では、下記設定はデフォルト設定です


innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=true

データベースを下記で作成

utf8mb4_0900_as_ciとか、検索挙動とか変わるので・・


utf8mb4_general_ci

データベースエンジンをInnoDBにすることで、インデックスのエラーがでない。

Movable Typeでは、テーブル作成時に指定できないので、デフォルトをInnoDBにする


default_storage_engine=MYISAM
;default_storage_engine=InnoDB
↓
;default_storage_engine=MYISAM
default_storage_engine=InnoDB

Charset utf8mb4に変更する

要件的にMySQL 8.0.24 以上なので


[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4

以上で、Movable Typeをインストールする。

root以外をphpmyadminのSQLコマンド作る場合。

MySQL 8以上のアカウント作成


CREATE USER  'ユーザーid'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード';
GRANT ALL PRIVILEGES ON * . * TO 'ユーザーid'@'localhost';
FLUSH PRIVILEGES;

MySQL 5のアカウント作成


CREATE USER 'ユーザーid'@'localhost' IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON * . * TO 'ユーザーid'@'localhost';
FLUSH PRIVILEGES;

上記設定ができていないと下記のエラーがでます。

MySQLも、オラクルに買収されて、有償とかでごたごたして・・・なんか、オプション回りぐだぐたね・・・

まぁ、オラクルって信頼は高いよね。。


詳細Connection error: Authentication plugin 'caching_sha2_password' cannot be loaded:
 lib/MT/App/Wizard.pm line 646. at lib/MT/App/Wizard.pm line 646. at lib/MT/App/Wizard.pm line 646.

移転元からバックアップ

移転元がphpmyadminない場合。。SSHで下記コマンド・・

--hex-blobは、パスなど置換する場合、バイナリ形式だと置換できない場合があるので・・・


mysqldump -u ユーザ名 -p --hex-blob データベース名 > xxxx.sql

インポート

phpmyadminでは、ファイルが大きすぎて・・できない場合

DOS窓で下記へ移動して

X:\wamp64\bin\mysql\mysql8.0.40\bin

下記を実行


mysql -u ユーザ名 -p データベース名 <   D:\xxxxx.sql

WordPress

MySQL 5.5以上、WordPress4.2以上から utf8mb4使用可能

my.iniは上記参照

データベースは下記で


utf8mb4_unicode_ci

xxxx_general_ci:アルファベットの大文字小文字は区別しない。それ以外は全て区別する

xxxx_unicode_ci:アルファベットの大文字小文字/全角半角(ひらがなの大文字・小文字とカタカナの大文字・小文字)を区別しない。

Perlは?

D:\wamp64\wwwまたは、仮想サイトに

htaccessファイル作って・・おく・・

直接 httpd.confさわってもOK

.htaccess


Options +ExecCGI
AddHandler cgi-script .cgi

筆者の場合、Active Perl時は、Dにインストールした場合は、D:\usrにインストール

C:にインストールした場合は、C:\usrにPerlをインストールしていました。

2024時点では、ppmでDBD-mysqlなどインストールできません。Cpanで行う場合もmysqlの開発環境が必要で・・面倒なので・・

Strawberry Perlを利用します。Strawberry Perlであれば、事前に、DBD-mysqlが含まれます。ただし、バージョンによって、同梱されないものもあるので

リリースノートからMySQL: DBD::mysql - works out of boxがあることを確認

Strawberry Perlインストール版パッケージ内容

Mysql PostgreSQL MS SQL Oracle
5.38.2.2 × ×
5.38.0.1 ×
5.36.3.1 × ×
5.36.1.1 ×
5.32.1.1
5.30.3.1
5.28.2.1
5.26.3.1
5.24.4.1
5.22.3.1
5.20.3.3

Strawberry Perl 5.38.0.1でDBD::mysql ver 4.050

Strawberry Perlだと、インストーラでは、/usr/bin/perlにはインストールできないので・・

下記で対応

d:\usr\bin\perlと同等になります。


mklink/j D:\usr D:\Strawberry\perl

Active Perlでppmコマンドのある人は、下記から・・ダウンロードして

WindowsDBD-mysql ver4.005版 WindowsDBD-mysql ver4.011版 WindowsDBD-mysql ver4.023版

MySQL 5.7以上を使用する場合  ver4.009以上使用する必要があります。

解凍して、下記で・・


ppm install DBD-mysql.ppd

Active Perlでppmでは、http://theoryx5.uwinnipeg.caはないようなので・・・

下記はまだ、存在していますが、https化されいないので・・

Active Perl 5.22まで対応されています。

https://bribes.org/perl/ppmdir.html

#!/usr/bin/env perlの場合・・・

下記をコピーして

d:\usr\bin\perl.exe

下記を複製して使ってます。。

d:\usr\bin\env perl.exe

xamppでも、xampp内のperlを使用せずに、上記で行けるはずです。

とりあえず・・perlも動いた!!

Wampserver(WAMP)つかってみた

どの言語でもあるある・・


#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello";

PPM は ActivePerl 5.28から削除され,Perl 5.32から別の方法になりましたが・・・現在

あとphpとかのメールはlocalhostとかにしておいて・・

xamppのメールサーバー使うとかかな・・

関連

サーバー移転で、Perlがエラー
https://www.omakase.net/blog/2024/05/perlerror.html

Apache Virtual Hostsの設定画面とか。

トレイから左メニューのyour VirtualHosts→VirtualHosts managerを選択

Wampserver(WAMP)つかってみた

下記みたいに入れてみました。

phpのバージョンが選択できるので便利

Wampserver(WAMP)つかってみた

上記で設定したところ・・

事前に d:/wamp64/sites/test.xxxx.xxx.co.jpとかディレクトリを作成しておく必要があるようです。

あと、C:/Windows/system32/drivers/etc/hostsに自動で登録したドメインが登録されますので、既存にあるドメインなどはhostsで変更されて、既存のサイトが見れなくなるので注意が必要です。

ローカルなのか、実際のサイトなのか、自身で管理しておく必要があります。

あと、wampserverを停止しても、hostsはそのままなので、既存サイトドメインを利用する場合。手動でhostsを修正する必要があります

Wampserver(WAMP)つかってみた

トレイのアイコンは

トレイのアイコン右クリックTOOLのDNS restartでDNS反映できます。

右クリック、左クリック、ダブルクリックで各メニューができます。

ダブルクリックでTray Menu Managerが起動します。

Tray Menu Manager

SSL

self signed(自己署名証明書)とLet's Encryptがある・・・・・

なるほど。。ローカルのみの公開なので・・DNSチャレンジぐらいかな。。

Wampserver(WAMP)つかってみた

SSLモジュールはここからクリックでいける・・便利・・

Wampserver(WAMP)つかってみた

自己署名証明書 Self-Signed Certificate

下記をチェックすることで自動で自己署名証明書が作成されます。便利・・

ただ、オレオレなので・・・エラーはでますが接続できます・・

Wampserver(WAMP)つかってみた

Wampserver ready to support httpsにチェックをいれると、Enable HTTPS for localhostもでます。

Wampserver(WAMP)つかってみた

チェックすると下記のように・・

Wampserver(WAMP)つかってみた

もし、「HSTSが使用されているため、現在アクセスできません」とエラーが出る場合は、ご使用のブラウザーのキャッシュをクリアして再度接続します。

下記、xxx.xxxx.xxx に進む (安全ではありません)をクリックします。


接続がプライベートではありません
攻撃者が、xxx.xxxx.xxx から個人情報 (パスワード、メッセージ、クレジットカードなど) を盗み取ろうとしている可能性があります。この警告に関する詳細情報
net::ERR_CERT_AUTHORITY_INVALID
このサーバーは xxx.xxxx.xxx であることを証明できませんでした。セキュリティ証明書は、コンピューターのオペレーティング システムから信頼されていません。構成に誤りがあるか、接続が攻撃者によって妨害されている可能性があります。
xxx.xxxx.xxx に進む (安全ではありません)

sendmail

XAMPPでも使ってる・・・

http://www.glob.com.au/sendmail/

Movable Type クラウド版を・・・・

移転する前に事前に・・確認する場合・・Movable Type Premiumはライセンス系できついかも・・

Movable Typeクラウド版ではコマンドラインをたたくことができず、Movable Type 管理画面からもSQLのダンプダウンロードとかがありません。

Movable Type クラウド版をFTPでアクセスしてbackupフォルダー内にアクセスするとzipファイルがあるのでダウンロードする。

解凍後、下記あたりのデータを抽出します。


backup
static
themes

解凍したbackup内にmysql.dumpがあるのでこのファイルを加工

この辺りはWordpressとかも同じでドメインとサーバの絶対パスを置き換えます。

ファイル内のドメインを検索・置換


https://xxxxxx/ or http://xxxxxx/

ファイルパスを検索・置換


/data/file/static/

上記あたりを、移転する、ドメイン、パスに置き換える・・・

書き換え後、phpmyadminでインポートする・・

秀丸エディタなら・・

ダミーファイル
[dir]backup
   mysql.dump

ダミーファイルを開いて、メニューの検索→grepして置換を選択

検索するファルダ―を下記


xxxx\backup

置換するドメインや、ファイルパスを繰り返す感じ・・で

この方法ならば、文字コードとか気にしなくても・・置換してくれるはず。。

関連

XAMPPを使おう!
https://www.omakase.net/blog/2021/12/xampp.html

Movable Type

Perlで大きく変更されたバージョン

Perl 5.14,Perl 5.26, Perl 5.30

Movable Type/MySQL 6.8以下 6.8.1以上 Movable Typeはxxxxxxxはgeneral推奨
5.5.2以下 utf8 utf8/utf8mb4 utf8_xxxxxxx_ci
5.5.3以上 utf8/utf8mb3 utf8/utf8mb3/utf8mb4(InnoDB) utf8_xxxxxxx_ci/utf8mb3_xxxxxxx_ci/utf8mb4_xxxxxxx_ci 注:InnoDB設定必要
8.0.23 以下 utf8/utf8mb3 utf8/utf8mb3/utf8mb4(InnoDB) utf8_xxxxxxx_ci/utf8mb3_xxxxxxx_ci/utf8mb4_xxxxxxx_ci
8.0.24 以上 utf8/utf8mb3 utf8/utf8mb3/utf8mb4(InnoDB) utf8_xxxxxxx_ci/utf8mb3_xxxxxxx_ci/utf8mb4_xxxxxxx_ci
Movable Type バージョン Perlバージョン
5 5.8.1以上
6 5.8.1以上(5.28.x を推奨 / Perl 5.30 まで検証済み)
7 5.16.3 以上(5.32 を推奨 / 5.36.1 まで検証済み)
8 5.16.3 以上(5.32 を推奨 / 5.40 まで検証済み)

Movable Type6.2.4からPerl5.26に対応

WordPress

WordPress/MySQL 4.1以下 4.2以上(5からmysql8対応) WordPressはxxxxxxxはunicodeにバージョンアップで変更される
5.5.2以下 utf8 utf8/utf8mb4 utf8_xxxxxxx_ci
5.5.3以上 utf8/utf8mb3 utf8/utf8mb3/utf8mb4 utf8_xxxxxxx_ci/utf8mb3_xxxxxxx_ci/utf8mb4_xxxxxxx_ci
8.0.23 以下 utf8/utf8mb3 utf8/utf8mb3/utf8mb4 utf8_xxxxxxx_ci/utf8mb3_xxxxxxx_ci/utf8mb4_xxxxxxx_ci
8.0.24 以上 utf8/utf8mb3 utf8/utf8mb3/utf8mb4 utf8_xxxxxxx_ci/utf8mb3_xxxxxxx_ci/utf8mb4_xxxxxxx_ci

PHPは、問題バージョン多すぎて・・・

WordPress バージョン PHPバージョン
WordPress 4.1 PHP 5.6
WordPress 4.4 PHP 7.0
WordPress 4.7 PHP 7.1
WordPress 4.9 PHP 7.2
WordPress 5.0 PHP 7.3
WordPress 5.2 PHP 5.2、5.3、5.4、5.5をサポート廃止
WordPress 5.3 PHP 7.4
WordPress 5.6 PHP 8.0
WordPress 5.9 PHP 8.1
WordPress 6.1 PHP 8.2

各バージョン対応(自分用)

ディストリビューション httpd mysql php perl ruby python Wordpress Movable Type
2010 CentOS 5.5 httpd-2.2.3-43 mysql-5.0.77-4 php-5.1.6-27 perl-5.8.8-27 ruby-1.8.5-5 python-2.4.3 3 5
2011 CentOS 5.6 httpd-2.2.3-45 mysql-5.0.77-4 php53-5.3.3-1 perl-5.8.8-32 ruby-1.8.5-5 python-2.4.3-43 3.1 5
2011 CentOS 6 httpd-2.2.15-5 mysql-5.1.47-4 php-5.3.2-6 perl-5.10.1-115 ruby-1.8.7.299-4 python-2.6.5-3 3.1 5
2014 CentOS 7 httpd-2.4.6-17 mariadb-5.5.35 php-5.4.16-21 perl-5.16.3-283 ruby-2.0.0.353-20 python-2.7.5-16 4 6
2019 CentOS 8 httpd-2.4.37-11 mysql-8.0.13-1 php-7.2.11-1 perl-5.24.4-398 ruby-2.5.3-104 python2-2.7.15-22
python3-2.10.9-10
5.1 7
2021 CentOS 8.5 httpd-2.4.37-41 mysql-8.0.26-1 php-7.2.24-1 perl-5.24.4-404 ruby-2.5.9-107 python2-2.7.18-7
python3-2.10.9-21
5.7 7
2022 AlmaLinux 9 httpd-2.4.62-1 mysql-8.0.36-1 php-8.0.30-1 perl-5.32.1-481 ruby-3.0.7-162 python3.11-3.11
python3.12-3.12
5.9 7
2024 AlmaLinux 9.5 httpd-2.4.62-1 mysql-8.0.36-1 php-8.0.30-1
php-8.1.27-1
php-8.2.13-1
perl-5.32.1-481 ruby-3.0.7-162
ruby-3.1.5-144
ruby-3.1.5-145
ruby-3.1.5-145
ruby-3.3.5-3
python3.11-3.11.9-7
python3.12-3.12.5-2
6.5 8

さいごに

今まで、XAMPP+Active Perlでやってたけど・・今回・・いろいろ自分の環境で・・テストしてたら。。自分の現在のXAMPP環境消しちゃって・・

現在・・ppmとか・・・サイト自体なくなってて・・DBD::mysqlがインスコ面倒になったので・・バックアップのppmもver4までしか持ってなくて・・

このまま、WAMP+Strawberry Perlでやることに・・・っていうかこんなに便利になっているとは・・・

まぁ。最近のActivePerlは、ログインして、構築みたいな感じになって・・面倒だし、昔と逆転した感じですね。

今後は、インストール版じゃなくて、Saas系CMS Movable Type .net、Wix、Studioなんでしょうね・・・

EC-CUBE系もShopify、STORES、MakeShop・・・

WordPressは、テーマ、プラグインのバージョンアップ面倒だし、プラグインの脆弱性多いし・・PHPも絡んでくると・・・

Movable Typeも クラウド型でコンテンツタイプ使えれば、簡易なDBぐらい構築できちゃうので・・バックエンドでシステム言語で動かすことなくなったし・・

Movable Type + RESTでjs書いちゃえば・・・

関連記事