どうもいつも忘れがちなので書いておく。
$ cat ~/.gitconfig
[http]
proxy = http://USERNAME:PASSWORD@10.1.1.1:8080
どうもいつも忘れがちなので書いておく。
$ cat ~/.gitconfig
[http]
proxy = http://USERNAME:PASSWORD@10.1.1.1:8080
SKYSEA Client View 10.2というのがあって、まあ、企業で必要とするロギングはできるものなのであろう。ただ、Firefoxのアドオンを勝手に追加されるのは気に入らない。e10sとか阻害されても面白くないし。 と言うことで、試しに排除できるかやってみた。
SKYSEA Client View 10.2がFirefoxに対して何をしているかは、C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions.ini
を見ると分かる。以下のようにExtension5の行が強制的に追加される。
[ExtensionDirs]
Extension0=C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions\itsalltext@docwhat.gerf.org
Extension1=C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions\{e968fc70-8f95-4ab9-9e79-304de2a71ee1}.xpi
Extension2=C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions\{8f8fe09b-0bd3-4470-bc1b-8cad42b8203a}
Extension3=C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions\{ad0d925d-88f8-47f1-85ea-8463569e756e}.xpi
Extension4=C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions\{53A03D43-5363-4669-8190-99061B2DEBA5}.xpi
Extension5=C:\Program Files\Sky Product\SKYSEA Client View\FxAddon
[MultiprocessIncompatibleExtensions]
Extension0=itsalltext@docwhat.gerf.org
Extension1={e968fc70-8f95-4ab9-9e79-304de2a71ee1}
Extension2={8f8fe09b-0bd3-4470-bc1b-8cad42b8203a}
Extension3={ad0d925d-88f8-47f1-85ea-8463569e756e}
Extension4={53A03D43-5363-4669-8190-99061B2DEBA5}
Extension5={3c255b38-0b4a-4c6e-b3d8-ab21d4a55eb3}
[ThemeDirs]
Extension0=C:\Program Files\Mozilla Firefox\browser\extensions\{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
アドオンをどのディレクトリーから読み込むかを制限することができる。
C:\Users\userID\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\prefs.js
で設定する。
詳細は、Mozillaの説明によると、
とりあえずuser_pref("extensions.enabledScopes", 0);
を追加しておけば、SKYSEA Client View 10.2のディレクトリーに存在するアドオンは読み込まれない。
まあ、自分だけモニタリングされていないと目立つので、こんなことはしない方が良いだろう。
nginxとphp-fpmでサブディレクトリーで動かす話なのだが、 Mantis BTに限らず、PHPなウェブアプリケーションは何であっても同じような話になるような気がする。 しかし、Mantis BTしか確かめていない。
ここでは、http://example.com/its/ のようなURLで動かす例を示す。
http {
upstream php-handler {
server 127.0.0.1:9000;
}
(snip)
server{
(snip)
# Mantis BT
location ^~ /its {
alias /usr/pkg/share/mantis;
index index.php index.html;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass php-handler;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
}
}
Mantis BTは、/usr/pkgsrc/devel/mantisから、1.3.1を導入してある。
Mantis BTは、ユーザー認証をLDAPの情報を使って行なえるようになっている。 とある事情でActive DirectoryのLDAPの情報を使ってユーザー認証をしたい機会があったので、その設定を書いておく。 しかし、Admin Guideには、一般的なLDAPについて書かれているので、ちゃんと読まないとActive Directoryで使えるようにならない。
残念ながら、私はLDAPにもMantis BTにもさほど詳しい訳ではないので、最適解ではないかもしれないが、動く例として記載しておく。
Mantis BTは、pkgsrc/devel/mantisから導入したMantis BT 1.3.1であり、/usr/pkg/share/mantis 以下に配置されている。LDAP機能を使うため、pkgsrc/databases/php-ldapも追加でインストールしている。
まず最初にやらないといけないのは、Active Directory認証に移行した後に使う管理者ユーザーの追加である。 Mantis BTのインストールをしたばかりの状態では、ユーザーID/パスワード = administrator/root でログインできる。ここで、Active Directoryに登録されているユーザーを管理者として登録しておく。 Active Directory認証を有効化した後には、administratorユーザーでログインすることはできないので、先に管理者ユーザーを作っておく必要がある。
Active Directoryについては、以下のような情報が与えられている。
これらに対して、/usr/pkg/share/mantis/config/config_inc.php の末尾に、以下のように追加する。
$g_login_method = LDAP;
$g_ldap_server = 'tetera-ad.tetera.org';
$g_ldap_port = '3268';
$g_ldap_root_dn = 'dc=tetera,dc=org';
$g_ldap_organization = '';
$g_ldap_uid_field = 'sAMAccountName';
$g_ldap_bind_dn = 'aduser@tetera.org';
$g_ldap_bind_passwd = 'aduser_password';
$g_use_ldap_email = OFF;
$g_use_ldap_realname = OFF;
$g_show_realname = OFF;
$g_ldap_protocol_version = 3;
$g_allow_signup = OFF;
$g_lost_password_feature = OFF;
$g_ldap_follow_referrals = OFF;
$g_use_ldap_realname = ON;
にすることで、cnをユーザーの名称として使うことができるはずである。
しかし、今回の環境では、sAMAccountNameとcnは一緒なので、OFFにして各ユーザーが設定するようにした。
Google Mapsには、Google Maps Static API というものがあって、パラメーターを渡すと、PNG画像を返してくれる。 これを散布図グラフの背景に設定すれば、地図上に散布図で示した情報をマッピングできるので、便利である。 しかし、Google Static Mapsは、例えばイントラネットに閉じたサービスでは使用できない。 Open Street Mapは、Creative Commons Attribution-ShareAlike 2.0 Genericでライセンスされているので、 このような環境でも使用できるのだが、tile.openstreetmap.orgのAPIは、 Google Static Maps APIとは指定の方法が違うようで、Google Static Maps用のパラメーター計算の方法がそのまま使えない。
調べてみると、staticmapliteというのが、Google Static Maps APIに類似のAPIで、 tile.openstreetmap.orgから画像を取得できるようだ。 特にズームの値の指定が一緒なのが大変助かる。 しかし、インストール方法も書かれていないのが難点だった。
後からよく調べてみると、 staticMapLiteExtと言うものもあって、こちらの方が高機能であるようだ。しかもインストール方法もちゃんと書かれている。 新規で導入するのであれば、こちらの方が良いかもしれない。
今回は、nginxとphp-fpmを使って動かすことにしたため、 pkgsrc/www/nginxと pkgsrc/www/php-fpm、 pkgsrc/www/php-curl、 pkgsrc/graphics/php-gd、 をインストールしておく。私の場合は、既にnginxでウェブサイトを構築しているため、新規にインストールはしなかった。 導入したPHPは、5.6.25である。 php-curlとphp-gdは、staticmapliteの動作に必要である。
php-fpmは、localhostからのみ接続できるように、/usr/pkg/etc/php-fpm.confに
listen.allowed_clients = 127.0.0.1
を追加した。
以下のような設定を/usr/pkg/etc/nginx/nginx.confに追加した。
http {
upstream php-handler {
server 127.0.0.1:9000;
}
}
server {
location /osm-staticmap/staticmaplite {
root /home/YOUR_NAME/osm;
}
location ~ ^(.+?\.php)(/.*)?$ {
root /home/YOUR_NAME/osm;
try_files $1 =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_pass php-handler;
}
}
このように設定した上で、php-fpmとnginxをrestartさせておく。
staticmapliteは~/osm/osm-staticmap/staticmaplite/staticmaplite.php
として配置するので、
以下のようにgithubからcloneしておく。
$ mkdir -p ~/osm/osm-staticmap
$ cd ~/osm/osm-staticmap
$ git clone git@github.com:dfacts/staticmaplite.git
https://deuterium.ryoon.net/osm-staticmap/staticmaplite/のように表示されたら、正常に使用開始できている。
標準ではエラーメッセージが表示されないので、動作確認中は、以下のように変更しておくと良いかもしれない。
diff --git a/staticmap.php b/staticmap.php
index a9855e5..118c399 100644
--- a/staticmap.php
+++ b/staticmap.php
@@ -25,8 +25,8 @@
*
*/
-error_reporting(0);
-ini_set('display_errors', 'off');
+error_reporting(1);
+ini_set('display_errors', 'on');
Class staticMapLite
{
標準では、「(c) OpenStreetMap contributors」ではないので、使いにくい。 osm_logo.pngを置き換えてやれば良い。 画像の右下同士を合わせるので、ピクセル数を変えてもstaticmaplite.php等の変更は必要ない。
イントラネットからインターネットに出るのに、HTTPプロキシーサーバーを経由しないといけない場合もあると思う。 staticmapliteは、php-curlを使っているので、curl_setoptのCURLOPT_HTTPPROXYTUNNEL等を設定してやれば良い。 例えば、認証が必要なHTTPプロキシーサーバーを経由する場合には、以下のようにする。
diff --git a/staticmap.php b/staticmap.php
index a9855e5..4851575 100644
--- a/staticmap.php
+++ b/staticmap.php
@@ -339,6 +345,12 @@ Class staticMapLite
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0");
curl_setopt($ch, CURLOPT_URL, $url);
+ curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
+ curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
+ curl_setopt($ch, CURLOPT_PROXYPORT, '8080');
+ curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
+ curl_setopt($ch, CURLOPT_PROXY, 'http://PROXYSERVER');
+ curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'USERNAME:PASSWORD');
$tile = curl_exec($ch);
curl_close($ch);
if ($tile && $this->useTileCache) {
jwmでのタスクバーの時刻表示を24時間制にするで、24時間制で時刻を表示するようにしたが、使っていると日付も表示して欲しいと思うようになった。以下のように変更することで、2016-08-18 21:36のように表示できた。
--- /usr/pkg/share/examples/jwm/system.jwmrc 2016-08-05 00:30:50.000000000 +0900
+++ .jwmrc 2016-08-18 21:27:42.149972917 +0900
@@ -58,7 +58,7 @@
<TaskList maxwidth="256"/>
<Dock/>
- <Clock><Button mask="123">exec:xclock</Button></Clock>
+ <Clock format="%Y-%m-%d %R"><Button mask="123">exec:xclock</Button></Clock>
</Tray>
uim-skkとibus-skkをきまぐれに行き来して使っているのだが、 操作性としては、Ctrj-jの動作がより自然なisus-skk 1.4.2が使いやすい。 しかし、細かい入力規則の設定方法が分からず、クエスチョンマークやコロン等が全角で入力されてしまうのを放置していて、非常に面倒だった。
ふと、/usr/pkg/share/libskk/rules ディレクトリーを見ると、libskkの設定ファイルを書くことで変更できるようなので、やってみた。
しかし、入力規則は、Defaultを変更は一般ユーザー権限ではできず、自分独自の入力規則を作成することで、カスタマイズするらしい。 以下のように操作して、記号類を半角にできた。
$ mkdir ~/.config/libskk/rules $ cd ~/.config/libskk/rules $ cp -r /usr/pkg/share/libskk/rules/default hankakusymbols $ vi metadata.json $ diff -u /usr/pkg/share/libskk/rules/default/metadata.json metadata.json --- /usr/pkg/share/libskk/rules/default/metadata.json 2016-08-05 05:24:16.000000000 +0900 +++ metadata.json 2016-08-13 08:20:46.044465179 +0900 @@ -1,4 +1,4 @@ { - "name": "Default", - "description": "Default typing rule" + "name": "Hankaku Symbols", + "description": "Default typing rule with hankaku symbols" } $ vi rom-kana/default.json $ diff -u /usr/pkg/share/libskk/rules/default/rom-kana/default.json rom-kana/default.json --- /usr/pkg/share/libskk/rules/default/rom-kana/default.json 2016-08-05 05:24:16.000000000 +0900 +++ rom-kana/default.json 2016-08-13 08:21:47.733380728 +0900 @@ -232,9 +232,9 @@ "zyo": ["", "じょ" ], "zyu": ["", "じゅ" ], "-": ["", "ー" ], - ":": ["", ":" ], - ";": ["", ";" ], - "?": ["", "?" ], + ":": ["", ":" ], + ";": ["", ";" ], + "?": ["", "?" ], "[": ["", "「" ], "]": ["", "」" ] }
これでより快適に生活できるようになった。
この記事は、 NetBSD Advent Calendar 2024 の25日目の記事です。 はじめに NeoCities というウェブサイトのホスティングサービスがあります。 クラシックな感じな静的なファイルをホスティングしてくれるサービスですが、さすが...