久々に本腰入れて作業するため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の再起動を忘れずに。