はじめに
今まで、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/
実行すると。。
ありゃ・・Visual C++ ライブラリいれろ・・って・・しかも・・おおい・・・
下記を読むと・・
https://wampserver.aviatechno.net/
どうも上のVisualCppRedist AIO All Releases ってのが一括でやってくれそう・・
なんか、32bit版64bit版とかいろいろいるみたいで・・
下記をダウンロードして たぶんこいつが32bit,64bitって両方ぽい・・
VisualCppRedist_AIO_x86_x64.exe
実行すると・・勝手にすべてインストールが始まる・・・
Visual C++で現在実行されているアプリがあると、無視してインストールするか都度聞かれる・・
自分は無視してインストールを選んだ・・・
インストール後、再起動要望で・・
で再度wampserver3.3.7_x64.exe
おいらは、CはSSDで容量ないのでDドライブにインストール
下記がでた・・いまedgeだけど・・別のブラウザーにする?みたいな・・
いいえで・・・
今度は・・エディタがメモ帳だけど・・変えるみたいな・・のがでて・・
おいらは変えた。ファイル選択で自分のエディタの実行ファイルを選択した。
マウス右と左クリックでメニューあるみたいね。
おわり・・
インストール後、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
インストール開始。。
完了・・
下記に入ったみたい・・・
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
ディスクトップのアイコンから起動・・
やぼったい・・・画面。。
PHPバージョンみるといるポイ
トレイのアイコン、左クリックで
localhostでブラウザーアクセス
見えてる。。
見えない場合は。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サイトから、下記バージョンをインストールするとバージョンの切り替えができます。
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のバージョンの切り替えもできるので便利です。
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も動いた!!
どの言語でもあるある・・
#!/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を選択
下記みたいに入れてみました。
phpのバージョンが選択できるので便利
上記で設定したところ・・
事前に d:/wamp64/sites/test.xxxx.xxx.co.jpとかディレクトリを作成しておく必要があるようです。
あと、C:/Windows/system32/drivers/etc/hostsに自動で登録したドメインが登録されますので、既存にあるドメインなどはhostsで変更されて、既存のサイトが見れなくなるので注意が必要です。
ローカルなのか、実際のサイトなのか、自身で管理しておく必要があります。
あと、wampserverを停止しても、hostsはそのままなので、既存サイトドメインを利用する場合。手動でhostsを修正する必要があります
トレイのアイコンは
トレイのアイコン右クリックTOOLのDNS restartでDNS反映できます。
右クリック、左クリック、ダブルクリックで各メニューができます。
ダブルクリックでTray Menu Managerが起動します。
Tray Menu Manager
SSL
self signed(自己署名証明書)とLet's Encryptがある・・・・・
なるほど。。ローカルのみの公開なので・・DNSチャレンジぐらいかな。。
SSLモジュールはここからクリックでいける・・便利・・
自己署名証明書 Self-Signed Certificate
下記をチェックすることで自動で自己署名証明書が作成されます。便利・・
ただ、オレオレなので・・・エラーはでますが接続できます・・
Wampserver ready to support httpsにチェックをいれると、Enable HTTPS for localhostもでます。
チェックすると下記のように・・
もし、「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書いちゃえば・・・