カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

XAMPPのshell 文字コードを変更

XAMPPのshellを使っていて、例えばmysqlコマンドでデータを確認したりする際、
文字コードがデフォルトShift_JISなのでDBの文字コードがUTF-8だったりすると文字化けして表示されてしまいます。
そんな時はshellの文字コードを変更しましょう。

コマンドは以下の通りです。
引数にコードページを指定します。

chcp 65001

コードページIDの一覧です。

932 shift_jis 日本語 シフトJIS(または、「shift-jis」や「x-sjis」など)
51932 euc-jp 日本語 EUC
50220 iso-2022-jp 日本語 JIS
50221 csISO2022JP 日本語 JIS(1バイトカタカナ可)
50222 iso-2022-jp 日本語 JIS(1バイトカタカナ可 – SO/SI)
65001 utf-8 UTF-8
436 views

XAMPPでPHPのモジュール版・CGI版切り替え

PHPにはモジュール版・CGI版の2種類があります。
主な違いは次の通りです。
モジュール版:ApacheのrootユーザーでPHPを実行・処理が速い
CGI版:ユーザー毎のPHP実行環境・セキュリティや安全性に優れている・モジュール版より遅い

XAMPPを使ってローカル環境で開発している場合、特に切り替えが必要なケースは稀かと思いますが、
参考までに切り替えの方法を記載しておきます。

httpd.conf

以下の行をコメント解除します。

#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

httpd-xampp.conf

モジュール用セットアップの記述をコメントアウト
※PHP7の場合の例です。

#
# PHP-Module setup
#
LoadFile "/xampp/php/php7ts.dll"
LoadFile "/xampp/php/libpq.dll"
LoadFile "/xampp/php/libsqlite3.dll"
LoadModule php7_module "/xampp/php/php7apache2_4.dll"

<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

CGI用セットアップの記述をコメント解除します。

#
# PHP-CGI setup
#
#<FilesMatch "\.php$">
#    SetHandler application/x-httpd-php-cgi
#</FilesMatch>
#<IfModule actions_module>
#    Action application/x-httpd-php-cgi "/php-cgi/php-cgi.exe"
#</IfModule>

PHPINFOを表示し、Server APIの欄を確認します。
こちらがApache 2.0 Handlerとなっていればモジュール版、
CGI/FastCGIになっていればCGI版で動作していることになります。

714 views

XAMPPでMySQLが起動しないエラー

XAMPPを使って開発をしていると、たまにMySQLがエラーで起動できなくなることがあります。
これまで同じ現象を2台のPCで経験しましたので、今後のためにも色々調べてみた中からなるべく簡単に戻せる方法をご紹介します。

まずはXAMPPでMySQLをスタートさせようとするとこのようなエラーが発生します。

エラー内容

Error: MySQL shutdown unexpectedly.
This may be due to a blocked port, missing dependencies, 
improper privileges, a crash, or a shutdown by another method.
Press the Logs button to view error logs and check
the Windows Event Viewer for more clues
If you need more help, copy and post this
entire log window on the forums

翻訳すると…

エラーです。MySQLが予期せずシャットダウンしました。
これは、ブロックされたポート、欠落した依存関係、不適切な特権、クラッシュ、または他の方法によるシャットダウンが原因である可能性があります。
不適切な特権、クラッシュ、または他の方法によるシャットダウンが原因である可能性があります。
Logs ボタンを押してエラーログを表示し、Windows Event Viewer をチェックしてください。
Windowsイベント・ビューアーを確認してください。
さらに詳しい情報が必要な場合は、以下のログウィンドウをコピーしてフォーラムに投稿してください。
ログウィンドウ全体をコピーしてフォーラムに投稿してください。

別のサービスが同ポートを使用しているか、ファイルが破損していることが原因のようです。
私の場合は同ポートを使っているサービスはなかったので、データの復元を試みたところ解決しました。


xampp\mysql\dataフォルダーを一旦別の場所にコピーしておきます。
コピー出来たらxampp\mysql\dataの中身を全て削除します。

続きを読む…»

13,280 views

Windows XAMPPのPHPバージョン切り替え

WindowsでXAMPPを使ってPHPの開発をしているとPHPの特定のバージョンで動作検証がしたい!ということがあると思います。
そんな時に手軽にPHPのバージョンを切り替えできる方法があったのでご紹介します。

※XAMPPはC:\xamppにインストールされている条件での説明となります。

まずはSourceForgeにて公開されているXAMPPの過去のバージョンをダウンロードします。
https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/

XAMPPのバージョン=PHPのバージョンなので、検証したいバージョンのXAMPPのZIP形式をダウンロードします。
ここでは例として7.4.19をダウンロードしたと仮定します。
ダウンロードしたら解凍しましょう。

前準備としてC:\xamppにある「php」フォルダーをリネームします。
PHPのバージョンに合わせてリネームしましょう。
PHPバージョンが8.0.6であれば「php」を「php8.0.6」にリネームします。
次にC:\xampp\apache\conf\extraにある「httpd-xampp.conf」を「httpd-xampp.conf.8.0.6」にリネームします。
これで前準備は完了です。

次にダウンロードして解凍したxamppフォルダーにある「php」フォルダーを「php7.4.19」にリネームし、C:\xampp内に入れます。
そしてapache\conf\extraにある「httpd-xampp.conf」を「httpd-xampp.conf.7.4.19」にリネームし、C:\xampp\apache\conf\extra内に入れます。

コマンドプロンプトを管理者として実行します。
C:\xamppに移動し次のコマンドを実行します。

mklink /D php php7.4.19

C:\xampp\apache\conf\extraに移動し次のコマンドを実行します。

mklink httpd-xampp.conf httpd-xampp.conf.7.4.19

こうすることでバージョンが付加されたフォルダーであってもシンボリックリンクでアクセスすることが出来るようになります。
別のバージョンに切り替えたいときはシンボリックリンクを作り直せばいいということになります。

4,484 views