MAMPでhttpd-vhosts.confのDocumentRootに日本語パスが使えない問題に対処する方法

今の会社では、主にWindowsを使って仕事しています。やはりMacが恋しいなと思っていたら、余っているMacBook Proがあったので会議用などで使うために貰いました。運用上、WindowsのXAMPでバーチャルホストで、共有フォルダにあるPHPファイルを参照して、サイトを閲覧しています。実は、XAMPの時に苦労したのが、共有フォルダに日本語パスが含まれる場合の設定でした。

日本語パスの何が問題か?

XAMPもMAMPも、httpd-vhosts.confなどの中のパス指定にマルチバイトが使えない!という問題があります。XAMPの設定時に、それに気づくまで少し手間取ってしまいました。じゃ、どうするのかって話です。

シンボリックリンクを作成する

シンボリックリンクを作成して、日本語パスを迂回するという方法を取ります。つまり、フォルダが「/あ/い/う/html/」みたいな構造になっていると、confファイルに記述できないので、「/あ/い/う/html/」を「local.co.jp」みたいなシンボリックリンクにして置き換えてしまいます。シンボリックリンクの作成は、Macのterminalで、以下のコマンドを使います。

ln -s リンク先 リンクを置く場所

さて、作るかと思ったら、smbで接続している共有フォルダのパスがわからない!フォルダの詳細で表示される¥¥○○○¥みたいな¥¥で始まるパスをコピーしたものの、リンクできなと怒られてしまいます。もしかして、Macじゃできないの?と思ったんですが、フォルダをterminalにドラックするとパスを自動で入れてくれるので、それをやったら一発でした。smb接続しているファイルのパスは/Volume/から始まるんですね。知らなかった・・・。

なので、terminal開いて、とりあえず、sitesというディレクトリを作成して、そこにリンクを置くとすると以下のようなコマンドになります。

ln -s /Volumes/あ/い/う/html/ /Users/username/sites/local.co.jp

そうすると、sitesディレクトリ内に、local.co.jpというエイリアスみたいなのができているの、それをダブルクリックしてみましょう。そうすると共有フォルダ内の「/あ/い/う/html/」に飛ぶはずです。そうしたら、httpd-vhosts.confの中で以下のように記述すれば、日本語パスを迂回して、サイトデータに指定できます。

<VirtualHost *:8001>
    DocumentRoot "/Users/username/sites/local.co.jp/"
    ServerName local.co.jp
</VirtualHost>

まぁ、日本語パスやめたらいいじゃん?とかバージョン管理ツール使えばいいじゃんとかいう声も聞こえてきそうですが、そうはいっても大人の事情でそうできない会社もあるんです(笑)

というわけで参考までに。

funnydreamer
栃木生まれのミドルエイジ。フロントエンドとデザインの領域におりましたが、最近はマーケティングやライティングにPythonによる自動化など何でも屋になってきました。趣味は、ゲーム、アニメ、自転車(ポタリング)、カフェ巡り、お絵描きと自称多趣味。ケーキはショートケーキが好物。

ADD COMMENT

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください