はじめに
XAMPPとは、筆者はWindows環境で、Apache + MariaDB + PHP + Perlの開発環境を作成するときに使用しています。
Windowsでは、IISサーバーがあるのですが、バージョンなどで設定が手間だったり、するのでこちらを使用します。
特に、WordpressなどのCMSでウェブルートに直接インストールをしなければいけない場合に役に立ちます。
サーバーにインストールするまでもなく。ちょっとインストールで試してみるなどにも有効ですよぉ。。
XAMPPをインストール
下記のURLへアクセスします。
https://www.apachefriends.org/jp/index.html
下記の箇所をクリックすると最新のPHPでダウンロードできます。
PHPの場合、バージョンによって動作するしないがあるので、ダウンロードをクリックして、下記のようにバージョンが選択できます。
上記でもバージョンがない場合、その他のダウンロードをクリックすると
Soucefogeへ移り、今回は、XAMPP windowsを選択すると各種バージョンがあるので落とします。
知識のある方は、個別にPHPのみ差し替えてもよいかと・・
ダウンロードしたファイルを実行すると、下記のように、ウィルスソフトがあると、インストールの動作が遅くなるよって出てくるので、
そのまま、ウィルスソフトを起動してたまま、Yesをクリックします。ウィルスソフトは落とさない方がいいですよ。
次に、再度下記の警告画面が表示されます。これはWindowsのうUACの権限で、C:\Program Files(x86)にインストールするのをやめてくださいという感じと
もしくは、インストール後UACを無効にしてください。と表示されるので、ここはとりあえず、OKします。
これは、XAMPP自体、インストールされたフォルダー内に書き込みなど行ってしまうので、Program Filesにインストールしないようにします。
そのまま、nextをクリック
すべて使用するかと思いますので、フルでインストールします。メール送信などの後々必要になります・・
ここで以前の警告で、Program Filesにインストールしないようにしてねって出てたので、Program Filesには変更せず、そのままnextします。
ここで、Cドライブか、Dドライブか決めておくとよいでしょ。。
ここで日本語はないので英語のまま、nextします。
Learn more about Bitnami for XAMPPにチェックを外します・・英語が堪能かたは。そのままどうぞ。。nextします
インストールをはじめますってでるので、nextします。
待ちましょう。。。
そのままFinshします。
XAMPPのコンパネが起動するので、初めは、apache mysqlだけスタートしてみる。
エラーが出る場合は、XAMPPのコンパネを管理者権限で動作させましょう。
ブラウザーでlocalhostまたは、あなたのローカルIPを入力して下記の画面がでれば成功です。
動作しない場合は
コントロールパネル→システムとセキュリティ→Windows Defender ファイアウォール→Windows Defender ファイアウォールを確認
もしくは、ウィルスソフトのファイアウォールを確認してください。
c:\xamppにインストールした場合、
c:\xampp\htdocsにウェブ用コンテンツを置きます。
もしは、htdocsを別名でコピーしてバックアップをとっておき、htdocs内はすべて削除してもよいです。
今後、htdocsをインストールごとに、ディレクトリ毎をコピーしてとっておき、そのものを使用するかで、htdocsへリネームすると便利かと思います。
phpとperlが動作しているか確認します。
check.cgiで保存します。
#!/usr/bin/perl
$bgcolor = 'BGCOLOR="#008040"';
foreach $key (sort keys %in) {
my $space = " " x (20 - length($key));
$form_str .= "<TR><TD $bgcolor>$env$space:<TD $bgcolor><FONT COLOR=FFFF22 FACE=Arial SIZE=2>$ENV{$env}</TR>\n";
}
foreach $env (sort keys %ENV) {
my $space = " " x (20 - length($env));
$env_str .= "<TR><TD $bgcolor>$env$space:<TD $bgcolor><FONT COLOR=FFFF22 FACE=Arial SIZE=2>$ENV{$env}</TR>\n";
}
print "Content-type: text/html\n\n";
print <<__BASEHTML__;
<html><head><title>環境変数</title></head>
<body bgcolor="00000" "text=ffffff">
<center><font size=3><table border=0 bgcolor="045b51">
<th bgcolor=045b51><font size=4 color=ffffff>環境変数</font></th>
</table><p>
<table border=0>
<tr><th bgcolor="#045b51">取得項目<th bgcolor="#045b51">情 報</tr>
$form_str
$env_str
</table>
</body>
</html>
__BASEHTML__
check.phpで保存します。
<?php
echo phpinfo();
?>
下記でアクセスして動作すれば問題ありません。
以前はperlは設定しないと動作しませんでしたが、現在のバージョンは動作していました。
http://localhost/check.cgi
http://localhost/check.php
パッケージソフトによってphp.iniを変更する場合は
c:\xampp\phpにphp.iniがあります。
その他の設定ファイルはconfigボタンで編集できます。
mysqlのadminボタンを押すことでphpmyadminが起動します。データベース作成などはこちらから行います。
phpmyadminの内容
インストール直後は、ユーザーroot、パスワードはなしになっています。
パッケージによってはデータベースパスワードが空白が入力できなかったりするので
また、どこからのサイトから持ってきた場合、そのサーバーのユーザーID、パスワードを登録してもよいかと
phpmyadminは、サーバセンターでも標準にコンパネについてくるようになったので、覚えておくとよいでしょぉ。。
新規にアカウント追加
下記を設定します。
GRANT ALL PRIVILEGES ON *.* TO 作成するユーザーID@localhost IDENTIFIED BY '作成するパスワード' WITH GRANT OPTION;
FLUSH PRIVILEGES;
データベースを作成するには、下記から
データベース名と文字コードを選択して実行すればOKです。
その後、作成したデータベースのアカウント、パスワード、データベース名を、パッケージソフトインストール時に入力してインストールすれば、インストールできます。
メールを送信できるようにする
通常のサーバーと異なり、smtp経由でメール送信する必要があります。
なので経由する、SMTPサーバー名、SMTPサーバーポート番号、SMTPサーバーユーザーID、SMTPサーバーパスワード、メールの送信者のメールアドレスが必要です。
あなたの個人のメールを使用する場合、outlookの設定を参考にするとよいでしょ。ちなみにパスワードもあなたのものになりますけど・・
outlookはコントロールパネルのmailから確認すると分かりやすいです。
自分のメアドはどうしてもという方は、会社のメール管理しているひとにテスト用のアカウントを作成してもらうとか・・・できれば・・・
C:\xampp\sendmail\sendmail.ini
上記ファイルの下記を変更します。
smtp_server:SMTPサーバー名
smtp_port:SMTPサーバーポート番号 25とか587とか・・・
smtp_ssl:SMTPサーバーの暗号化プロトコル autoか、古いのはnoneで
auth_username:SMTPサーバーユーザーID
auth_password:SMTPサーバーパスワード
force_sender:メールの送信者のメールアドレス これはあなたのメールにしましょう。
perlの場合
open(MAIL,"|C:\\xampp\\sendmail\\sendmail.exe -t あなたのメール@の前には\つけましょう!");
MTの場合 sendmail.exe経由、sendmail.ini要設定
mt-config.cgi
MailTransfer smtp
SMTPServer localhost
SMTPPort 25
MTの場合 直接
mt-config.cgi
#MailTransfer sendmail
#SendMailPath /usr/lib/sendmail
MailTransfer smtp
SMTPServer SMTPサーバー名
SMTPPort SMTPサーバーポート番号
SMTPAuth starttls
SMTPUser SMTPサーバーユーザーID
SMTPPassword SMTPサーバーパスワード
phpの場合 こんな感じ・・パスは自分のインストールしたパスで・・
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
仮のドメインで動作したい。
windowsのhostsを追加しましょう!
C:\Windows\System32\drivers\etc のhostsに下記を追加
社内のローカルであれば、別の人も同様に設定することで共有できます。
ただ、インターネット上の実際のサイトは閲覧できなくなるのでご注意ください。
あなたのIP 仮のドメイン
スマートフォンで確認ができない・・
スマートフォンで確認ができないとお嘆きの方・・以前紹介したか下記を確認してください。。
スマートフォンで、hostsの設定を行いたい https://www.omakase.net/blog/2021/10/smartphone-hosts.html
さいごに
自分の作業環境にも使えますが、Movabletypeなど静的を生成するものの編集サーバーにも応用できるかと・・・FTPで転送など工夫は必要かと・・・
では・・・・