ブログトップ

Windows10ノートパソコンにxampp 7.1.1をインストールしました。

・XAMPPインストーラーのダウンロード
https://www.apachefriends.org/jp/download.html ここをクリックすると左の画面が表示されます。
頻繁にバージョンアップされるのですぐに新しいバージョンに変わってしまいます。

赤枠のその他のダウンロードをクリックします。

XAMPP Windowsをクリックします。

7.1.1をクリックします。

xampp-win32-7.1.1-0-VC-installerをクリックします。

実行または保存をクリックします。
保存を選択した場合、保存先のxampp-win32-7.1.1-0-VC14-installer.exeを実行します。

・XAMPPのインストール
実行するとユーザーアカウント制御のダイアログ確認画面が表示されます。
続ける場合、「はい」をクリックします。

ワーニングが表示されます。
「OK」をクリックします。

Setup画面が表示されます。
「Next」をクリックします。

インストールする機能を選択する画面が表示されます。
必要な機能を選択し「Next」をクリックします。

SSD 128GBの容量の少ないノートパソコンにインストールするため使わない機能はチェックを外しました。

インストールするディレクトリを選択する画面が表示されます。別の場所にインストールする場合はのディレクトリを指定します。
「Next」をクリックします。

Bitami for XAMPPの画面が表示されます。 Lern more about Bitami for XAMPPのチェックボックスが初期値でチェックされています。このまま開始するとBitami for XAMPPの画面がブラウザで表示されます。必要がなければチェックを外します。
「Next」をクリックします。

インストール開始の確認画面が表示されます。
「Next」をクリックするとインストールが始まります。

インストール中の画面です。
1~2分で完了します。

セキュリティ警告画面が表示されます。
この画面はWindowsファイアウォールからの警告です。
パソコンをクリーンインストール直後にインストールしたためセキュリティソフトはインストールされていません。 セキュリティソフトがインストールされていればこの画面は表示されないか別の表示になるかもしれません。

パブリックネットワークのチェックを外しプライベートネットワークをチェックします。
「アクセスを許可する」をクリックします。

インストール終了画面です。
Do you want to start the Control Panel now?をチェックしたまま「Finish」をクリックするとxamppのコントロールパネルが起動します。

言語を聞いてきます。このまま「Abort」「Save」どちらかをクリックします。

コトロールパネルが表示されました。
FileZila、Mercury、Tomcatはインストールしていないのでボタンがdisableになっています。
ApacheとMySQLのスタートボタンをクリックします。

今度はmysqld.exeのセキュリティ警告画面が表示されました。
パブリックネットワークのチェックを外しプライベートネットワークをチェックします。
「アクセスを許可する」をクリックします。

ApacheとMySQLが起動しました。

ApacheのAdminをクリックするとWelcom画面が表示されます。
以前のxamppと異なりsecurityがなくなってしまったようです。

MySQLのadminをクリックするとログイン画面が表示されずphpMyAdminが表示されます。

左が\xampp\phpMyAdmin\config.inc.phpで右が\xampp\phpMyAdmin\config.sample.inc.phpです。
config.inc.phpをバックアップしてconfig.sample.inc.phpをconfig.inc.phpに変更します。


ApacheとMySQLを再起動してMySQLのadminをクリックするとログイン画面が表示されました。

パスワードを入力してログインします。

アクセス拒否でログインできません。

コマンドプロンプトを起動しmysqlでパスワードを設定します。

カレントディクトリを\xampp\mysql\binに変更します。
mysql -h localhost -u root mysqlにログインします。
set password for 'root'@'localhost'=password('xxxx'); rootユーザーのパスワードを設定します。
flush privileges; 権限を反映させます。
exit; 接続を切断します。


無事にログインできました。

初期値では2MBまでしかインポートできません。

xampp\php\php.ini
671行目 post_max_size=8M 256Mに変更
824行目 upload_max_filesize=2M 256Mに変更

上記だけではサイズが増えるだけでsqlのサイズ、PCのスペックによりタイムアウトを起こします。
そのため実行時間も増やします。

xampp\phpMyAdmin\libraries\config.default.php
709行目 $cfg['ExecTimeLimit'] = 300; 600に変更します。
初期値の300秒を600秒に増やしました。

Apache、MySQLを再起動します。

phpMyAdminのインポート画面です。
256MBに増えています。
この状態で180MBのsqlが9分程度でインポートできましたが大きなsqlは面倒ですがmysqlのコマンドで実行したほうが良いです。

phpのプログラムでDBの内容を表示すると文字化けを起こします。
xampp\mysql\bin\my.iniの152行目~156行目のコメントを外します。

以上で普通に使えるようになりましたがphp5.6から7.1になり関数の名前や引数が変わったりしています。またPDFファイルを作成するFPDFもエラーが出て使えません。

・FPDF1.8.1設定
http://www.fpdf.org/ FPDFサイトにアクセスして画面左の「Downloads」をクリックします。

v1.81の「ZIP」をクリックしてダウロードします。

ダウンロードしたzipからfpdf.phpをローカル環境のfpdfフォルダにコピーします。

このページからjapanese.zipをクリックしてダウンロードします。

ダウンロードしたzipからjapanese.phpをローカル環境のfpdfフォルダにコピーします。

fpdf.phpとjapanese.phpだけで日本語は表示できるようになります。

sample.php

<?php
require_once('./fpdf/japanese.php');
$pdf = new PDF_Japanese('P', 'mm', 'A4');
$pdf->AddSJISFont();
$pdf->AddPage();
$pdf->SetFont('SJIS', '', 10);
$pdf->Text(10, 10, '日本語表示 2017-03-15');
$pdf->Output();
$pdf->Close();
?>
※以前必要だった$pdf->Open();はエラーになります。

このままでも日本語のPDFが作れますがフォントが微妙なのと今までのphpプログラムでゴシックや明朝を指定していたので修正が大変なことからjapanese.phpに少し手を入れました。

japanese.phpにフォント幅の指定を追加します。

$FONT_widths = array(' '=>600,'!'=>600,'"'=>600,'#'=>600,'$'=>600,'%'=>600,'&'=>600,'\''=>600,
  '('=>600,')'=>600,'*'=>600,'+'=>600,','=>219,'-'=>600,'.'=>600,'/'=>600,'0'=>600,'1'=>600,
 '2'=>600,'3'=>600,'4'=>600,'5'=>600,'6'=>600,'7'=>600,'8'=>600,'9'=>600,':'=>600,';'=>600,
 '<'=>600,'='=>600,'>'=>600,'?'=>600,'@'=>600,'A'=>600,'B'=>600,'C'=>600,'D'=>600,'E'=>600,
 'F'=>600,'G'=>600,'H'=>600,'I'=>600,'J'=>600,'K'=>600,'L'=>600,'M'=>600,'N'=>600,'O'=>600,
 'P'=>600,'Q'=>600,'R'=>600,'S'=>600,'T'=>600,'U'=>600,'V'=>600,'W'=>600,'X'=>600,'Y'=>600,
 'Z'=>600,'['=>600,'\\'=>600,']'=>600,'^'=>600,'_'=>600,'`'=>600,'a'=>600,'b'=>600,'c'=>600,
 'd'=>600,'e'=>600,'f'=>600,'g'=>600,'h'=>600,'i'=>600,'j'=>600,'k'=>600,'l'=>600,'m'=>600,
 'n'=>600,'o'=>600,'p'=>600,'q'=>600,'r'=>600,'s'=>600,'t'=>600,'u'=>600,'v'=>600,'w'=>600,
 'x'=>600,'y'=>600,'z'=>600,'{'=>600,'|'=>600,'}'=>600,'~'=>600);

後日他のプログラムでpdfを作成したところ文字間隔が開きすぎ下記のように修正しました。
$FONT_widths = array(' '=>520,'!'=>520,'"'=>520,'#'=>520,'$'=>520,'%'=>520,'&'=>520,'\''=>520,  '('=>520,')'=>520,'*'=>520,'+'=>520,','=>250,'-'=>520,'.'=>520,'/'=>520,'0'=>520,'1'=>520,  '2'=>520,'3'=>520,'4'=>520,'5'=>520,'6'=>520,'7'=>520,'8'=>520,'9'=>520,':'=>520,';'=>520,   '<'=>520,'='=>520,'>'=>520,'?'=>520,'@'=>520,'A'=>520,'B'=>520,'C'=>520,'D'=>520,'E'=>520,   'F'=>520,'G'=>520,'H'=>520,'I'=>520,'J'=>520,'K'=>520,'L'=>520,'M'=>520,'N'=>520,'O'=>520,   'P'=>520,'Q'=>520,'R'=>520,'S'=>520,'T'=>520,'U'=>520,'V'=>520,'W'=>520,'X'=>520,'Y'=>520,   'Z'=>520,'['=>520,'\\'=>520,']'=>520,'^'=>520,'_'=>520,'`'=>520,'a'=>520,'b'=>520,'c'=>520,   'd'=>520,'e'=>520,'f'=>520,'g'=>520,'h'=>520,'i'=>520,'j'=>520,'k'=>520,'l'=>520,'m'=>520,   'n'=>520,'o'=>520,'p'=>520,'q'=>520,'r'=>520,'s'=>520,'t'=>520,'u'=>520,'v'=>520,'w'=>520,   'x'=>520,'y'=>520,'z'=>520,'{'=>520,'|'=>520,'}'=>520,'~'=>520);

japanese.phpに関数を追加します。


function AddFontMincho($font='MS-Mincho',$family='MINCHO') {
 $name=$font;
 $cw=$GLOBALS['FONT_widths'];
 $CMap='90msp-RKSJ-H';
 $registry=array('ordering'=>'Japan1','supplement'=>2);
 $this->AddCIDFonts($family,$name,$cw,$CMap,$registry);
}
function AddFontPMincho($font='MS-PMincho',$family='PMINCHO') {
 $name=$font;
 $cw=$GLOBALS['SJIS_widths'];
 $CMap='90msp-RKSJ-H';
 $registry=array('ordering'=>'Japan1','supplement'=>2);
 $this->AddCIDFonts($family,$name,$cw,$CMap,$registry);
}
function AddFontGothic($font='MS-Gothic',$family='GOTHIC') {
 $name=$font;
 $cw=$GLOBALS['FONT_widths'];
 $CMap='90msp-RKSJ-H';
 $registry=array('ordering'=>'Japan1','supplement'=>2);
 $this->AddCIDFonts($family,$name,$cw,$CMap,$registry);
}
function AddFontPGothic($font='MS-PGothic',$family='PGOTHIC') {
 $name=$font;
 $cw=$GLOBALS['SJIS_widths'];
 $CMap='90msp-RKSJ-H';
 $registry=array('ordering'=>'Japan1','supplement'=>2);
 $this->AddCIDFonts($family,$name,$cw,$CMap,$registry);
}
上記4個の関数をjapanese.phpに追加します。


$pdf->AddFontGothic();
$pdf->AddFontPGothic();
$pdf->AddFontMincho();
$pdf->AddFontPMincho();
プログラムに上記を追加して

$pdf->SetFont(MINCHO, '', 16);
      ↓
$pdf->SetFont("MINCHO", '', 16);

$pdf->SetFont(GOTHIC, 'B', 17);
      ↓
$pdf->SetFont("GOTHIC", 'B', 17);

""で囲まなくても大丈夫でした。しかし文字の大きさの調整は必要です。
このように修正を最小限で抑えられるようになります。