XAMPP for OS Xからかなり変わったXAMPP-VM for OS X のメモ
※ これは諸般の事情で調べたメモです。7.1.10 の Preview版 について書いているので、バージョンアップにともなって改善されるかもしれません、というかされてくれ!! ※
Apache PHP MySQL(MariaDB)の一括インストーラーとして主に初心者層に人気のXAMPPですが、最近のバージョンにおいてかなり仕様がかわりました。
諸般の事情で結構なやましい気分になっているのですが、とりあえずどういう風になったのかメモです。
平たく言って、VM(Linux)になった
いままでのXAMPPはOSX用のPHPやApache等がはいっており、OSXのネイティブプログラムとして動作していました。
個人的にはその作りは好ましいとおもっていて、OSXでバラバラにApache、PHP、Mysqlを入れてつなぎ合わせる手間を考えるとXAMPPは楽です。
仮に自分が使わないとしても人に教えるのには楽だし、アンインストールも消すだけだし、CLIがいらないのは初心者によい。
しかしそれがXAMPP-VMになり、仮想マシンの上でうごくLinux(Debian+Linux版XAMPP)とVMをちょっと操作するXAMPPコンパネという形に変化しました、完全に別物です。
(過去のバージョンもダウンロードページにいけばまだDLできますし、アップデートもされているようですが)
この大変化についての説明
この変更について公式Blogでの言及は色々説明はありますが、Blogみんなみてないでしょ…。
https://www.apachefriends.org/blog/new_xampp_20170628.html
Developing a PHP application on XAMPP-VM for OS X
「tell us what you think」とかいてあるものの「数ヶ月でもうこっちがメインになるんかい」という気分がありますね。
一番の問題は、初心者にきびしそうな変化が多い事
XAMPPは初心者向けといって間違いないと思います、初心者がキャッキャウフフしながらPHPと戯れたりするためにあるとおもいます。
あるいはサーバーに興味のないウェブ製作の人がシュッとつかうためにあるとおもいます。
そういった人たちは簡単だからXAMPPを選んでいるので、簡単でなくなったXAMPPに価値はありません。
多くの書籍やウェブサイトでスクショつきで紹介されているから使っている、それ以上でもそれ以下でもない…
しかし画面もかわっちまったんだ…。
ローカルのFSではない
VMなのでhtdocsはVMの中にあり直接アクセスできません。
アクセスする手法はいくつかありますが…
コンパネにはVMのストレージをNFSマウントするボタンがあり、押すとVMの/opt/lamppがマウントされてFinderで操作できるようになります(後述しますが権限が微妙)。
ただ、「ボタン押すだけ」でも難しいのが初心者ですし、一手間増えている感じです。
localhostでなくなった
htdocsにファイルをおいたら「固定的なURL」の http://localhost を開くのがいままででした。
しかしVMはlocalhostではないので、192.168.64.5(等?)を開く必要があります。
これはXAMPPのコンパネに表示されていますのでそれを見て入力すればいいんですけど、やはり初心者にはノーメリットです。
なお、XAMPPのコンパネにはssh ポートフォワーディングをGUIで設定する機能があり、オンにすればlocalhost:8080がvm:80につながります。
(その手間は無駄では?と思いますが…)
phpMyAdminがエラーになる
コンパネから「Go to Application」というボタンを押すと、おなじみのXAMPPのデフォルトページが表示されます。
デフォルトページにはXAMPPのヘルプとphpMyAdminへのリンクがあるのですがなんとこのphpMyAdminにアクセスできません。Apache側の制限でlocalhost以外からの接続を弾いているからです。
アクセス許可方法はデフォルトページからリンクされたHow toページに記載がちゃんとあります、えらい。
しかし「sshでこのファイルのこの行を修正せよ」という感じで、XAMPPを使う層にはきびしそう。
ssh自体はコンパネの「Open Terminal」ボタンをおせばワンタッチでつながりますが…。
一応、前述のポートフォワードをつかえば http://localhost:8080/phpmyadmin で接続できるようにはなります。
というか別のところにはそっちで説明されていいました、なんでや。
なおポートフォワードはデフォルトで「require local」というオプションがOnになっており、これはいわゆる -g の事だと思います。
そうでなければボタン一発暗黙で、phpmyadmiが外に開放されてヤバさを感じます。(参考までに、XAMPPのmysqlはデフォルトでroot パスワードは空です)
なまじボタンをおせばポートフォワード設定ができるのは、勝手ながらも「こうやったらできました!」民族の人が微妙なエントリをかかないか少々不安になります。
UIDまわり
NFSでマウントできるから今までとかわらないよ!とヘルプなどにはあるのですが、実際には権限周りで問題があります。
htdocsなどのファイルの権限はbitnami、Apacheはdaemon権限、シェルはroot権限でうごいています。この時点で嫌な予感しかしません。
実際 htdocs/test.phpに file_put_contents("a.txt", "hello");
とかコード書いてApacheからphpをうごかすとPermissionがないとエラーがでます。書き込めない。
NFS経由のFinderではパーミッションの変更もできず。ふぁー…これはひどい。
たしかにsftpやシェルやFTPならばパーミッション変えられるしその知識も重要だけど、それXAMPPつかう層が考える事なのだろうか。
バックアップ
当然なんですがVMの中は最高機能のTime machineで差分バックアップできません。
VMまるごと取れるとは思いますが、本当に復活するのかは謎。
なお、VMの中からコンテンツをバックアップする機能を「開発中」だそうです(生煮えだ…)
FTP
XAMPPでは伝統的にFTPdがついているのですが、VMは外からつなげないのでホストPCからの接続にしか使えません。FTPプロトコルはポートフォワードできないからな…(FTPdを残す意味はあったのだろうか)。
…という感じで
初心者にやさしいはずのXAMPPが、一気に初心者殺しになったという感想でした。
多少はわかる人間が見ても生煮え感がすごく、切り替えは時期尚早だと思います。
しかし、トップページからのリンクはもはやVMにむいてしまっており厳しい。
「しょしんしゃにやさしいPHP」というイメージを一手に背負ってきたXAMPPがこのような「おしゃれでモダンでマットウな方向」に舵を切ったのは大変残念でなりません。そういうのは別のやつにやらせとけばええやろ…。
ということで、現状、諸般の事情に伴って「やべー…これ勘弁してくれよ…Native版がいつまで提供されるのか教えてくれ…」となやんでおります。
なお、WindowsはVM化されておりません(ので、諸般の事情ではWindowsを使う羽目になっています)。Windows最高!!!
以下、初心者には関係のない話
VMなので、ネストがだるい
諸般の事情できれいな画面でスクショを取る必要があるとき、XAMPPは普通に仮想マシンの上でうごいてくれましたが XAMPP VMはNested VMがサポートされていないとエラーになります。(VMからHyper Vが見えてないとダメ)
Parallels を愛用してるんですがPro版じゃないとそれがつかえないんですよね…つらい…。
VMについて
OSはDebian 8.7です。普通にapt-getできるので困ることはないですね。
VM内のメモリは1GBです、変更する方法はみつけてません。1GBとか雑で強めなバッチ回すと足りなくなるんで変更したい…。っていうかPHP書きたいだけなのにVMのメモリ管理したくないでしょ…。
Diskは15GBです、これは地味に足りなくなりそう。増やす方法はやはりみつけていません。
VMにsshする鍵はXAMPP.appの中にはいってまして、そいつをつかえば普通にSSHできます。ただ、この鍵は共通ではないか?snakeoilなのではないか…?不安です。
NFSでマウントするので、いわゆるfs監視系のツールは動かなくなると思います。一部のツール、エディタやIDEでは更新検知が効かなくてきびしそう。VMはLinuxなのでVMからOSXの領域をマウントすることはできるでしょう、そこまでできる人がXAMPPつかうとはおもえませんが
しかし、XAMPPは企業のBitnamiがバックに付き、インストーラーでちょっとした広告がでることを除けば安定してリリースされてきたので応援しておりましたが*1、ここにきて誰もつかってない(言い過ぎ)Linux版に寄せようとする動きはいまいちいい感じがありません。(Bitnami Modulesまでメンテすることを考えると、プラットフォームをへらしたいのかもしれない…邪推ですが)
*1:bitnamiのサイトを開くチェックを外そう!とか書かない的な事で