月別アーカイブ: 2020年7月

WindowsにMariaDB、PHP、Apacheをインストールする

MariaDB、PHP、ApacheをWindowsにインストールした時のメモです。このセットをインストールするときは、「XAMPP」などパッケージになっているものを使用した方が簡単ですが、開発に使用しますので個別にインストールし関連付けしました。
以下、ステップ毎の記述です(スクリーンショットはありません)。

  • 使用したPC
    Dell WorkStation T-3600 Windows10 Pro(64Bit)、Intel Xeon 2.7G 8 Core、ECC 16GB Memory、1TB Card Raid HDD

<MariaDBのDownloads>
MariaDBのサイトから「mariadb-10.1.45-win」をダウンロードしました。DownloadsファイルをダブルクリックするとSetupが開始されます(ミスを避けるため、MySQL等他のSQLが入っていないPCにインストールしました)。
②Licence条項に同意します。
③Custum Setup画面はデフォルト設定としました。
デフォルトでは、server、Development ComponentsとThird party toolsのHeidiSQLがインストールされます。HeidiSQLはMariaDBに簡単にアクセスできるため便利です。
④root userのpasswordを設定します。
password:password(例です)
root userでremoteからログインする時は、Enable access from remote machine for ‘root’ userにチェックを入れます。
⑤その他
Server Name:MariaDB(例です)
TCP port:3306
Buffer pool size:500MB
利用情報を送信協力する場合はEnable the Feedback plugin、、、にチェックを入れます。

ここまでで問題なければ、「install」をクリックします。
完了したらFinishをクリックして終了です。
⑥Windowsのスタートメニューを覗くとMariaDBが追加されています。
⑦コントロールパネルの環境変数でMariaDBにpathを通します。
例)c:\ProgramFiles\MariaDB 10.1\bin
⑧MariaDBにrootでログインしてみます。
Terminalから mysql  -u root  -pを実行し、設定したroot passwordを入力します。
次のように表示されればOKです。


Microsoft Windows [Version 10.0.19041.388]
(c) 2020 Microsoft Corporation. All rights reserved.

C:\Windows\system32>mysql -u root -p
Enter password: ********
—- 一部省略 —
Server version: 10.1.45-MariaDB mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]>


<PHPのDownloads>
続いてPHPをダウンロードします。
PHPのダウンロードサイトよりダウンロードを行います。
「php-7.3.20-win32-VC15-x64.zip」Thread Safe版をダウンロードします。ダウンロードファイルはzip圧縮されています。Downloadsフォルダー内で解凍しC:¥にMoveします。
フォルダー名を「php-7.3.20」に変更します(C:¥php-7.3.20となります)。
②php.ini-developmentの修正
php-7.3.20のフォルダーにある「php.ini-development」をエディター(Visual Studio Codeを使用)で開きます。
下記のように編集します(Versionによって行数はズレます)。
1.752行目 ; extension_dir = “./”の2行を、PHPを設置したディレクトリにします(; On windwos;は変更しません)。(取り消し線部分はミスです)
extension_dir = “c:/php-7.3.20/ext”
; On windows:
extension_dir = “c:/php-7.3.20/ext”

2. 908行目 ; extention=fileinfo以下を、下記のように変更します。他のSQLも使えるようにするには該当行の;を取ります。

extension=fileinfo
;extension=gd2
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=interbase
;extension=ldap
extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=odbc
extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
;extension=shmop
; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=snmp
;extension=soap
extension=sockets
;extension=sodium
;extension=sqlite3

3.[date]を以下のように編集します

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Tokyo

4.ファイル名を「php.ini」に変更して保存します
5.Windowsの「設定」のヘッダーにある検索ボックスに環境変数と入力し、新規、参照でpath:/php-7.3.20
を追加します。
ターミナルでphp -vと入力し上記のVersionが表示されればOKです。

<Apacheのインストール>
ApacheのダウンロードサイトよりVersion2.4.43をダウンロードしました。ダウンロードファイルは、httpd-2.4.43-win64-VS15.zipです。
Downlodsフォルダーで解凍します。
Apache24をフォルダーごとC:\にMoveします(C:\Apache24の様になります)。

1.httpd.confの編集
Apche24/confにあるhttpd.confをエディターで開きます。
以下記載行数は2.4.43の行番号です。行番号は、Download Versionによって若干前後するかもしれません。
37行目からのSRVROOTを実際のApacheのルートにします(下のServerRoot “${SRVROOT}”は変更しません)
Define SRVROOT “c:/Apache24”
ServerRoot “${SRVROOT}”

185行目、LoadModule xml2enc_module modules/mod_xml2enc.soの次にphp7.3.20に作成されたphp7apache2_4.dlを追加します(185行目は変更しません)。

#LoadModule xml2enc_module modules/mod_xml2enc.so
LoadModule php7_module “c:/php-7.3.20/php7apache2_4.dll”


227行目# if your host,,,,の2行下、ServerNameの行頭#を外し、Portは80のままです。

# If your host doesn’t have a registered DNS name, enter its IP address here.
#
ServerName localhost:80


235行目#の次の<Directory />以下を下記のように変更します(
AllowOverride NoneをAllに、   Require all deniedをgrantedに変更)

#
<Directory />
    AllowOverride All
    Require all granted
</Directory>

 

267行目Options indexesの次にOptionsを追加します。
Options +Includes


408行目以下で使用する拡張子を登録します。

#
    AddType aplication/x-httpd-php .php
    AddType aplication/x-httpd-php-source .php


438行目以下、.php拡張子を追加します。

 #
    AddHandler php7-script .php
    # For type maps (negotiated resources):
    # AddHandler type-map var
    #
    # Filters allow you to process content before it is sent to the client.
    #
    # To parse .shtml files for server-side includes (SSI):
    # (You will also need to add “Includes” to the “Options” directive.)
    #

   </IfModule>

ファイル行末にPathを追加します。
PHPIniDir “C:/php-7.3.20”

保存します。

2.binとhtdocsにPathを通す
Windows環境変数で、Apache24/htdocs、Apache24/binにpathを通します。
pathは、環境変数でpathを選び、新規→参照で上の二つのフォルダーを追加します。
c:\Apache24/htdocsにあるIndex.htmlをダブルクリックし、「It works!」が表示されることを確認します。

3.ApcheをWindowsのサービスに登録します
ターミナルを管理者権限で起動し、c:\httpd -k installを実行します。
Installing the ’Apache’2.4’ service
The ’Apache’2.4’ service is successfully installed.
,,,,
と表示されたらサービス登録されています。

4.Apacheを起動します
ターミナルを管理者権限で起動し、httpd -k startを実行します。

Chromeで、URLをhttp://localhost/とキーインし、「It works!」が表示されたらOKです。

以上です。
Kazunori Fukuma
1st 2020/07/23
2nd 誤字訂正 2020/08/11

Macmini FusionDriveをフルSSD化する

この記事はMacmini FusionDriveのフルSSD化メモです。
ハードは、Macmini Late2012 macOSはMojave です。
元々HDD仕様の機種です。fusionは設定可能ということでした。
フルSSDにする前はSSD 500GB+HDD 500GB のハイブリッドfusionにしていました。

速いと思っていたこの構成も次第に切れが悪くなってきました。
ストレージを覗いてみますと、アプリや画像など全般的に使っているためか、大半はSSD側に寄せられています。
Macのfusionの仕組みは分かっていませんが、容量は2台のディスクの足し算になっています。
使うアプリをメインサイドに寄せて、RAID のストライピングの様な使い方をしているかもしれません。
この方法なら、片方のディスクをSSDにすると高速になります。
ただ、書き込むときは振り分けますので故障には弱いかもしれません(あくまでも仮定の話です)。

脱線しました。話を戻します。
SSDがもう1台必要です。
Dynabookに搭載していたmSATAⅢ 500GBを転用しました(ディスプレイ故障)。
mSATAⅢは小さな基板型です。Macminiに装着するには2.5″ 外形にしてSATA接続が必要です。
2.5″ソケット付きの変換ケースを購入しました。
挿入するmSATA はSUNEAST SSD 512GB、SE800 mSATAⅢです。

作業は以下です。

<SSDの交換>
交換前に、現在の内容がTimeMachineにバックアップされているか確認します。
換装するのは2台のディスクの裏蓋側HDDです。
下のスクリーンショットはそのHDDを取り外したところです。見えているSSDはcrucial製500GB。
奥のディスク交換はちょっと大変です。取り出しは全分解に近い作業が必要です。しかも引き抜きアングルやソケット外しのヘラなども必要です。
今回は2度目の交換、フレキなどは接続済です。
初めてfusion化する時は、裏蓋側のディスク接続用に専用のコネクタ付きのSATAフレキケーブルが必要です(この時の換装記事は「Mac miniをフュージョンドライブ化する」を参照下さい)。
AppleのPCは高密度実装です。簡単な側のHDDでさえも外すのがギリギリです。(見えている)茶色のフレキは奥側のSSDフレキです。近くのWiFiケーブルやSSDフレキを断線させない様に、ゆっくりと手前に引きながら上に持ち上げて取り外します。
換装後、2台のフレキがぐらぐらしてないか確認します。
(しっかりソケットに接続されてないとSSD領域削除まで出来ても、コネクトエラーやfusionそのものが構築できなかったりします)
また、ついでにCPUファンやメッシュについた埃を清掃します(結構ほこりが詰まっていました)。

<復元作業>
HDDをSSDに交換すると、残念ながらfusionがほどけてしまいます。
2台個別のDriveにするときはフォーマットするだけでOKです。fusionとして復活させるにはちょっとしたコツがいります。

手順は以下です。
①PCの電源投入後「command + R」でメニューからディスクユーティリティーを起動します。
②2台のSSDを各消去します(APFSフォーマットにしました)。ディスクの名称は未設定でも構いませんがHD1、HD2など適当なVolume名をつけておきます。
ユーティリティーを終了します。
③fusion構成が記憶されている時は(使っていたディスクを単に戻す場合)、追加のディスクをフォーマットするだけで自動的に元のfusionになります。
2台のSSDの領域消去後、2台とも独立状態の時は、Mojave以降ではターミナルを起動し、次の命令を実行します。(Mojave前のOSではAppleの記事「Fusion Drive が分割された場合の修復方法」を参照願います)。

$ diskutil resetFusion

2台のSSDのサイズ確認や再フォーマットが実行され、2台のディスクの足し算の容量の fusionになればOKです。
この後、TimeMachineのバックアップから復元します。

次の写真は復元後のストレージの内訳です。
Fusion Drive 1.04TBが出来ています(リンゴマーク→ストレージを選択で見えます)。RAID1 3TB、TimeMachine 2TBなど外付けのストレージです。

<注意事項1>
TimeMachineからの復元時、異なるOSに復元できないことがあります。現在のOSとバックアップ側のOSを合わせるとうまくいく確率は高いです。

TimeMachineから復元とせず、移行を選択する場合、復元と同等なRestoreとなりますが、Server等をインストールしているときは外部認証は再認証となってしまいます。

<感想他>
無事復元出来たら動作確認をします。
使っていくと徐々に高速化されます。
ただ実行後のコメントで恐縮ですが、SSD2台のfusionはあまり意味が無いかもしれません。単独SSDよりはすこし速いです。ハイブリッドに比べても高速なのは間違いありませんが、容量を増やして1台の大きなサイズのSSDで間に合うと思います。

<fusionにする前に再起動し古いOSに戻ってしまったとき>
fusion構築前に、誤って再起動するとOSインストーラーが消えてしまいます。このときは、PC購入時のOSX迄戻ってしまいます。あまり古いOSですとfusionメニューがありません。
OSがMountain Lion位まで迄戻ってしまった時は、OSXの再インストールを繰り返し、なんとかMojaveまでこぎつけます。Mojaveになれば上の命令でFusion構築が可能です。
最新OS(10.15など)のバックアップを持っているときは、電源投入時の起動操作をCommand + option+Rで行います。最新の10.15がinstall出来ます。
10.15を再インストールし、ディスクユーティリティーで行う手順は上に示した通りです。
以上です。

 

Kazunori Fukuma
1st 2020/07/07
2nd 文言修正 2020/07/10
3rd 復元記載部分の訂正 2020/07/18
4th fusionにならず,,,を追記しました 2020/09/17
5th 一部追記 2020/09/21
6th ミス訂正 2020/09/22