このページについて

いわゆるBlog的なページですが、

・極端にパーソナルなことは書かない方針です(ご飯くらいは書くかも)

・OS、CMSネタなども掲載しますが、取りまとめた内容はなるべく別個記事にするか、同人誌に取りまとめる予定です。

・なので技術よりの内容に関しては書いた時点の情報であり、最新化されていない場合があるのでその点をご了承下さい。

極北別世界通信

極北別世界通信

Shirasagiの扱いが難しい

まぁRubyやらRailsやらからっきしなのでアレですが。

今回のはRuby関係ないですが。

Shirasagiの常時SSL化をNginxのリバースプロキシ下でやろうとしてハマった話。

インターネット(SSL)⇒Nginx ⇒(ここから先http)(別Serverの)Nginx ⇒ Shirasagi(Unicorn?)

という構成で、公開サイトをsslで表示するのはすぐにできたんですが、管理画面ログインがうまくいかなくて困った。

 

フロント側のNginxのプロキシ(ヘッダー)設定を

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-Proto https;

バックエンド側のNginxはShirasagiインストール時に生成されてるんだけど、

#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-For "$http_x_forwarded_for, $realip_remote_addr";

に書き換えてみた。

ようはフロントで

proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-Proto https;

して、バックエンドで

proxy_set_header X-Forwarded-Proto $scheme;

することでうまくいくらしい。

なおバックエンド側に追記したのは

フロント側で

proxy_set_header X-Forwarded-For $remote_addr;

しておいてバックエンド側で書き換えた

proxy_set_header X-Forwarded-For "$http_x_forwarded_for, $realip_remote_addr";

でアクセス元のIPを取ろうという記述、、、のはず。

Nginx触り始めて1週間でググりまくった結果なのでまたこつこつ調べないといけませんね。

0

F-Revo CRM patch適用とPHP7.2化

雑ですが忘れないようメモ

・F-Revo CRMをインストール

無印?版はphp5.6でしか動かないのでオフィシャルなどにある手順通りインストール

https://f-revocrm.jp/2018/08/8273

パッチ3の適用まで書いてありますが、さらに今はパッチ4、5、6、6_1までリリースされていますので、すべて適用します。

基本的にアーカイブを展開してディレクトリごと上書きするだけです。

また、前の記事で書いた includes/main/WebUI.php

がパッチ6で上書きされるので、修正しなおしを忘れないようにしましょう。

パッチ6がphp7対応バージョンとのことなので、合わせてphpを7.2に更新します。
一応apacheとか止めておいたほうが無難なのかな?当方は仮想マシンで丸ごとバックアップしていたのであんまり考えずに実行してしまいましたが。

yum install --disablerepo=base --enablerepo=epel,remi,remi-safe,remi-php72 php php-gd php-mysqlnd php-imap php-mbstring php-devel php-mcrypt php-xml php-opcache

用心でphp.iniとかもバックアップしてましたが、特に何も変更せずとも大丈夫でした。

これでphp7.2環境になりました。

時間が取れそうならもう少し丁寧に書きます。。。

0

F-revo CRM リバースプロキシ関連のTips

F-revo CRMをNginxのリバースプロキシの背後に置くとRefererを見られてうまく動いてくれない。

本来ならgetコマンドでRefererを取って反映、とかやるのが正しいのだろうけど、とりいそぎコード変更してみた。

どうなんだろ、一応開発元に質問したりしてみてもいいもんなんだろうか。

なお前提としてNginxでのリバースプロキシは構築済みで、nginx側でのSSL化も済んでる前提です。

■事前:

crm/config.inc.phpの「$site_URL」を以下のように設定

$site_URL = 'http://【サーバのIPアドレス】/crm/';

■以下のように変更

# vi crm/config.inc.php

$site_URL = 'https://【SSL証明書を取得したドメイン名】/crm/';

# vi crm/includes/main/WebUI.php

// if ($site_URL && stripos($request_URL, $site_URL) !== 0){
// header("Location: $site_URL",TRUE,301);
// exit;
// }

ただ、これRequest URLとSite URLが正しくないと接続を許可しないってセキュリティ面を担保する設定のような気がするので、そもそもOFFにするのがいいのかといわれるとちょっと。。という感じ。

一応ログ等見ながら様子見。

。。。あれ、パッチどこまで適用してたっけ。。ちょっと確認しないと。

0

Nginx リバースプロキシ&SSL設定のTIPS

基本的なインストールやら導入は(暇があったら書きますが)、とりあえずたくさん記事があるので放置して、ハマリかけたとこだけ

SSL設定で

dhparam.pem

がないと怒られる。

# nginx -t
nginx: [emerg] BIO_new_file("/etc/ssl/certs/dhparam.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/ssl/certs/dhparam.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)

まぁネット上のConfigパクってて設定もしてないほうが悪いんですが、Nginxは今のVersionだとdhparam.pemがないといけないらしいので注意。

んで

# openssl dhparam 2048 -out /etc/ssl/certs/dhparam.pem
Generating DH parameters, 2048 bit long safe prime, generator 2

完了まで時間がかかる。

そのあと

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

正常にとりあえずはなったのでメモ

0

NextCloudとリバースプロキシ

他に書く場所も確保していないのと、せっかくの構築関連のTIPS的なやつなのでここにメモがてら。

自宅で古めのサーバにNextCloudを構築して使っているが、自宅にいくつもサーバを立てていると、外部から接続させるときのポートフォワーディング設定などが煩わしい

うっかり開けた穴を閉じ忘れてるなどもあるかもしれないので、思い切ってやり方を変えることにした。

基本的に自宅で構築するものはWeb系のものが多い。なのでいっそ全部リバースプロキシで受けて増やしたり減らしたりする際にはリバースプロキシ側で制御すればいいんじゃん?と考えたわけである。

。。。が、本編のリバースプロキシ構築に入る前に、NextCloudを現在Let's Encryptを使ってhttpsで外部からつながるように設定しているのだが、ローカル側は常にhttpで構築するように変更しようと考えたところなぜかNextCloudにhttp経由の場合ログインができない状態に陥った。

色々調べてみると、どうもphpのセッションが格納されるディレクトリの権限の問題と判明。

当方の場合CentOSでインストールしているのだが、/var/lib/php の権限の問題で、/var/lib/php/session配下に生成されるセッション管理ファイルがうまく読み書きできない状態になる模様。

なので

chown -R apache:apache /var/lib/php

として、権限を変更し、無事httpでも正常にログインできるようになった。

このメモだけだとわかる人にしかわからないが、NextCloudをVersionUpしたり、CentOSでPHP 7.xをremiリポジトリからインストールしてると発生するケースがあるようなのでメモ。

 

0

サイト内コンテンツ

現在はローカルでの作業が主体ですが一応コンテンツをもう少し拡充させようと地味に努力中。

とりあえずはマイナーOSデータベースの再整理を進めてます。昔ダウンロードしたものが現状、サイトごと消えてたりするかと思えば、一応ソースコードだけはまだsourceforgeに残ってたりと様々です。

 

また、勢いでドカドカダウンロードしてたものが単なるLinuxのディストリビューションだったりすることもしばしば(そしてとっくの昔にプロジェクト自体は崩壊済みなのもしばしば)。

Linuxのディストリビューションは、DistroWatchなどの大手サイトもありますのでそれほど深堀りする気はありませんが一応、明確に区分はしておかないとと思って整理中です。

ただデータベースの項目名をどうするかは悩ましいところ。あんまり凝りすぎないほうがいいのかもしれませんが、情報量が少なすぎるのもと思ったり、そう思えばそもそも情報が全然なかったりと悩ましいです。

0

冬コミ終了

今回は惨敗中の惨敗です。
まぁ前々回あたりからろくな宣伝活動もできていないのは確かなので、もう少し活動をしていきたいと思います。

始めにfnowのサイト内のコンテンツをもう少し充実していかないと。。。

 

0

冬コミ

一応冬コミ出展予定ですが原稿がままならない状況。。

何かしらは出さないと次回が危うくなるので頑張りますが。

12/31 火曜日 南地区 リー20a「Fnow」になります。

0

グダりすぎているので

他のコンテンツは気が向くまで動かさずになるべくこのどうでもいい日記だけでもつけておくことにしよう。

なのでなんだかわからないメモが多くなるかもしれないけれどメモっておく癖付けないとなんとも。

 

・NextCloud

自宅用クラウドストレージとして構築完了。問題ないが速度面がやっぱりもっさりするね

・JPiere

どうやって使っていいのかさっぱりだ。時間かけて確認しないと。
自分が使うというわけではないがおおざっぱな枠組みでも理解しておきたい

・F-revo CRM

こちらも同上。まぁやはり「これどうやろ?」で入れてみただけなので時間かけてもいいので見てみる

・MOSP

フツーに使う分には十分なんだけど個人的には欲しい項目が足りないような。
3種に分かれてるけど見た感じは結局どれがメインなのかしら。人事は一番放置されてるように見える

・Shirasagi

これやJoruriあたりのRonRのGWをしっかり使いたいがうーん悩ましい。

・dnsmasq

ようやくローカルで使った。いいねこれ

・Lets's Encrypt

自宅サーバのhttps証明書は基本的にはこれ一択なはず
自動更新のしくみやらも難しくないし素晴らしいですね。いっそ全部自宅に引きこもってやろうかと思わなくもない

・DBまわり

超初歩の初歩はともかく原則コピペで済ませすぎてるんでSQL多少なり復習しようかとも思うんだけど。
SQLってほとんどやりたいことが自明なことが多いから日常的に業務で触るんでもない限り目的を
はっきりさせてググれば大体は答えがわかっちゃうのでいまのところは進んで復習してないないあ。

・LOOL

だっけ?OpenOfficeというかLibre Officeのサーバ版みたいの。もう少し詳しく調べてから

・「オープンソース、基本無料、ダウンロードもメアド登録しろや」みたいなやつ

いやオープンソースのプロダクトも商売やってたり開発者に還元されないと縮小しちゃうしいいんだけどなんか
オープンソースなのにそのフリーのコードなりをダウンロードする手段がすぐに見えるとこに無いのに
「オープンソースオープンソース」って呪文みたいに書いてあるうえにダウンロードするのにメアドやら連絡先
やら登録しなきゃいけないタイプのアレはなんかもにょる。

いやもちろんそれぞれの言い分もわかるしダメだとか言わないけどなんかもにょる。ほんとに。

0

冬向けの覚書

文章はWikipediaあるいはネット上記事のコピペ
あとで整理する 

 

■マイナーOS(新規)
・afros
⇒AFROS – Atari FReeオペレーティングシステム
プレインストールされたTOS互換のEmuTOS / FreeMiNT / fVDI / XaAESベースのオペレーティングシステムを作成するファイルセット

・GENODE/Sculpt
Genode は、フリーでオープンソースなオペレーティングシステムフレームワークであり、マイクロカーネル抽象化レイヤー とユーザースペースコンポーネントのコレクションで構成されている。 Genodeは、例えばUnixのようなプロプライエタリーなオペレーティングシステムから派生したのではない数少ないオペレーティングシステムの一つとして知られている。 特徴的な設計思想として、小さなTrusted computing base(英語版)(TCB)により、セキュリティーを指向したオペレーティングシステムであることを目指している。

・Sculpt
Genodeプロジェクトは、現代的な消費者向けノートPC [23] をターゲットとした「Sculpt」と呼ばれるデスクトップオペレーティングシステムをリリースしている。 Sculptは、自動的にデバイスの検出と設定をし、GUIのコントロールインターフェイスを持ち、Genodeパッケージングマネージャーへのフロントエンドを持つ小さなベースシステムである。 Sculptは完全なデスクトップ環境ではなく、ユーザーが完全なデスクトップ環境を利用するには、伝統的なOSを仮想マシンとして展開する必要がある。 Sculptは、Genodeオペレーティングシステムフレームワークとは特定のシステムのために静的に構成するのではなく、 特権制御コンポーネントを使って動的に構成を変更することに大きく依存している点が異なる。

Genodeは、デスクトップ [7] [8] やタブレット [9] のOSとして使われるか、ゲストオペレーティングシステムのための仮想マシンモニターとして使われる。 Genodeは、x86[10] とARM[11] の両方で、安全な仮想化システムの信頼されたコンポーネントとして使われている。

・TempleOS

TempleOSとはx86-64 Ring-0上で動作するOSだ。プロセス分離はなく、メモリ保護もなく、そもそも仮想メモリではなく物理メモリアドレスを直接使うOSだ。コンセプトは古き良きCommodore 64の現代版だ。あの頃のPCはメモリアドレスは直接メモリアドレスであって、仮想メモリによってどこか不定の物理メモリアドレスにマッピングされたりなどしなかった。

TempleOSはキリスト教の影響を受けておりキリスト教の聖書やキリスト教に由来するゲームが多数入っている。

TempleOSはHolyCで書かれている。HolyCはC言語に似た文法を持っている。TempleOSのシェルはHolyCのJITコンパイラーになっていて、シェルに書き込むと、HolyCがJITコンパイルされ実行されるようになっている。

・HelenOS
HelenOSは、ゼロから設計および実装されたポータブルなマイクロカーネルベースのマルチサーバーオペレーティングシステムです。ファイルシステム、ネットワーク、デバイスドライバー、グラフィカルユーザーインターフェイスなどの主要なオペレーティングシステムの機能を、メッセージパッシングを介して相互作用するきめ細かいユーザー空間コンポーネントのコレクションに分解します。1つのコンポーネントの障害またはクラッシュが他のコンポーネントに直接害を与えることはありません。そのため、HelenOSは柔軟で、モジュール式で、拡張性があり、耐障害性があり、理解しやすいです。

HelenOSは、C11およびC ++ 14標準との互換性を目指していますが、既存のオペレーティングシステムのクローンを目指しておらず、従来のAPIとの互換性を犠牲にして、よりクリーンな設計を実現しています。HelenOSのほとんどのコンポーネントは、HelenOS専用に注文されているため、その基本部分は、アダプテーションレイヤー、グルーコード、フランケンコンポーネント、およびそれらに伴うメンテナンスの負担から解放されます。

HelenOSは、組み込みARMデバイスやシングルボードコンピューターからマルチコア32ビットおよび64ビットデスクトップPC、64ビットItaniumおよびSPARCラックマウントサーバーに至るまで、8種類のプロセッサアーキテクチャとマシンで実行されます。

HelenOSは、オープンソースのフリーソフトウェアです。そのソースコードはBSDライセンスの下で利用可能です。一部のサードパーティコンポーネントはGPLの下でライセンスされています。

■検討候補
AUX 3.x
BeOS Professional
OpenSTEP
OpenVMS
RiscOS
Xenix

過去実施したが最新版を入手したもの
kolibrios
MenuetOS
Minix3
Redox
Visopsys
など

 ・マイナーOSのインストール、試用、紹介動画
Haiku
ReactOS
MorphOS
Redox
HelenOS
QNX
AROS

0