極北別世界通信

極北別世界通信

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

夏季休暇的な

さて、まずは多少なり各種チャネルを利用して、コンテンツを絞ってこつこつやっていこうかなと思っています。まぁ元々いろんなことやりすぎというのはありますが。

一応、冬コミに申込しましたが、ある程度コンテンツをきちんと作っていきたいと思っています。
ニーズはどうかわかりませんが、マイナーOSのインストールを動画化してみるとかといった、異なったアプローチなどは考えてみたいと思っています。

とはいえまずはマイナーOSのインストールと試用そのものの記録と記事化をしっかりしないと意味ないんで頑張っていきます。

0

というわけで明日です

チャネルはあるわりにあまり多方面に宣伝やら展開やらができていないのは心残りですが、とりあえず明日、コミケ当日でございます。

今回は結局、Haiku、ReactOS、Morphosの3つです。

Morphosについては一応まともに書くのは初めてではないかと。

今後はインストールや試用部分はもちろんなのですが、もう少しインターネット関連のチャネルをちゃんと使って情報展開はしていかないといけないなぁと少し思わなくもない感じです。

 

0

いそがしすぎる

まあ一応原稿は書いているんですが、ブログを書くような余裕すらない。。。

元々あんまり懸命に書くほうではないのですが。

 

現状、Haiku、ReactOSを初心に帰って?インストール、試用してます。

Morphosもいじっていますが、やはり日本語実装的な部分が十分でないOSはサーバー用途で使うのでもない限り頭打ちになりますね。

0

コミケ向けのネタ出し

夏コミのスペースもとれましたし、どういう方向性にするのか改めて考える。

一応サークルカットは書いてるわけで、冬時点での方針は考えてましたが実際どうするか

Mauticに関する原稿を仕上げられるのが一番なんですが、時間的な制約もありどうしたものか検討中。
NFC、Pasoriを使っての簡易オリジナル入館証、勤怠管理作成モデルとか、子供向けプログラミングのスクラッチで大人がプログラミングしてみた、とか、やれること、やりたいことは一通りあるのですが。

とりあえずは最低限、サークルカットで書いたものについては原稿化しないとなぁ。

ただすでに7月、印刷はさすがにきびしいかな。。。

基本的には原稿を先行して進めてから印刷所を最終週あたりから間に合うとこ探しつつ、になりそう

0

夏コミ

一応スペースは取れました。

2019/8/12(月曜) 南地区 リ-18a 「Fnow」

です。

何系の本にしようか今から悩み中。やはりマイナーOS系かその他技術系か。

技術系といっても当方の場合必要に迫られるか、単に興味をそそられるかのいずれかパターンばかりなのでどうしたものかまだまだ悩み中です。

0

GASとか

いろいろやりたくていじり始めてますが、結局Googleアカウント持ってる人用にするか、フルオープン(実際にはURL文字列が複雑なんで、ちょいと見つけて、、、ってふうにはそうそうならないですが)にするかしかないのがちょっと不安点。

まぁG SuiteなりGCPなり契約して欲しいからの制約だとは思いますが。

当方別にコード書きじゃないことが災いして?「こういうのがやりたい、出来るのかな」でいろいろ調べ始めるので、なかなかとっつかないんですよねぇ。

javascriptだってコピペレベルでしか覚えてませんしね。

 

0

そしてまだ寝てないのと技術書典の振り返り

まだ寝てない

寝られないというのもあるが。

あと一応技術書典の振り返り

決して悪口とかではないんだがなんだか温度差を感じた。まぁなんというか他の(過去も含め)技術書典の振り返りとかをみて思うのが

「爆死した」でも「完売御礼」でもどちらにしても売上やなんかのことを書いてるかたが多いなぁという点

いや決して悪いことではもちろんないですよ?

ただその、技術書見に来て、買ってった人が見たいのってその人の売上じゃない気がするんですよ。その人なりサークルなりの本や内容、今後の活動なんかじゃないのかしらと思わなくもないんです。

なんか奥歯にものが挟まったような感じの言い方になりますが…

勿論沢山の人がその本を欲しいと思って手に取るのは素晴らしいことだと思いますし、マイナスばっかではやってくモチベがもたないとかもありますが、でもなんかその売れるとか宣伝がとか聞いちゃうとなんか微妙な違和感を感じなくもないというか。

まぁ当方永遠の弱小ニッチサークルではありますしつるむような人間もいませんので皆さんが楽しくやってるのに水を指したいわけでは決してないんですが。

あとこれは行く前から思ってた部分なんですが、とくにマイナーOS本は完全にまったく実用性のない本なので内容的にもちょっと浮いているような気はします。当方がプログラマーでもなく技術的な専門教育を受けてるワケでもないのもありますし、ひねくれた性格もあって「これをじっくりやろう」というのがほぼないというのもありますね。

マイナーOSに関してはそれでも対象の数がアホみたいに多いのもあいまってなんとかなりましたが、基本的に「手段を目的に履き違え」た本を作ってるので、その辺なのかなと。

今回の超爆死した新刊(ネタはCMS)も基本的にどれかを気に入ったり好きだったりするわけではなく「WordPressはみんな使ってるから違うのに」というのがモチベだったりします。

そしてサイトを作るのが目的ではなくなって「CMSを比較」するのが目的になっちゃってるんですよね。

どちらかと言うと「何かしらを作る方法論としてこれをやるよ」という本の作り方のサークルさんが多いように感じました。

なんか違和感とかずれを感じるのはそういうところもあるんでしょうかね

閑話休題

前述通り自分とこの本はいわば「爆死」に近いレベルでしか売れませんでした。

というか冬コミで出した既刊のほうが圧倒的に出る有り様。まぁ新しいほうもぼつぼつやっていきますが。

夏はいまのところOSSいっちょかみ本とマイナーOS本のSecond season的な方向でやるつもりですが、さてはてどうなるか。

0

財布は見つかったが

絵にかいたように現金だけ抜かれてトイレのゴミ箱にあったらしい。ひたすら最悪ですな

正直気力が萎えますね。落とし物してまともに戻ってきたこと一度もないなぁ。

まぁそら落とすほうが悪いと言えばそれまでなのですが。

しかし気力がわかなすぎて月例OSS試験がまったく思い付かない。なにしようかしら…

mauticとなんらかのCMS連携してのMA構築が一番やりたいですが時間が かかるしなぁ

ちょっとずつでもやるのが一番なのですがそうするとそれしかできんし…

まあ寝よう

0

まじかー

技術書典にてお立ち寄りいただいた皆様、ありがとうございました。

とても楽しかったのですが、よりによって技術書典の帰りにどこかで財布をおとしたようだよ(T_T)

現金もですが、カード関連の手配が煩雑でたまらん。

あーーーーどうしたもんですかね。こういうのは本当に脱力しますな…

0

技術書典6当日です

在庫の本を事前に送付等してる暇がなくこれから倉庫に取りに行ってそれから会場入りする予定

「か07 Fnow」で参加しています。

0

移動開始

いや移動といっても、fnow.org を www.fnow.org に移してるだけな上に元々たいしたコンテンツないのでアレですが。

本格的に移動するのは「技術書典6」が終わってからになると思います。

0