投稿

FreeBSDにgsutil(google-cloud-sdk)をインストール

CentOSからFreeBSDに変更して、Google Cloud Storageにアクセスするためにgsutilをインストールしようとしているときの覚書。 環境: FreeBSD 14.1 pkg経由で「google-cloud-sdk」をインストールすればgsutilが含まれている。 # pkg search google-cloud # pkg install google-cloud-sdk (bashrc) source /usr/local/google-cloud-sdk/completion.bash.inc (zshrc)  source /usr/local/google-cloud-sdk/completion.zsh.inc google-cloud-sdk-471.0.0がインストールされた。 bashrcに追記しろと表示されるが、bashrcは作ってないのでbash_profileに追記する。 # less .bash_profile source /usr/local/google-cloud-sdk/completion.bash.inc 読み込んでgsutilを実行してみる。 # source .bash_profile # gsutil --version エラー Traceback (most recent call last):   File "/usr/local/bin/../google-cloud-sdk/bin/bootstrapping/gsutil.py", line 15, in <module>     import bootstrapping   File "/usr/local/google-cloud-sdk/bin/bootstrapping/bootstrapping.py", line 45, in <module>     from googlecloudsdk.core import config   File "/usr/local/google-cloud-sdk/lib/googlecloudsdk/core/config.py", line 25...

さくらメールボックスのメーリングリストでsummaryがデコードされていない

さくらメールボックスのメーリングリストに投稿したメールが「届いていないよ?」と言われたので調査しているときの覚書。 環境: fml 4.0 STABLE (20040215/4.0.4_BETA)(←メールヘッダーに記載)。 状況整理 メーリングリストのメンバー外のメールアドレスから送信 添付ファイルあり 送信失敗の返信は(たぶん)なし 管理者メールにも送信失敗などのシステムからメールは届いていない 結局他のメンバーには届いているので、おそらく個別の問題だと思う。 以下はいろいろやっているときの覚書。 メーリングリストfmlの使い方 さくらのメーリングリストはfmlというソフトを使っている。 "fml" mailing list server/manager package ml@hoge.jpというメーリングリストを作ったらml-ctl@hoge.jpというコマンド用メールアドレスも自動で追加される。 コマンド用メールアドレスの使い方はhelpというコマンドを本文に書いておくれば、日本語で使い方の例がメールで送られてくる。 宛先: ml-ctl@hoge.jp 本文: help メールの一覧を取得するときはsummaryコマンドを送る。 送信日時と件名の一覧が送られてくる。 宛先: ml-ctl@hoge.jp 本文: summary しかしBASE64でエンコードされている生のデータで送られてきた。 日本語が文字化けしているような状態。 例えば次のような感じ。 24/04/08 08:48:52 [1:suganuma@webrec] =?UTF-8?B?44CQ5Yy744Kz44Oz5Z+8546J55yM5pSv6YOo44CR44Oh44O844Oq44Oz44Kw44Oq44K5?=  =?UTF-8?B?44OI6Kit5a6a5a6M5LqG5aCx5ZGK?= 日本語に変換する場合はBASE64でデコードする。 メールの件名なので「=?UTF-8?B?」部分以外をBASE64でデコードする。 「=?UTF-8?B?」付きでもデコードしてくれるサイトがあった。 参考:  メール件名 デコード | 黒川 仁のポートフォリオ BASE64とは? 64種類の英数字だけでエンコードする方式。 電子メールのMIMEに規定されている...

病院の施設基準を自動更新するには?

病院ホームページに掲載している施設基準を自動更新する仕組みにできないかと調べているときの覚書。 施設基準の届け出先は病院の所在地を管轄する地方厚生局(厚生労働省の地方支分部局)に提出する。 データは各地方厚生局のホームページからエクセル形式でダウンロード可能。 参考:  厚生労働省の地方厚生(支)局一覧 関東信越厚生局はzip形式でアーカイブされている。 参考:  保険医療機関・保険薬局の施設基準の届出受理状況及び保険外併用療養費医療機関一覧 フォーマットは各地方厚生局により違う。 データベースに取り込むためには各フォーマットに合わせてプログラミングする必要がある。 地方厚生局は全部で8つ。 データベースのカラムとエクセルの列番号を紐づける設定ファイルを用意する形にすれば、そこまで大変ではない気がする。 まずは毎月手動でエクセルファイルをダウンロードして取り込みプログラムを実行する。 そのうちダウンロードも自動化するようにしたい。 また医療DXで政府が医療情報をデータベース化して、外部からも参照できる仕組みを構想しているみたい。 参考:  医療DX推進本部|内閣官房ホームページ 【関連記事】 RESASのAPIを調査 ハローワークAPIで求人情報検索 人口メッシュ統計を作成するには

FreeBSDの環境にPython 3.11をインストール

バッチ処理が遅いなと思ったので、python3.11をインストールしてみたときの覚書。 環境: FreeBSD 14.1-RELEASE, Python 3.9.18 1. 現在のPythonの環境を確認。 Pythonのバージョン。 # python3.9 --version Python 3.9.18 Python 3.9向けにインストールされたパッケージ確認。 Python 3.9ではpipをインストールせずpkg経由で管理する方針だった。 # pkg info | grep py39 py39-aioquic-0.9.25           py39-anyio-4.3.0              py39-async_generator-1.10     py39-attrs-23.2.0             py39-certifi-2024.2.2         py39-cffi-1.16.0              py39-charset-normalizer-3.3.2 py39-clang-11.0               py39-cryptography-42.0.5_1,1  py39-dnspython-2.6.1,1        py39-exceptiongroup-1.2.0     py39-h11-0.14.0               py39-h2-4.1.0                 py39-hp...

FreeBSDのディスク容量とパーティション確認。ConohaのOS選択で同一名称がある理由。

Conoha VPSを使っているときに「あれ?100Gあるはずなのにもう容量がいっぱいになったぞ?」と思ったときの覚書。 環境: Conoha VPS 8GBプラン, FreeBSD 14.1 ディスク容量確認。 # df -h Filesystem      Size    Used   Avail Capacity  Mounted on /dev/vtbd0p2     27G     22G    2.5G    90%    / devfs           1.0K      0B    1.0K     0%    /dev 27Gしかマウントされていない。 ファイルシステム確認。 # mount /dev/vtbd0p2 on / (ufs, local, soft-updates, journaled soft-updates) devfs on /dev (devfs) パーティション確認。 # gpart show =>      40  62914480  vtbd0  GPT  (100G) [CORRUPT]         40      1024      1  freebsd-boot  (512K)       1064  58719232      2  freebsd-ufs  (28G)   58720296   3145728      3  freebsd-swap  (1.5G)   6...

FreeBSD14にPostgreSQL+pgAdmin4をインストール

開発環境のローカル仮想マシンにPostgreSQLをインストールしたときの覚書。 環境: FreeBSD 14.1, Python 3.9.18, PostgreSQL 15.6 1. PostgreSQL Serverをインストール pkgからインストールする。 最初はpostgresql16-serverをインストールしたけど、py39-psycopgをインストールしたときにpostgresql15へ置き換えようとするので、postgresql15-serverをインストールし直した。 # pkg search postgresql # pkg search -f postgresql15-server # pkg install postgresql15-server 画面に表示された通りに実行。 # sysrc postgresql_enable=yes # service postgresql initdb # service postgresql start データの置き場所などを起動スクリプトで確認。 # less /usr/local/etc/rc.d/postgresql postgresユーザーになって確認する。 # su - postgres # pwd /var/db/postgres ユーザー一覧とデータベース一覧表示。 $ psql postgres=# \du postgres=# \l 2. PostgreSQLの文字セット(エンコーディング)を設定 日本語を扱う場合は、ja_JPをを設定してあげないと正しく並び替えできない。 前の記事を参考にする。 参考:  PostgresSQLの言語設定(locale)をja_JPにする OSで提供している言語地域(ロケール)を確認。 # locale -a 「ja_JP.UTF-8」があるのを確認。 PostgreSQLの設定変更。 # su - postgres $ less data15/postgresql.conf lc_messages = 'C.UTF-8'               ...

PHP8からMariaDBへUnix Socketで接続する設定

FreeBSDのMariaDBへphpからUnix socketで接続できるようにしたときの覚書。 環境: FreeBSD 14.0, MariaDB 15.1, PHP 8.3.6 (FreeBSDの)PHPで接続先を「localhost」に設定すると、Unix socketを参照しようとする。 「127.0.0.1」すればTCP経由で接続するけど、せっかくなのでTCPを無効にして、Unix socketだけで待ち受けするようにしてみた。 TCPを無効にするには公式サイトを参考に。 参考:  Configuring MariaDB for Remote Client Access - MariaDB Knowledge Base まずは待ち受け中のポート確認。 # netstat -an -p tcp MariaDBの設定ファイル編集。 「port」をコメントアウトする。 # cd /usr/local/etc/mysql/ # less my.cnf [client-server] #port   = 3306 socket  = /var/run/mysql/mysql.sock 「bind-address」をコメントアウトして、「skip-networking」 「skip-bind-address」 を追記する。 「skip-bind-address」は不要だと後で知った。 # less conf.d/server.cnf [mysqld] user                            = mysql # port                          = 3306 # inherited from /usr/local/etc/mysql/my.cnf # socket                  ...

FreeBSD14にApache+SubversionをインストールしてNginxからリバースプロキシ

Subversionの容量が増えてきたので、複数サーバーにSubversionをインストールしてリポジトリを分けようとしているときの覚書。 環境: FreeBSD 14.0, Apache 2.4.59, Subversion 1.14.3 1. Apacheをインストール pkg経由でインストール。 # pkg search apache # pkg install apache24 ビルドオプションを確認。 # apachectl -V Server version: Apache/2.4.59 (FreeBSD) Server built:   unknown Server's Module Magic Number: 20120211:131 Server loaded:  APR 1.7.3, APR-UTIL 1.6.3, PCRE 10.43 2024-02-16 Compiled using: APR 1.7.3, APR-UTIL 1.6.3, PCRE 10.43 2024-02-16 Architecture:   64-bit Server MPM:     prefork   threaded:     no     forked:     yes (variable process count) Server compiled with....  -D APR_HAS_SENDFILE  -D APR_HAS_MMAP  -D APR_HAVE_IPV6 (IPv4-mapped addresses disabled)  -D APR_USE_FLOCK_SERIALIZE  -D APR_USE_PTHREAD_SERIALIZE  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT  -D APR_HAS_OTHER_CHILD  -D AP_HAVE_RELIABLE_PIPED_LOGS  -D DYNAMIC_MODULE_...

FreeBSD 14 + Nginx + PHP + MariaDB + Postfixの環境を構築(2024年版)

ConohaでFreeBSDの仮想マシンを設定しているときの覚書。 環境: Conoha VPS 8GBプラン, FreeBSD 14.0 目次 初期設定 Nginxをインストール php8.3をインストール MariaDBをインストール phpMyAdminをインストール SSL設定 Postfix + DKIM(送信ドメイン認証)をインストール 次回取り込む設定(2025/08/27更新) FreeBSD14 + PHP8.3 + OPcache FreeBSD14 + Nginx + fail2banで不正なアクセスを自動ブロック FreeBSDのNginxをportsでビルド → 本番環境はダウンタイムなしで切り替える NginxのVTSモジュール でパフォーマンス分析(Netdataのインストールは失敗) コントロールパネルでPTRレコード(IPアドレスからの逆引きDNS)を設定する。 メールを送信するサーバーの評価(レピュテーション)を高める重要設定。 1.初期設定 keymapが日本語になっているので英語キーボードへ変更する。 管理画面のコンソールから設定する(keymap="jp"をコメントアウト)。 # less /etc/rc.conf #keymap="jp" あとはSSHでログイン。 FreeBSDのシステムアップデート。 # freebsd-update fetch # freebsd-update install パッケージマネージャをアップデート。 インストール済みパッケージを確認。 # pkg update # pkg upgrade # pkg info Timezone確認。 # date 時刻があってなければタイムゾーンを設定。 # bsdconfig シェルを確認してBashをインストール。 # echo $SHELL # pkg search bash # pkg install bash bash-completion 画面の指示通りにする。 ログインシェルなので.bashrcでなくて.bash_profileに記述する。 # vi .bash_profile bashに切り替えてデフォルトをBashにする。 # bash # chsh -s /usr/local/...

FreeBSD + Nginx + PHP + MariaDBの環境を構築

ローカルの仮想マシンにウェブ開発環境を設定しているときの覚書。 初期設定は前の記事を参考に。 参考:  FreeBSD13.1の仮想マシンをインストールして初期設定 環境: FreeBSD 14.0 OSのバージョン確認 # freebsd-version 14.0-RELEASE-p6 インストール済みのパッケージ情報を表示。 # pkg info 自動起動するサービスはbsdconfigが一覧で分かりやすい。 # bsdconfig 1.nginxのインストール 公式リポジトリを検索。 # pkg search nginx インストールしてconfの場所などビルドオプション確認。 # pkg install nginx # nginx -V nginx version: nginx/1.24.0 built with OpenSSL 3.0.12 24 Oct 2023 TLS SNI support enabled configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/error.log --user=www --group=www ... 自動起動ON、起動、確認。 # service nginx enable # service nginx start # service nginx status 設定ファイルを編集。 # cd /usr/local/etc/nginx/ # less nginx.conf worker_processes  auto; events {     worker_connections  1024; } http {     include      ...