【2021年版】xamppでfreoを使う・1

久々に本腰入れて作業するためxamppを新しく入れなおしたものの案の定躓きまくったのでメモです

  • Windows10 Home 64bit 20H2
  • xampp(portable) Control Panel v3.2.4 / PHP Version 7.4.13

ドライブ直下に展開し、「setup_xampp.bat」を叩く。xampp-control.exe を起動。

VCRUNTIME140.dllが見つからない

apacheをスタートさせようとすると「VCRUNTIME140.dllが見つからないためコードの実行ができません」とアラートが出てapacheが起動しない。Visual Studio 2019 for Windows および Mac のダウンロードのページ下部、「その他のツールとフレームワーク」より「Visual Studio 2019 の Microsoft Visual C++ 再頒布可能パッケージ」をダウンロードしてインストール。解決。

This may be due to a blocked port

xampp のトラブルでよく見かけるのがこの「ポート競合でapacheが起動しない」というやつなんですが今回netstatでポート競合しているものがないか探しても見つからず、念のためconfファイルのポートを書き換えても状況変わらず。

(念のため)ポート変更の仕方

confファイルはフォルダをたどっていってもいいけどxamppコントロールパネルのConfigってボタン押したほうが早いし確実。

httpd-vhosts.conf
#Listen 80
Listen 8080
 # NameVirtualHost *:80
 NameVirtualHost *:8080
httpd-ssl.conf
#Listen 443
Listen 4433
#ServerName www.example.com:443
ServerName www.example.com:4433

意外な原因

こんなことする人いないだろうと思いますが自分はまたやってしまいそうなので一応書いておきます、アプリの起動にランチャーソフト「CLaunch」というものを長年愛用しているんですが新しく入れたxamppを起動するのに昔入れていたxamppを登録していたところのプロパティでファイルのパスだけ書き換えていたのが原因だったようです(多分…何気なくエクスプローラから起動したら普通に立ち上がって気づきました)。新しいxamppをきちんと新規登録し直したらポートはデフォルトのままでちゃんと起動できました。

httdocsフォルダの移動

xampp自体はCドライブ直下に置いたがサイト用のデータは別ドライブに置きたいため。

httpd.conf

DocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/htdocs">
DocumentRoot "E:/htdocs"
<Directory "E:/htdocs">

バーチャルホストの設定

複数のサイトを管理したいとき、「http://localhost/aaa」「http://localhost/bbb」のようにサイトトップがサブディレクトリ(?)なのはいろいろ面倒くさいので「http://aaa.local」とかで開けるように。

C:/xampp/apache/conf/extra/httpd-vhosts.conf

NameVirtualHost *:80

<VirtualHost *:80>
  DocumentRoot "E:/htdocs"
  ServerName localhost
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "E:/htdocs/aaa"
  ServerName aaa.local
</VirtualHost>
<Directory "E:/htdocs/aaa">
  AllowOverride All
  Options All
  Require all granted
  order deny,allow
  allow from ALL
</Directory>

C:/windows/System32/drivers/etc/hosts

管理者権限で開いたエディタで編集する

127.0.0.1       localhost
127.0.0.1       aaa.local

C:\xampp\php\php.ini

PHPの設定です。実際freoを動かし始めてから気づきましたが時間が8時間程ずれているため

;date.timezone=Europe/Berlin
;↑行頭に「;」でコメントアウトし↓を追加
date.timezone=Asia/Tokyo

設定を触ったらApacheの再起動を忘れずに。