sonoma で XAMPP が他のPC から見えない時 ファイアーウォール

Sonoma Mac での、システム設定 > ネットワーク > ファイアーウォール は、ほかのサーバーなどでの FirewallD とは違う。
Linax でのファイアーウォールは、ポートの開閉。
Sonoma Mac でのファイアーウォールは ApplicationFirewall となり、アプリケーションへのアクセスを制限するようだ。

Sonoma Mac で、ファイアーウォールが「ON」で、XAMPP も利用する場合は、ほかの PC から httpd へアクセスできなくなる。OS をアップデートしても同様に突然アクセスできなくなるかもしれない。

mysqld, proftpd はリストに追加されるが、httpd は、「+」から「httpd」を追加する手間が必要。(2024.02.22時点)

あちこちに「httpd」があるのでどれで設定できたかわからない。たぶん、アプリケーション > XMPP> xamppfiles > bin > httpd

で、反映されないので、設定後に OS を再起動して反映させた。これに気づけないと迷宮入り、即時反映のコマンドも見つけられていない。

Chat GPT で調べたコマンドは以下

ファイアーウォールの状態を確認する:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw –getglobalstate
ファイアーウォールを有効にする:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw –setglobalstate on
ファイアーウォールを無効にする:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw –setglobalstate off
設定のリスト表示:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw –list
特定のアプリケーションを許可する例:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw –add /Path/To/Application.app
特定のポートを許可する例:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw –addport=8080-8090/tcp

mysqld は、ワードプレス、php の後ろ、local なので、許可しなくても、ワードプレスは表示できる。

Windows の XAMPP アンインストーラーがない時 ほか

Windows10 に XAMPPをインストールして、データベース の root ユーザにパスワードを設定したら、phpmyadmin にログインできなくなってしまった。root のパスワードを phpmyadmin から設定してしまったので、いっそ、XAMPP をインストールしなおそうとしたところ、uninstall.exe がない。

普段使用しているパソコンではなく、プレゼン用にノートパソコンへ新しいアカウントを作って作業していた。
アンインストールは、「cd C:\xampp」を削除した。
再インストールは、管理者アカウントで進めてみたら、やはり、メニューや、アンインストーラーが現れた。

そして、何かの都合でローカルサーバーが他所から見えてしまっても、データベースを自由に見えないようにパスワードを設定。

参考にさせていただきました。ありがとうございます。

https://www.javadrive.jp/xampp/mysql/index2.html

cd C:\xampp\mysql\bin\
mysqladmin -u root password

mysql -u root -pスペースなしで続けてパスワード

いつもの仮想での作業とは違って、Mac と Windows の2台で作業していると、

・スリープしてしまって作業しにくい。
・画面やキーボードが変わる。
・体の向きを変える必要がある。

ノートパソコンにはしたいけど、2台で作業するのはしんどそうだ。

intel Mac XAMPP アップデート php8.0.13 から php8.0.25

ローカルが php8.0.13 であることが原因なのか、レンタルサーバーで公開しているサイトの様子が少し違う。
そこで、ローカルの php8.0 を最新にしてみることにする。

1)アプリのダウンロード

php8.0.25 を使う
https://www.apachefriends.org/jp/download.html

2)バックアップ

45個のデータベースを一括でエクスポート。
ユーザーをエクスポート、表示されたテキストを拡張子.sqlのファイルに。「user.sql」

  • 複数ユーザのエクスポート、インポート 18K「user.sql」
  • 複数データベースのエクスポート、インポート 約170M「localhost.sql」

3)既存のXAMPPをアンインストール

XAMPP uninstall アプリを使う。アプリフォルダー「XAMPP」に同梱されている。

 

フォルダーやファイルが残る
XAMPP uninstall アプリが削除しなかったのは、
htdocs だけ残す。

4)新しい XAMPP をインストール

“xampp-osx-8.0.25-0-installer”は、開発元を検証できないため開けません。

システム環境設定>セキュリティとプライバシー>タブ:一般 にて操作

XAMPP Developer Files
Build files for development: include, man, docs and share folders.

これはチェックを外してインストールしない。

エラーなどなく、インストールできた。

5)設定

  1. phpmyadmin より ユーザ:root にパスワード設定
  2. config.inc.php の設定をいじる
  3. config.inc.php に自分のアクセス権をファインダーから与える
    $cfg[‘Servers’][$i][‘AllowNoPassword’] = true;

    $cfg[‘Servers’][$i][‘AllowNoPassword’] = false;
    $cfg[‘Servers’][$i][‘auth_type’] = ‘config’;

    $cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;
  4. ユーザをインポート
  5. データベースをインポート
    タイムアウトしてしまうので
    「php.ini」でアップロード容量を増やす
    max_execution_time 360
    upload_max_filesize 256M
    post_max_size 468M
    memory_limit 512M
    「config.inc.php」タイムアウトに関係する時間を増やす。
    「my.cnf」タイムアウトに関係する時間を増やす。
    XAMPP を再起動しても5分くらいで止まってしまう。
    インポート時の「PHP タイムアウト制限に近づいたことをスクリプトが検出した場合にインポートを中断できるようにします。 」を止める。
    データベース「pma」でエラーが起こる。「localhost.sql」から「pma」など失敗するデータベースのブロックをテキストエディタで削除する。

 

6.FTP アクセス権

ユーザ:daemon
パスワード:xampp

cd /Applications/XAMPP/xamppfiles/
sudo chown -R daemon:daemon htdocs

php 8.0.25 にできて、今までのローカルサイトのワードプレスも閲覧、作業できるようになった。

7.メモ

古い XAMPP の「htdocs」データは残しても問題ない。
データベースは残すことができるけれど、データベースユーザは残せない。
データベースユーザをインポートして、古いデータベースを使おうとすると、ワードプレスの初期設定画面から始まってしまった。何か簡単な方法があったかもしれない。
一括で複数のデータベース(今回は45個)をインポートしようとすると、容量、時間、既存データベースと衝突すなど、越えなければいけないハードルが複数出てきた。
アクセス解析やログを保存しているテーブルを空にしてみたけど60メガぐらいしか減らせなかった。

編集アプリからアクセスできて、ウェブサーバのデータとして閲覧もできて、phpのバージョンを簡単に変えられる環境が必要だ。

M1 mac のXAMPP を Intel Mac のXAMPPに移築

VM版ではない Mac の XAMPP

  1. ファイルの場所は同じなので普通にコピー
    ただし、ワードプレスで更新できるように権限を変える。
    cd /Applications/XAMPP/xamppfiles/
    sudo chown -R daemon:daemon htdocs
    その後、自分を「読み書き」で追加し、内包している項目に適用
  2. データベースは、
    データベースをエクスポート、テーブルではないところが肝心
    ユーザーをエクスポート、表示されたテキストを拡張子.sqlのファイルにして読み込めた。

一応、今のところ、ワードプレスの表示、ログインはできている。

アプリごとコピーすればよかったのかな?
いやいや起動情報とかあるからインストールより難しい話になるかな。

レンタルサーバーでは、root ユーザで操作する下記のような操作がないからレアなケースかな。サイトの移築とも違うし。
・複数ユーザのエクスポート、インポート
・複数データベースのエクスポート、インポート

XAMPP mac M1 Apple Silicon 現状

設定、状況

  • php8 バージョンにした。
  • proftpd は起動させるために エラー対策で、hosts に「127.0.0.1 ***noMac-mini.local」を追記。
  • IPv6でもローカルでしかみられないように、ファイアーウォールを「ON」
  • トップページから MySQL phpadmineにログインパスワード要求

操作

  • WordPress は更新、プラグイン、インストール可能
  • cgi パーミッション 操作可能

課題、困っていること

ファイアーウォールの設定のためか、WiFiでの接続ができず、ローカルでスマホを使ったチェックができていない。(PCブラウザのスマホモードで対応)
php8 WordPress プラグイン「search-regex」が存在するとエラーで進めなくなる。
(有効無効関係ない)
php7.4と切り替えができると良いが、php7.4のサポート期限が比較的近いので、php8で割り切る。

IPv6でローカルサーバが外部から丸見えになっていないかチェックと対策

IPv6の接続プランで、ルーターにもよるが、手元のパソコンが外から見える状態になることがある。ONU直結でIPv6接続であれば確実に見えるだろう。
ただし、相手がこちらのIPv6アドレスを知る必要がある。
ローカルでワードプレスなどをみられるようにApacheが起動していること前提。

見えるか確認

システム環境設定>ネットワーク>IPv6のアドレス
表示されているアドレスは、テキストとして選択、コピーが可能。
IPv4
http://192.168.101.33

IPv6(アドレスを[]で囲む)
http://[ここにあどれす]
ブラウザで確認する。手元のPCならみれるはず。

同じ環境の WiFiだと見えてしまうことがあるので、
スマホのキャリア回線で確認して、見えれば外部から確実に見える状態。

「詳細」をクリックすると、IPv6のアドレスがいくつかある。
タイミングの詳細は知らないが、これらのアドレスが、直近で使われたもの。

(上の画面で、「IPv6の設定」を「リンクローカルのみ」でも外部からは見えなくなる。外への接続もIPv6ではなくなる。)

見えないようにする。

システム環境設定>セキュリティとプライバシー>ファイアーウォール
ファイアーウォールを「ON」として、さらに「詳細」で、ブロックが設定されているか確認。最初に確認したときは、httpd がブロックされていなかった。

見えるか確認してみる。

Windows はファイアーウォールがデフォルトで効いているようだけれでども、Mac の場合は、デフォルトで On になっていない。

近いうちに、httpd まわりのない状態でOSが提供されるようになると、どこかで知ったが、こういった流れを組んでということかしら。

IPv6 にしたらローカル環境に差が出るXAMPP mac版

IPv6 にすると外部から直接端末にアクセスできるようになる。
ということで、Mac の、システム環境設定>セキュリティとプライバシー>ファイアーウォール ON

で、この状態で外部からIPv6 のアドレスで、アクセスしてみると、Mac は無反応になるが、
mac のデフォルトのApacheも見えなくなる)あれ、見える。自動起動しないようにする。

XAMPP は見えてしまう。
XAMPP のトップページには、データベースへの入り口もある。

とりあえず、.htaccess へ追記「Require local」とする。

M1 Apple Silicon XAMPPを導入

今までは、MySQLをインストールして、ローカル環境を整えていたけれども、phpのバージョンを変えたりしたかったので、XAMPP を使い始めていた。
M1 Apple Silicon の機材が手に入ってので、改めて、XAMPP を設定。

php -v
WARNING: PHP is not recommended
PHP is included in macOS for compatibility with legacy software.
Future versions of macOS will not include PHP.
PHP 7.3.24-(to be removed in future macOS) (cli) (built: Nov 23 2020 06:45:14) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.24, Copyright (c) 1998-2018 Zend Technologies

将来アップデートで削除されるとのこと

XAMPP M1 Apple Silicon

2021.01.20(19)リリースのphp7.4.14バージョン をダウンロードしてみる
xampp-osx-7.4.14-0-installer.dmg
ProFTPを起動しようとすると、再起動になってしまう。

xampp-osx-7.4.14-0-installer.dmg で動作確認
vm がつかないバージョン。

Apache configuration file: /Applications/XAMPP/xamppfiles/etc/httpd.conf, /Applications/XAMPP/xamppfiles/etc/extra/httpd-xampp.conf
PHP configuration file: /Applications/XAMPP/xamppfiles/etc/php.ini
MySQL configuration file: /Applications/XAMPP/xamppfiles/etc/my.cnf
ProFTPD configuration file: /Applications/XAMPP/xamppfiles/etc/proftpd.conf

prohtpd.conf
アクセス権の変更
<Limit SITE_CHMOD>
# DenyAll
AllowAll
</Limit>

ワードプレスや、プラグインの更新ができるように

cd /Applications/XAMPP/xamppfiles/
sudo chown -R daemon:daemon htdocs

Finder で自分のアクセス権も追加して、内包しているファイルにも適用。

(daemon を自分のユーザ名にしてみたが、MySQLでもdaemon が使われているようで、XAMPP のServer Event に赤い文字が出たのでやめた。)

FireFox でhttps接続になって表示できない M1 Apple Silicon

下記の関連ドメインを削除
履歴の削除
/Users/ユーザ名/Library/Application Support/Firefox/Profiles/0yukulfc.default-release
.htaccess に下記を記載 ローカルフォルダと、公開しているドメインのサイトルート
Header set Strict-Transport-Security “max-age=0;”

2021.01.28追記

/Applications/XAMPP/xamppfiles/etc/httpd.conf
以下
コメントアウト
#LoadModule ssl_module modules/mod_ssl.so

#<IfModule ssl_module>
#SSLRandomSeed startup builtin
#SSLRandomSeed connect builtin
#</IfModule>

XAMPP で容量を増やす

https://www.apachefriends.org/jp/faq_stackman.html

How do I increase the size of the XAMPP-VM disk?

インストール直後はだめと書いてある。少なくとも1回は起動していないといけない。

50G 増やせた。