元環境
Windows Server 2003
IIS 5.0
新環境:
Windows Server 2016
IIS 10.0
下記バージョンを動作させたい:
php5.2.6nts
動作が確認できるまでに参考になったサイト:
IIS初期設定
http://www.mztm.jp/2017/10/12/windows10iisphp/
php.iniの設定
https://symfoware.blog.fc2.com/blog-entry-1077.html
PHP過去バージョンのダウンロード参考:
https://jmatsuzaki.com/archives/15515
今後の参考予定:
https://nasunoblog.blogspot.com/2010/03/php-iis75fastcgiphp.html
https://uzulla.hateblo.jp/entry/2013/08/16/010814
http://guitarfish.wazure.jp/index.php?IIS%E3%81%B8%E3%81%AEPHP%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95%28IIS7.5%20x%20PHP5.2.11%29
https://server-network-info.blogspot.com/2017/02/windows-server-2016-iis-100-php.html
MySQLのインストール
mysql-essential-5.0.27-win32.msi
MySQL移行はダンプで行う
移行元で実行:
mysqldump -h localhost -u root -p --default-character-set=utf8 データベース > d:\databaseMysql
移行先で実行:
mysql -h localhost -u root -p データベース < d:\databaseMysql
PHPからMySQLを接続テスト
PEARのインストール
http://shopyuta.com/archives/2014
https://so-zou.jp/web-app/tech/programming/php/library/pear/introduction/install.htm
PEARインストールできないとき
http://shopyuta.com/archives/2014
★PHP修正
■php.ini関連のエラー
・SQL接続コードでのエラー
https://www.javadrive.jp/php/mysql/index1.html
http://books-nekoya.jp/Programming/MySQL/php.html
・下記のコードでエラーが発生した。
mb_language("ja");
mb_internal_encoding("SJIS");
mb_http_input("SJIS");
mb_http_output("SJIS");
⇒日本語環境のエラー
https://webkaru.net/php/mbstring-php-ini/
■5.2.5 から 5.2.6 NFSにバージョンを変えた影響のせいか通常動作の挙動ではなかった。
下記作業で改善された
■parse_ini_fileを使っている元のiniファイルを修正
例)
smtmail = addmail = aaa@test.com
⇒
smtmail = aaa@test.com
addmail = aaa@test.com
■コード全体の修正
html内のPHP文字表示部分修正
value="= $_username ?>"
⇒ value=""
★Perl5.8.8の移行
・移行元のPerlフォルダをコピーしてくる。インストール不要。
・Pathを通す
・IISから.*cgi .*plのハンドラーマッピングに登録する
http://guu.fmp.jp/archives/5788
・この時点でPerl時点の動作は確認。
・HTTPエラー対応
「HTTP エラー 502.2 - Bad Gateway
指定された CGI アプリケーションは、正しく動作しませんでした。HTTP ヘッダーの完全なセットが返されませんでした。返されたヘッダーは "Can't locate ./get_form.txt in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at ・・・」
通知 ExecuteRequestHandler
モジュール CgiModule
エラー コード 0x00000002
・移行したPerlファイルのrequireでエラーコードが出ていたので、requireする直前に下記のコードを加えると動作
if($0 =~ /^(.*[\\\/])/) {chdir($1);}
require 'xxx.pl';
★Hyper-Vテスト環境から本番環境への移行時の問題
チェックポイントなど作成したので、ファイルがバラバラになった。
単一ファイルからドライブの接続ができるようにチェックポイントを削除して、終了しておく。
https://uncle-atsushi.com/hyper-v_avhdx_delete
★新環境IISにSSL設定
https://www.ipentec.com/document/windows-windows-server-iis-setup-https-site