Memorandum

日々の覚書

The evaluation period for this release has now expired

segger embedded studio (SES) を使っていて、ライセンスが切れたりするとこのエラーが出る。

さらに、OKを押すとSESが強制終了されて、ライセンスの更新もできないわけだが、

引き続き同じバージョンを使いたい場合の回避方法をメモっておく。

ちなみに、SESのライセンスはMACアドレスに紐づいているため、

使用するLANポートを変更していたりすると同じエラーが出てしまうため、

まずは先にLANポートを変更していないか?ということを今一度見つめ直した方が良い。

変えてないよという場合は、SEGGERのHPに行って、新しいバージョンのSESを入手してインストールする。

https://www.segger.com/downloads/embedded-studio

新しいバージョンのSESを起動して、ライセンスを更新する。

その後に、新しいバージョンのSESをアンインストールすればOK。

WindowsからローカルなLinuxサーバーにホスト名でアクセスする

ローカルなWEBサーバーに対して、192.168.x.x のようにローカルIPアドレスを指定してアクセス可能になった後、

通常のホスト名を入力してアクセスしたいが出来ない場合、ホスト名が解決できていない。

ホスト名の解決として、各ローカルPC側にDNSサーバーよりも先に見に行くような

内向けの設定として追記してもらう方法があるが、手間だと思うので、

サーバーサイドだけで解決するような良い手はないかと。

調べてみたら、

avahi-daemonをインストールして、mDNSを使うか?

winbindをインストールして、NETBIOSを使うか

mDNSを使う場合は、avahi-daemonをインストールしたLinux同士では応答できるようだが、

Windowsの名前解決をするのはまた違うようだ。

WindowsはmDNSにデフォルトで対応していないみたい。

sudo apt-get install winbind libnss-winbind

hosts: file dns wins ←winsを追加

sudo systemctl restart networking

なぜかは分からんが、これでは結局できなかった。。。

結局sambaをインストールしたら、できるようになった。

sudo apt-get install samba

※参考にさせて頂きました。

https://tech-note-meeting.com/2020/08/14/post-316/

debian server インストール

debianのisoを取得して、dvdに焼き込んだ

PCのCD-ROMに入れたあと、再起動してブートオプションからROMから起動するようにするとインストーラーが開始したので指示に従ってインストールする。

途中でソフトウェアRAID1を組んだ。

HDD1(/dev/sda)とHDD2(/dev/sdb)をまずは全部消去する。

それぞれ先頭から同じサイズのパーティションを作成して、フォーマットをraidにする。

それから、/dev/sdaの末尾に1024MBのswapを作成する。

mdパーティションの構成でsda/sdbの同じサイズのパーティションを選択して、md0を構成する。最後にmd0をext4にして、マウントを / にして起動オプションを有効にする。

次にgrubをインストールするところで、これはMBRにインストールしてくれるから、boot用のパーティションを用意しておく必要はなさそう。

とりあえず/dev/sdaにしておくんだけど/dev/sdbには入らないので、色々終わって起動後にgrub-install /dev/sdb としておくことで、どちらからも起動できるようになるっぽい?

さて、インストールが終わって、debianが起動した後は文字化けでよくわからんが、まずsshで入れるようにする

  su
  [passwd入力]
  apt-get install ssh

sshで入って、suした後に、

  vi /etc/apt/sources.list
  deb http://deb.debian.org/debian bullseye main contrib non-free
  deb http://security.debian.org/ bullseye-security main contrib non-free
  deb http://deb.debian.org/debian bullseye-updates main contrib non-free
  deb http://deb.debian.org/debian bullseye-backports main contrib non-free

/etc/apt/apt.conf.d/00myconf

 Acquire::http::proxy "http://proxy.example.co.jp:8080/";
 Acquire::https::proxy "https://proxy.example.co.jp:8080/";
 Acquire::ftp::proxy "ftp://proxy.example.co.jp:9021/";
 Acquire::socks::proxy "socks://proxy.example.co.jp:1080/";

sudoをインストールしてユーザーを追加

 apt-get install sudo
 gpasswd -a ユーザー名 sudo

この後、一旦ログアウトしてログインし直すことで管理者権限が反映する。

 sudo apt-get install emacs
 sudo apt-get install build-essential
 sudo apt-get install wget
 emacs ~/.bashrc
 export http_proxy=http://proxy.example.co.jp:8080/
 export https_proxy=http://proxy.example.co.jp:8080/
 export ftp_proxy=ftp://proxy.example.co.jp:9021/
 export socks_proxy=socks://proxy.example.co.jp:1080/
 source ~/.bashrc

ipv6を無効にしておく。/etc/sysctl.confに追記。

net.ipv6.conf.all.disable_ipv6 = 1

Raspberry pi で dokuwiki を動かす

参考記事

http://serverarekore.blogspot.com/2020/06/raspberry-piraspbian-busterdebian.html

ここまではわかる。

sudo apt-get -y install php7.3 libapache2-mod-php7.3 apache2 php7.3-mbstring php7.3-xml
wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
tar xvfz dokuwiki-stable.tgz
sudo mv dokuwiki-2018-04-22b /var/www/html/dokuwiki
sudo chown -R www-data:www-data /var/www/html/dokuwiki
sudo systemctl restart apache2

そしたらconf/local.phpを直接いじる必要はなくて 設定管理プラグインっていうconf/local.phpの内容を管理画面でいじれるプラグインが入っておるので、 管理画面から修正すればいいようだ。管理画面からいじられたくないアイテムはlocal.protect.phpなんちゃらに書けば良いらしい。 拡張機能管理からLDAPのアドインを有効にして、管理画面に入って設定するが、

LDAP err: PHP LDAP extension not found. [auth.php:34]

とか出てしまう。

sudo apt-get install php-ldap libldap-2.4-2

してみたりしたが、変わらず、 php.iniのextension=ldapをアンコメントしたら先に進んだ。 さて、バックアップをどうするかだなー。

https://www.raspberrypirulo.net/entry/usbmemory-mount

USBメモリを自動マウントして、 このサイトは為になった。自動バックアップをシェル書いてクーロンで行うことにした。 https://qazsedcftf.blogspot.com/2019/12/raspberry-pi-sd.html

dokuwikiのフォルダごとtarにして、usbメモリにコピーする感じ。

#!/bin/sh

#バックアップファイル数の上限
MAXFNUM=4

#バックアップ先のディレクトリ
BKDIR=/mnt/usb0/

#バックアップファイル名
BKFNAME="var_www_html_"`date +%Y%m%d`.tar.gz

#バックアップ実行
echo "Back Up start    : " `date '+%y/%m/%d %H:%M:%S'`
tar czvf ${BKDIR}${BKFNAME} /var/www/html/
echo "Back Up Complete : " `date '+%y/%m/%d %H:%M:%S'`
##echo "Backup Complete !"

#古いバックアップファイルの削除
num=0
for FN in `ls -tl ${BKDIR}var_www_html_*.tar.gz | awk '{print $9}'`
do
  if [ ${num} -ge ${MAXFNUM} ];
    then
      rm ${FN}
      echo "delete " ${FN}
  fi
  num=$(($num + 1))
done

Raspberry pi をプロキシー環境で設定してLDAPサーバーとして使う②

うーん。なかなかまだうまく動かせていない。

OpenLDAPの仕組み自体がすごく短期間で進化しているみたい。(mdbやら設定ファイルではないコンフィグレーションバックエンドやら、)

だから、ネットの情報は古いものと新しいものと混在しているんだよね。

そうなると

  • 安定バージョンの組合せが本当に分からないくない

  • ネットの断片的なコピペだけだと、今何を登録しているのか、さっぱり理解できない

結局、書籍に書いてあるバージョンを持ってきてビルドして使うのが良いと思って

デージーネットさんの本を買ってみた。

https://amzn.to/3b6Zmin

まずはBDBのインストール。aptで入手できるバージョンは新しい為、openLDAP2.4.25ではconfigureできない。

Berkeley DBは ver.4.4〜4.8 , 5.0〜5.1らしい。


wget http://download.oracle.com/berkeley-db/db-5.1.29.tar.gz

tar xvfz db-5.1.29.tar.gz

cd db-5.1.29/build_unix

../dist/configure

make

sudo make install



emacs /etc/ld.so.conf

     include ld.so.conf.d/*.conf

     /usr/local/lib

     /usr/local/BerkeleyDB.5.1/lib  ←この行を追加し



sudo ldconfig



export CPPFLAGS=-I/usr/local/BerkeleyDB.5.1/include

export LDFLAGS=-L/usr/local/BerkeleyDB.5.1/lib

export LD_LIBRARY_PATH=/usr/local/BerkeleyDB.5.1/lib

※参考にさせて頂いた

https://noknow.info/it/os/install_oracle_berkeley_db_from_source

https://end0tknr.hateblo.jp/entry/20110401/1301664669

次にopenldapをインストール


sudo apt-get install libsasl2-dev libltdl-dev



wget https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.4.45.tgz

 tar xvzf openldap-2.4.45

cd openldap-2.4.45

./configure --with-tls -enable-crypt --with-cyrus-sasl -enable-rwm --enable-monitor=no

make depend

make

make install

phpLDAPadminはすんなりいっていたが、apacheのconfigureで

# checking for OpenSSL version >= 0.9.8a... FAILED apt-get

といわれたところは、

sudo apt-get install libssl-dev

で解決した。

あとphpldapadminのopensslのインストール先、/usr/localを指定しているが、

configure:error:Ca n't find OpenSSL's <evp.h>

となってしまい、色々試したが、、、

  • --with-openssl=/usr/include/opensslに変更した

  • Sudo apt-get install libcurl4-openssl-dev pkg-config

結局 --with-openssl だけにしたところ通ったので、これで進めている。

ちょっと指定するのとしないのと意味がよく分からない。

本は売られているのにデージーネットさんのパッチは非公開にされていたので、

有志のパッチ済みを下記からダウンロードして、使った。

https://github.com/breisig/phpLDAPadmin

Raspberry pi をプロキシー環境で設定してLDAPサーバーとして使う①

はじめに

Raspberry PIを使って、固定IPアドレスを指定したい都合で、 更にProxyを通したい。

OS選定

まずはRaspi imagerで書き込む。 このとき、余計なGUIがあると起動時間が遅いなど、あまり良いことが無い為、 書き込むOSをraspberry pi OS LITEにする。

IP固定

起動後は、sudo vi /etc/dhcpcd.confして、

interface eth0
noipv6
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.10
static domain_search=192.168.1.11

domain_serachは代替DNSなので、無ければ設定しなくていい。 ネットワークを再起動して、IPが固定できているか確認する。

sudo systemctl restart dhcpcd.service
ifconfig

aptのプロキシ設定

最初にインターネットを使いたいのはaptだろう。

sudo vi /etc/apt/apt.conf

apt.confに下記を追加する。

 Acquire::http::proxy "http://proxy.example.co.jp:8080/";
 Acquire::https::proxy "https://proxy.example.co.jp:8080/";
 Acquire::ftp::proxy "ftp://proxy.example.co.jp:9021/";
 Acquire::socks::proxy "socks://proxy.example.co.jp:1080/";

httpは8080で、ftpは9021である。socksは1080だと思う。

aptのサーバー設定

bullseyeのリリースが削除されているようなので、下記を参考にミラーに置き換える。 https://wakky.tech/raspberry-pi-4-repository-error/

時計も直しておく sudo date -s'22 Jun 2022 10:10'

エディタのインストール

最初に、sudo apt-get updateしてから、 sudo apt-get install emacs

.bashrc

wgetを使う場合は.bashrcに書いて環境変数にもプロキシを設定しておこう

export http_proxy=http://proxy.example.co.jp:8080/
export https_proxy=http://proxy.example.co.jp:8080/
export ftp_proxy=ftp://proxy.example.co.jp:9021/
export socks_proxy=socks://proxy.example.co.jp:1080/

# source .bashrc

openldapインストール

sudo apt-get install slapd ldap-utils

ついでにphpのwebuiもインストールしてみる

sudo apt-get install php php-cli php-fpm phpldapadmin nginx

nginxがうまく起動しない。。。

sudo netstat -plant | grep 80

すると、apache2がインストールされていて、0.0.0.0:80を占有している

sudo systemctl stop apache2 sudo systemctl start nginx

これだと502 になってしまう。tail -f /var/log/nginx/error.logしていると どうやらphpのアクセスが出来ないらしいので、、、

sudo emacs /etc/nginx/sites-available/default

サーバブロックを書き換えてphpの設定を書き込む。

server {
 root /usr/share/phpldapadmin/htdocs;
 index index.php index.html;
 server_name localhost;
 location ~ \.php$ {
 fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
 fastcgi_index index.php;
 fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
 include fastcgi_params;
 }
}

つづく