「未分類」カテゴリーアーカイブ

ApacheでCGI設定を追加する。対象は、PythonとPHPだけど応用すればなんでもOK!

AWS上でRocky LinuxにApacheを入れて設定しようとしていたのですが、なんかいつもの設定と違うので設定を行いました。
毎回やるのが面倒なんですけど、記録が無いとまた忘れるので備忘録です。
とか言いながら、実際下手なサイトの内容を参考にしたら結局ダメダメで、自分のサイトの過去記事を参考にしたら出来た!ということで、再度記録し直そうと思ったわけです(^^ゞ

対象と目的

今回の対象は以下の通りです。

OS:Rocky Linux 9(あんまりOSバージョンは関係ないけど)
Apache:2.4.51(これもあんまり関係ないけど)

目的は、/var/www/html/の下でCGIが付けるようにしてしまいたいということです。
その際、PHPとかPythonもCGIとして使えるようにしてしまいたい。

Apacheの設定

Apacheの設定を追加します。
元ファイルを弄る方が良いのかも知れませんが、記録も残しておきたいなぁ~という後のことを考えた不精な考えですが、今回は設定ファイルを追加することにしました。

取り敢えず、設定ファイルを新規で作成していきます。

ファイルに以下の内容を記載します。

これだけです。
ちなみに、FollowSymLinksもついでに突っ込んでおきました。

念のため、シンタックスを確認します。

Apacheを再起動します。

これで設定は反映されました。

コマンドによるSELinux対応の設定

当然、SELinuxを切るなんて真似は致しません!
面倒ではありますが、余程のことが無い限りSELinuxを切ることは避けています。セキュリティ確保するためなんです。

対象ディレクトリに対し、コンテキストを追加します。

以上です。

意外と簡単なんですけど、滅多にやらないことなので忘れてググるわけですわ。

そして、どこかのサイトの記載ミスやら間違った設定を叩いて「動かねぇ~( ゚Д゚)」って叫ぶわけよ。

で、自分でやって記録しておくと、いつかまた自分のサイトの記録がググったら出てくるんよ(^^♪

アフィリは全然儲かっていませんが、自分で書いたサイト記事は意外と役に立ってます。
備忘録万歳\(^o^)/

CentOS 9にpostgreSQL 14を入れる!postGIS 3.2も入れる!

以前に自分でインストールしたやり方を参考に、インストールを試みようとしてみたのですが、やはり少し変わったパッケージをLinuxへインストールするには何かが引っ掛かります(^^;

ということで、以下の環境にインストールを行っていきます。

OS:Rocky Linux 9
インストール対象:postgreSQL 14 + postGIS 3.2

PostgreSQL インストール

前回学んだ本家サイトからインストール方法を確認します。

https://www.postgresql.org/download/linux/redhat/

こちらのサイトにあるインストール方法を真似するだけです。

以下に提示されたコマンドを記します。

順番に説明しておきます。

リポジトリを追加

リポジトリを追加します。

既存のPostgreSQLを無効にする。

インストールしていない時には不要の作業となります。
過去にPostgreSQLをインストールしている場合のも必要な作業になります。

ある意味、トランザクション対象のパッケージを維持したまま、本体だけを無効にするという感じなんでしょうかね。
#違うところで参考になりそうです。

PostgreSQLをインストール

PostgreSQLをインストールします。

インストールはこれで完了です。

起動設定

自動で起動するように設定します。

インストールとPostgreSQLの起動は完了しました。

PostGIS インストール

ここからが課題のPostGISインストール作業です。

まず、インストールしたPostgreSQLのバージョンに対応するPostGISのバージョンを下記のサイトで確認します。

https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS

対応表からインストール対象のPostGISを確認します。
今回は、PostGIS 3.2を選択することにしました。

システムのリポジトリに含まれるPostGISのバージョンを確認します。

今回インストールするバージョンは、postgis32_14であることが確認出来ますので、以下のコマンドでインストールを試みます。

トランザクション関連のエラーが大量。。。ということで、問題の解決を行います。

これでインストール出来ました!

環境によって若干の違いがあるかと思いますが、参考になるかな?

以下のサイトが役に立ちました。
https://rockylinux.pkgs.org/9/rockylinux-crb-aarch64/flexiblas-netlib64-3.0.4-8.el9.aarch64.rpm.html

深くまで見ないといけないので、面倒ですが。。。

Mattermost 初期設定

はじめに

前回、Mattermostのインストールを完了しました。
その後、初期設定を行い使用できる状態まで進める過程を記していません。
ログイン後の各種設定について記載していこうと思います。

日本語化

最初に日本語化を行います。

メニュー画面の左上のメニューアイコンをクリックします。

メニュー画面

System Consoleを選択します。

Localizationを選択します。

各項目で「日本語」を設定して「Save」します。

Channel画面に戻って、次に画面右上の「⚙」アンコンをクリックしてアカウント設定を行います。

Display→Languageで「日本語」を選択し「Save」します。

これで日本語化が完了します。

メール設定

画面上部に「プレビューモード: 電子メール通知は設定されていません。」の記載があることに気が付いていると思います。
初期設定でも、メールでユーザを追加するとかアナウンスが流れるわりに、メールの設定が行われていないということに違和感を覚える方もいらっしゃるのではないでしょうか?
インストールガイドを眺めてみても、特にインストールの最中にメールの設定について記載されている項目はありません。
インストール完了だけではメールが使える状態になっていないということですね。

ユーザを招待する時やパスワードを忘れた時など、メールの通知が出来ないと色々と不便でなりません。
メールの設定は必ずやっておきましょう!

画面左上のメニューアイコンから「システムコンソール(System Console)」から作業を進めます。

メニュー画面

システムコンソールから「SMTP」を指定すると以下の画面が表示される。

SMTP設定

各設定項目については、自身の環境に合わせて設定する。
画面の少し下に「接続をテストする」というボタンがあり、設定を確認することができるようになっているのだが、ちょっと癖がある。

この画面には落とし穴がある。
「接続をテストする」ことが出来るのは、この画面の「保存する」を行ってから接続のテストが可能になる。
つまり、「保存する」を行わないで「接続をテストする」と、保存前の状態でテストされる。

これで随分時間を消耗してしまった(TT)

通知設定

システムコンソール→サイト設定→通知で通知の設定を行います。

通知設定(1)
通知設定(2)

電子メール通知を有効にして、メールによる通知を有効にします。
画面の指示に従って設定を行うとともに、自身の環境に合わせて設定を行います。

Rocky Linux 8.5 へMattermostをインストールする。

はじめに

久しぶりにMattermostをインストールしようと思ったら色々と変わっていたので、インストール方法をメモることにした。

対象環境

OS:Rocky Linux 8.5
データベース:mariadb 10.3

準備

Rocky Linuxは基本的にデフォルト状態でインストールし、以下の作業を実施済み。

mariadb インストール

mariadb をインストールします。
ザクっとコマンドだけ以下に記します。
細かいことは適当にやっちゃいます。

DB作成

こちらもザクっと書いちゃいます。

ザクっと行き過ぎ?
取り敢えず、ユーザ作って、データベース作って、アクセス許可設定してって感じです。

Mattermost ダウンロード

なんでこのメモ。。。記事を書き始めたかというと、コレなんです!
ダウンロードが変わっちゃっててよく分んなくなってた。

やりたいことは、インストールモジュールをダウンロードしたいのですが、どこにあるか分からなかった。
取り敢えず、ダウンロードするフォルダを準備します。
どこか適当な作業用のフォルダを作成して、そのフォルダへ移動しておきます。

準備が出来たので、ダウンロード対象を探します。
まずはブラウザこのURLを参照する。
https://mattermost.com/deploy/

https://mattermost.com/deploy/

下の方にスクロールすると、こんな画面があるので、「Binary」タブを選択する。

Docker用

すると、こんな画面になる。

Binary Download

URLをコピって、以下のコマンドを実行する。

※バージョン番号はダウンロードするタイミングで変わっていると思われるので注意してください。

せっかくなので、先のホームページで「Installation Guide >>」とその後の手順が示されているっぽいので覗いてみます。

インストールガイド

どっかの(ここも含めて)サイトの内容を信じるよりも、インストールガイドに従って作業を進める方が確実ですね♪

Mattermost インストール

インストールガイドに書かれている内容を素直に信じて作業を進めます!
私のサイトに書いている内容は、既に古い可能性があるので、見比べながら作業を進める方が良いでしょう。
また、私はrootユーザで作業を進めているので、sudoコマンドを省略しています。

さて、進めます。
まずは先程ダウンロードしたファイルを解凍します。

# tar -xvzf mattermost*.gz

本体を移動します。

ストレージディレクトリを作成します。

※ストレージディレクトリには、ユーザーがMattermostに投稿するすべてのファイルと画像が含まれるため、アップロードされるファイルと画像の予想数を保持するのに十分な大きさのドライブがあることを確認する必要があります。

いざとなったら、シンボリックリンクで余裕のあるディレクトリへ保存することも考えた方が良いかも知れませんね。

ここまでで本体のインストールは一旦終わったようです。

Mattermost セッティング

mattermostのサービスを実行するために、ユーザとグループを作成し所有権と権限を設定します。

よく失敗する私は、設定ファイルを変更する前にバックアップを作成します。

設定ファイルを弄って動かなくなって、後戻りできなくなってしまうことがよくあるのでやっているだけで、自信のある人はそんなことしないで進んでください。

設定ファイルを編集します。

滅茶苦茶余談ですが。。。。jqというjsonを扱うコマンドがあります。
jsonファイルをコマンドライン上で確認や編集を行う際にちょっと便利かな?と思っています。まだ使ったことは無いのですが、気になるコマンドです。
下記に本家サイトがあります。
https://stedolan.github.io/jq/
更新が滞っているみたいに見えるのがちょっと気になりますが。。。ご参考までに。

変更内容は以下の通りです。

  • SqlSetteings -> DriverName を”mysql”に変更
  • SqlSetteings -> DataSource を “mmuser:<mmuser-password>@tcp(<host-name-or-IP>:3306)/mattermost?charset=utf8mb4,utf8&writeTimeout=30s"

<mmuser-password>はDBユーザ作成時に設定したパスワードを指定してください。
<host-name-or-IP>は「localhost」でも大丈夫です。
ちょっとコメントします。
DataSourceの最後の方にある「utf8&writeTimeout=30s」について、「&」の文字はmattermostを起動すると勝手に「\u0026」に置き換わります。
他のサイトで異る記載があり、それも有効だとは思うのですが、本家のインストールガイドに従ってやってみても良いと思われます。

実際のサンプルを以下に記します。

起動確認

本番起動を行う前に、正しく起動できるか確認してみます。

ごちゃごちゃとログが出力されます。
強制終了が発生しなければ一応動いているみたいです。

環境が許すのであれば、firewalldをストップさせて確認しようと思います。

この後、以下のURLをブラウザで起動して確認してみます。

http://localhost:8065/

サインアップ用の画面が表示されればなんとなく安心できます。
画面が表示されない場合は、「http」になっているか確認してみてください。
それでもダメな時は、何か間違っている可能性があります。がんばれ!

firewalldの設定

標準の環境だと、当然firewalldが動作していて、対象のポートはアクセスできません。
解放する必要がありますね。
解放せずとも、アクセス出来るようにしなければなりません。
後でReverseProxy使ったりして、通常のHTTP(80)ポートとかHTTPS(SSL/TLS:443)とかでアクセスしたくなりますが、それは後程。。。

取り敢えず、一旦は8065ポートを解放してアクセスできることを確認します。
基本が出来ていないとトラブルの原因が何か分からなくなりますからw

先程、firewallldを止めてしまった場合には以下のコマンドで再起動しておきます。

以下のコマンドで8065ポートを解放します。

再度ブラウザでアクセスすると正常にアクセスできることを確認できるとおもいます。

systemdによる自動起動設定

「起動確認」で起動したmattermostはCTRL+Cで終了させます。

systemdによる自動起動の設定を行います。

まず、serviceファイルを作成します。

記載内容は以下の通りです。

[Unit]セクションのAfterとBindsToの項目をmariadb.serviceに変更しています。
インストールガイドでmysql用の記載として、それぞれをmysql.serviceにしていますが、それでも問題ありません。

それでは起動してみましょう!

いきなり失敗しました!
多分、ここで躓きます(TT)
内容を確認します。

まあ、ざっくりと言うと、SELinuxのチェックに引っ掛かって止まっています。
よくある話。。。なのですが、面倒なんですよねぇ〜(TT)

取り敢えず、表示された内容に記載されているコマンドを打ち込んで対応を行います。

適当なディレクトリに移動してから以下のコマンドを実行します。

再度実行してみますが。。。。

またしてもエラーが発生して留まってしまいます。
でも先程とは少し異るエラーの様で、対策が異なっています。
ログに従って以下のコマンドを実行します。

あれ?返ってこない。。。長い。。。という状態が続きます。
止めちゃおうか?って思います。
でも待ちます。
設定を反映するのに時間が掛かっています。
ちょっと休憩するくらい待ちました。

コマンドの終了を待って実行します。

今度は成功した様です。

最後に自動起動を設定します。

以上でMattermostのインストールと設定は完了しました。

ここから実際にチームを作成して利用できる環境設定を行います。
何故か私の調べた限りでその設定についての記載が成されたサイトは見つからず、私自身もメモを取る前に進めてしまいました。
またの機会に説明を記したいと思います。
ということで、サイトへアクセスして、初期設定を行います。

http://ドメイン:8065/

ログイン完了後に幾つかの設定を行いますので、その設定については別途記載したいと思います。

QGIS 近くの地物属性を取得する。

この記事は備忘録のためのメモです。
説明が煩雑になっていますが、お許しください。

家(ポイント)から最も近いコンビニを探したい。
ルート検索と絡めると更に複雑になるので、取り敢えずは直線距離で探してみようと思います。

今回はクラスメートの家(複数ポイント)からそれぞれ最も直線距離で近くにあるコンビニの名前と住所を持ってこようと思います。

QGISのツールボックス→ベクタ一般→属性の最近防結合を開きます。

入力レイヤに家レイヤを指定します。
第2の入力レイヤにコンビニレイヤを指定します。
第2の入力レイヤからコピーする属性を指定します。
出力レイヤを指定します。
実行すると、最も近いコンビニの情報が家レイヤの属性データとして追加されます。

QGIS 次の地物の属性データを取り出す。(フィールド計算機)

すぐに忘れるので備忘録です。
QGISでフィールド計算機を使った計算を行う際に、カレント地物(feature)の属性情報(attribute)は直接使えますが、次の地物の属性情報を使おうとしたい時があります。
a[$id+1]とかしたいのですが、受け付けてくれませんw

計算式を示します。

attribute(get_feature_by_id(@layer,$id+1),’name’)

※nameには、属性名が入ります。

以下にそれぞれの関数のコーリングシーケンスを記載します。

【attirute】
 ・現在の地物の属性値を取り出す場合
  attribute(attribute_name)
  return : 属性値

 ・指定された地物の属性情報を取り出す場合
  attribute(feature,attribute_name)
  return:属性値

【get_feature_by_id】
 get_feature_by_id(layer,feature_id)
 return:layerでとIDで指定された地物(feature)

この辺りは、QGISの日本語翻訳とシステム上で使われる言葉(英語)が入り混じって解り難くなってしまっているところかも知れませんね。

サンプルでは、get_feature_by_idで@layerを指定しています。カレントレイヤが指定されます。
次に、$id+1でカレントID+1つまり次のIDを指定しています。
これで、次に地物のfeatureが返されます。

attribute関数で指定するfeatureの特定が成されます。
さらに、欲しい属性名をしていします。
「”(ダブルコーテーション)」ではなく、「’(シングルコーテーション)」で括ることで、文字列で属性名を指定しています。
「”」だと、属性そのものを指定してしまうというところに注意が必要です。

意外と、この辺りの記載が無くて、調べるのに一苦労しました。
たまにしかやらないから、いつも忘れてしまうんですよね(^^ゞ

次からはこのメモが役に立ってくれることを期待しますw

QGIS 複数の線を複数の線で分割する

タイトルが解り難い!
複数のPloylineを複数のPolylineで分割したいと思ったのですが、QGISのプロセシングツール→ベクタオーバーレイ→線で分割でやろうと思ったら、出来ないなぁ?なんでだろう?

問題の説明をします。

赤のレイヤと青のレイヤがあり、青のレイヤにある線分を赤の線分で分割しようとしました。

意外と忘れてしまうのですが、シングルパートになっていると上手くできないことがあります。
2線分までは対応しているのですが、3線分以上だと分割してくれないみたいです。(実際には同じ方法で分割出来るのですが、少し問題があります。)

結論は、赤のレイヤをマルチパートレイヤに変換します。
これで後は同じように線を分割することが出来ます。

分割対象(青)のレイヤはマルチパートにしなくても良いと思います。

WebでFileBrowser使ってみたら嵌った。

Webサービスとしてファイル一覧とか見れるようにしたいなぁ。
この時間、ちょっと地が出るかも知れません。

さて、OSS色々探してみて、これ使えるやん♪ということで、早速インストールして使ってみたんですけど・・・なかなか良いんですよね。

使うだけなら・・・・

で、いつの間にかインストール方法忘れかけてる実態に気が付いて、インストール方法探してみたら・・・

ここ見て
https://filebrowser.org/installation

そのまんまです。

これで起動まで終わりです。

-a オプションでアドレス指定出来ます。
-p オプションでポート指定出来ます。

デフォルトの設定は以下のコマンドで確認出来ます。

デフォルトのIDとパスワードは以下になります。

Username : admin
Password:admin

ユーザの追加とかは、以下のURLで設定します。

http://127.0.0.1:8080/

ここまでは、他のサイトでも紹介されてるんじゃないかな?

嵌ったのはこれ!

起動してみると、こんなメッセージが出るんです。

でもきちんと動いてるんです。

参考にさせて頂いたのはこちらのサイトです。
https://ficus-forum.myvnc.com/t/topic/278

コマンドラインで動かすだけなら、これで全然OKなんです。
でもね、これってOS起動時に起動させたいやん。
サービスに登録するやん。
サービスが起動してくれへんのよ。。。(TT)

起動時にconfigファイルを探しに行くんだそうです。
https://filebrowser.org/cli/filebrowser

検索対象は以下
./
$HOME/
/etc/filebrowser/

configファイルが無いということなので、configファイルを作成しないといけないんですね。

今回は、$HOMEへ作ります。

実際にはserviceを起動するユーザのホームディレクトリで作成すればいいのかな?

これで、serviceを起動する時にも自動でconfigファイルを探してくれます。
-cオプションを使って指定することも出来ます。

serviceの作成とかは、こちらに記載してます。
独自コマンドのサービス登録(CentOS 7)

CentOS 8 でexfatとかntfsとか

この書込みは2021年8月時点の記述です。
もうすぐCentOS 8は廃盤になるというのに、今更こんなこと書いてどうするんだ?と思っている方もいらっしゃるかと思いますが、ここは私のメモなので。。。放置してください。
まあ、ある意味では独り言をオープンにしゃべっている変な奴ですね。

これをリアルでやっているとイタイ人になるんでしょうね(^^ゞ

一応、誰かが見てくれているみたいなので、参考になれば・・・今回は本当に備忘録なんですけどね。。。w

さて、exfatとかntfsとかCentOSへ接続しようとして、これ使えないよ!って言われるのはよくある話ですね。

使えないんじゃなくて、パッケージインストールされてないから使えないって話なんですけど、その方法を一々調べるの面倒です。

ということで、私の備忘録です。
EPELリポジトリ入れてあること前提です。
なんか足りないものあったらコメントしてください。

取り敢えず、こんなコマンドで入れます。

ということで、他のデバイスもインストールする方法は後からここに追加しようかと思ってます。(多分、思ってるだけ)

デフォルトで入れておいてくれると嬉しいんですけどね。
そんな一括インストールするパッケージないかねぇ?
アップデートすると自動で追加されるとかでも良いんですけど・・・
新しい形式を自動的に入れてくれると嬉しいと思うのは私だけ?

WordPress 5.6をインストールする手順

CentOS 8にWordPress 5.6をインストールします。
インストール先は、Apachのドキュメントルート(デフォルト)である下記ディレクトリ以下に設定することにします。

他のディレクトリでも良いのですが、セキュリティ絡みで面倒は避けたいので、ドキュメントルートなら安全かな?と逃げ腰選択です。
では、ダウンロードを始めます。

/var/www/html/wordpressに解凍されます。

データベース設定

ローカルアドレスで設定するには、ブラウザで http://127.0.0.1/wordpress/ へアクセスします。
実際には、外向けのIPアドレスやドメイン名を設定すると良いでしょう。
後で変更することが可能です。

データベース作成時に指定したユーザ名とパスワードを設定します。

書込みが上手くできたらこの画面は表示されません。

サイトのタイトルとユーザ名とパスワードとメールアドレスを登録します。

ローカルアドレス(127.0.0.1)での設定については、ここまでで問題ありませんでしたが、外部からアクセスすることが叶いません。
そこで、外部に公開するアドレスを指定します。
ログイン後に以下を開きます。

設定→一般を開き、以下の項目を編集します。

無事外部向けIPアドレスを設定出来れば、アクセス可能となります。
グローバルIPアドレスやドメインを設定することで、公開サイトとして動作することになるでしょう。
社内LANで構築して外部へも公開する場合には、どうしたものか?
複数のアドレス設定が出来ないようなので、ルーター側でパーマネント設定を施すなどが妥当なのかも知れませんね。