サーバの切り替えについて

現在のサーバはCentOS7。だいぶ古くなってきた。

サーバ作成に慣れていない頃で、設定の仕方もこなれていない。最近はGmailを使ったメール送信で、サーバとの接続拒否されていて、難儀である。

スペックも現在のサーバはオーバースペックだ。ほんとはもうちょっと色々とサービスを作成したかったのだが、結局用途別にサーバを作成することにしたためだ。

学校の授業で使うRockyLinuxにするか、今後の伸びを考えてUbuntuにするか。悩ましいところ。

Dockerも使ってみたい。

PythonでのWebアプリ公開もしてみたい。

何にせよさくらインターネットでのサポートもそろそろ切れるんじゃ無かったっけ?(ソース脳内)

PHPを7.1から7.4へ

今日のお昼過ぎ、以前からやらねばと思っていた作業に取り掛かる。

最初は上手く行ったように見えていたのだが、

Failed loading /usr/lib64/php/modules/opcache.so:  /usr/lib64/php/modules/opcache.so: undefined symbol: _zval_ptr_dtor
PHP Warning:  PHP Startup: Unable to load dynamic library 'apcu.so' (tried: /usr/lib64/php/modules/apcu.so (/usr/lib64/php/modules/apcu.so: undefined symbol: _zval_ptr_dtor), /usr/lib64/php/modules/apcu.so.so (/usr/lib64/php/modules/apcu.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.4.8 (cli) (built: Jul  9 2020 08:57:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

遠大な計画の始まりとしてHyperV環境の整備をする。

一昨日辺りにWebサービスを作ろうと思い立った。かなり以前からパスワーキングに興味があったのだが、私はソロなのでシナリオを読んでくれる人が居ない。どうしたものかと思って居たのであった。で、ふと検索して見ると色々なソフトウェアが有る。その中で見つけたのがOpen JTalkMMDAgentなどの発話エンジンとして使われている。

最近、プログラム関係で新しい知識を得て無く、発展性に関してどうしたものかと思って居た。GW頃には機械学習のことに興味を持ち、Pythonなども触ってみたが、ちょっと自分の手に負えなさそうであった。今度は比較的手を出しやすそうである。

Open JTalkを使い、パスワーキングのシナリオを読み込ませて朗読させる。GUIはJavaFX、シナリオなどの管理にh2databaseという辺り。先日JavaFX環境を作った物の、何を作例にするか迷っていたのでちょうど良い。そう考えていたのだが、それだけでは面白くない。いっそWebサービスにしてはどうかと考えた。Webサービスにするなら言語は何か?JavaかRubyか?開発環境は、公開サーバは?色々と考えた。

最終的には

  • 開発環境は、Windows10上のHyperVにCentOS7で作成
  • 言語はJava
  • フレームワークは、SpringかSpringBoot
  • 発話エンジンはOpen JTalk
  • 公開先は秘密

ということに。音響モデルも自作して検証してみようと思って居る。昨日は宮崎市の蔦屋書店に出向き、SpringとSpringBootの本を一冊ずつ購入した。HyperVの方もとりあえずCentOS7のデスクトップが動くところまでは持ってきた。何時出来上がるか分からないが、細かく区切りを作って意欲を削がないようにして頑張ってみたいと思う。

awstatsのcronが動いてなかったのを修正した

Log解析ソフトのAwstats。インストールしてからずっとcron更新ができてなかった。解析データが欲しいときには、その度に初期化用のスクリプトを起動してた。しかしいい加減面倒くさくなったので原因を調査。

  • cron.hourlyにawstats用ファイルができてなかった
  • awstatsの自ドメイン用設定(awstats.sougetu.net.conf)のlogファイルの場所が間違っていた

以上二つが大きく関わってると分かる。awstatsファイルを作成する。

#!/bin/bash
exec /usr/local/awstats/tools/awstats_updateall.pl now -configdir="/etc/awstats" -awstatsprog="/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" >/dev/null
exit 0

そしてawstats.sougetu.net.confを修正。試しに動かしてみるとイイ感じであった。多分大丈夫。Loglotateについては明日確認しよう。

SublimeText3で行った設定について 2

CentOS 7用のrpmを作ってibus-mozcをインストールしてみる

■CentOS7上のSublimeText3で日本語環境の作成
ibus-mozc (Linux)
mozc(Linux)
emacs-mozc (Linux)
SublimeMozcInput (Sublime Text)

  1. Fedoraのリポジトリからsrpmを取ってくる
  2. 必要なモノや依存関係のものを抽出し、ビルド
  3. 試行錯誤し、SPECファイルを修正。リビルド。ibus-mozc,mozc,emacs-mozcインストール
  4. 再起動
  5. SublimeMozcのインストール(SublimeText上)
  6. 実際に入力する

0-1.コンパイル環境の構築(root以外で行う)

sudo yum groupinstall "Development Tools"
sudo yum install rpm-build redhat-rpm-config make gcc
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
cd rpmbuild

0-2.srpmの取得

curl -O ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/19/Everything/source/SRPMS/m/mozc-1.10.1390.102-1.fc19.src.rpm

1-1.必要なモノを割り出すためのビルド

rpmbuild --rebuild mozc-1.10.1390.102-1.fc19.src.rpm

1-2.必要なモノをyumインストール

sudo yum install protobuf-devel glib2-devel qt-devel zinnia-devel gtk2-devel gyp ibus-devel emacs xemacs xemacs-packages-extra

1-3.ビルドできるか確認

rpmbuild --rebuild mozc-1.10.1390.102-1.fc19.src.rpm
sudo yum install --enablerepo=epel zinnia-devel gyp xemacs xemacs-packages-extra
rpmbuild --rebuild mozc-1.10.1390.102-1.fc19.src.rpm

2-1.RPMSに移動してyum localinstall

cd /home/usename/rpmbuild/RPMS/x86_64/
sudo yum localinstall emacs-common-mozc-1.10.1390.102-1.el7.centos.x86_64.rpm ibus-mozc-1.10.1390.102-1.el7.centos.x86_64.rpm mozc-1.10.1390.102-1.el7.centos.x86_64.rpm mozc-debuginfo-1.10.1390.102-1.el7.centos.x86_64.rpm

2-2.zinnia-tomoeが無い

通常のリポジトリにも無いのでepelで探す

sudo yum search --enablerepo=epel zinnia-tomoe

2-3.ソースインストールし、SPECファイルを編集する

cd ~/rpmbuild
rpm -ivh mozc-1.10.1390.102-1.fc19.src.rpm
cd ~/rpmbuild/SPECS/
vim mozc.spec
Requires: zinnia-tomoe <-- 削除
Requires: zinnia-tomoe-ja <-- 追加
Requires: zinnia-tomoe-zh_CN <-- 追加
cd ~/rpmbuild/SPECS/
sudo yum install --enablerepo=epel zinnia-tomoe-ja zinnia-tomoe-zh_CN
rpmbuild -ba mozc.spec
cd /home/usename/rpmbuild/RPMS/x86_64/
sudo yum localinstall emacs-common-mozc-1.10.1390.102-1.el7.centos.x86_64.rpm ibus-mozc-1.10.1390.102-1.el7.centos.x86_64.rpm mozc-1.10.1390.102-1.el7.centos.x86_64.rpm mozc-debuginfo-1.10.1390.102-1.el7.centos.x86_64.rpm
cd ../noarch
sudo yum localinstall *.rpm

3.デスクトップをログアウトし、vncサーバを再起動する

4-1.ctrl+shift+pでパッケージコントロールを呼び出す。

4-2.「Add Repository」を選択してEnter(注意!)

4-3.「https://github.com/yasuyuky/SublimeMozcInput」を入力

4-4.ctrl+shift+pでパッケージコントロールを呼び出す。

4-5.「sublimemozc」を選択してEnter

5-1.[ctrl]+[¥]で日本語入力になるとなっているが……
私の環境ではこの変換キーが上手く行かなかったので、[ctrl]+[space]に割り当てた

5-2.[ctrl]+[shift]+[p] でコマンドパレットを開く

5-3.keydef というように入力し、Preferences: Key Bindings – Userを選択する

Default (Linux).sublime-keymapが開くので、以下のように追記する

[
{ "keys": ["ctrl+space"], "command": "toggle_mozc" },
]

これで完成。
長かった。

SublimeText3で行った設定について1

■SublimeText3をCentOS7(&xfce)にインストール

■PackageControlのインストール

https://packagecontrol.io/installation
上記のURLに入っているページを参考に
1.View>ShowConsole
2.Sublime Text3のコードをコピーアンドペーストでコンソールに貼り付け、Enter。

■文字コード対応

ConverToUTF8
1.ctrl+shift+pでパッケージコントロールを呼び出す。
2.「Install Package」を選択を選択してEnter
3.「ConverToUTF8」を選択して、Enter
これで、UTF8以外の文書を開く事が出来るようになる。
保存するときには、元の文字コードで保存されるので心配しなくても良い。

■全角スペース対応

TralingSpaces
1.[Preference] → [Settings – User]
“draw_white_space”: “all”
(前の項目の最期に”,”を付けるのを忘れないこと)
2.ctrl+shift+pでパッケージコントロールを呼び出す。
3.「Install Package」を選択を選択してEnter
4.「TralingSpaces」を選択して、Enter
5.[Preference] → [PackageSetting] → [TrailingSpaces] → [Setting – User]
{
“trailing_spaces_regexp”: “ |[ \t]+”
}
を入力保存。再起動。

■対応するカッコを強調する

BracketHighlighter
1.ctrl+shift+pでパッケージコントロールを呼び出す。
2.「Install Package」を選択を選択してEnter
3.「BracketHighlighter」を選択して、Enter

■コマンドプロンプトを自動で開く

Terminal
1.ctrl+shift+pでパッケージコントロールを呼び出す。
2.「Install Package」を選択を選択してEnter
3.「Terminal」を選択して、Enter
4.「ctrl+shift+t」でファイルが存在するフォルダを開く

■オートコンプリート強化

All Autocomplete
1.ctrl+shift+pでパッケージコントロールを呼び出す。
2.「Install Package」を選択を選択してEnter
3.「All Autocomplete」を選択して、Enter

■python実行

SublimeREPL(SublimeREPLは多言語のインタープリターを実行するパッケージ)
1.ctrl+shift+pでパッケージコントロールを呼び出す。
2.「Install Package」を選択を選択してEnter
3.「SublimeREPL」を選択して、Enter

 

日本語環境の作成は、CentOSでは簡単にいかなかったので、別記事で。

CentOS7 + xfceでGoogleDrive(google-drive-ocamlfuse)をマウントする

1.opamを入れる(OCamlという関数型言語のパッケージマネージャ)

yum groupinstall "Development Tools"
yum install sqlite-devel fuse fuse-devel libcurl-devel zlib-devel m4
yum install ocaml ocamldoc ocaml-camlp4-devel ncurses-devel
cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/home:ocaml/CentOS_7/home:ocaml.repo
yum install opam

2.google-drive-ocamlfuseのインストール(root以外で行う処理)

opam installすると不足しているyumパッケージを教えてくれるので、それを入れた後もう一度コマンドを実行する
opam init
opam update
opam install google-drive-ocamlfuse

3.認証画面が出るので処理する(root以外で、GUI上の端末から行う)

vim ~/.bashrc
PATH=$PATH:$HOME/.opam/system/bin
export PATH
source ~/.bashrc

4.認証を行う。(ブラウザが立ち上がるため、GUI上の端末で行う)

google-drive-ocamlfuse

■マウント処理

1.rootでスクリプトを作成(usernameは実際に使うユーザに置き換えること)

cd /usr/bin

vim gdfuse

#!/bin/bash
su username -l -c "/home/username/.opam/system/bin/google-drive-ocamlfuse -label $1 $*"
exit 0

 

chmod +x /usr/bin/gdfuse

2.マウントポイントの作成($USERになってから行うこと)

sudo mkdir /mnt/gdrive
sudo chown $USER.$USER /mnt/gdrive

sudo vim /etc/fstab 次の行を追加(uid,gidは確認する。)

gdfuse#default /mnt/gdrive fuse uid=1000,gid=1000 0 0

3.マウントの実行($USERになってから行うこと)

sudo mount /mnt/gdrive

 

さくらVPSのCentOS7上にSublimetext3を使った開発環境を建てる2

デスクトップ環境:X-windowとxfce
リモートのサーバ:tigerVNCサーバ
環境:サーバ:さくらVPS 4Gプラン CentOS7 minimal クライアント:Windows10
■xfceを入れる
0.remiリポジトリを入れる(前提のepelを入れるのを忘れないように)
1.epel,remiリポジトリのenabled=0にしておく
2.デスクトップ関連のgroupinstall
yum groupinstall –enablerepo=epel “X Window System” XFCE Desktop Fonts
3.xfce4-terminalのインストール?必要じゃ無いかも
yum install –enablerepo=epel xfce4-terminal xfce-utils
4.iconのインストール
yum install gnome-icon*

■tigervnc
0.tigervncを入れる
yum install tigervnc*
cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
1.vim /etc/systemd/system/vncserver\@\:2.service を行う
<USER>となっている部分を利用するユーザに変更する

2.自動実行するように変更する
systemctl daemon-reload
systemctl enable vncserver@:2
systemctl restart vncserver@:2

3.ファイアーウォールの設定
firewall-cmd –permanent –zone=public –add-port=5902/tcp
firewall-cmd –reload

■日本語用TTFフォント(Ricty)を入れる
0.gitを入れる
yum install git
1.FontForge のインストール
yum install fontforge
2.Inconsolata(Font) のインストール
git clone https://github.com/google/fonts.git
3.Inconsolataフォントをシステムにコピー
cd fonts/ofl
cp -r inconsolata /usr/share/fonts/inconsolata
4.Migu 1M のインストール
wget https://osdn.jp/projects/mix-mplus-ipa/downloads/63545/migu-1m-20150712.zip
unzip migu-1m-20150712.zip
cd migu-1m-20150712
mkdir /usr/share/fonts/migu-1m
cp migu-1m-*.ttf /usr/share/fonts/migu-1m
5.フォントキャッシュを更新
fc-cache -f -v
6.Rictyスクリプトの入手
git clone https://github.com/yascentur/Ricty.git
7.Rictyスクリプトの実行とインストール
cd Ricty
sh ricty_generator.sh auto
mkdir /usr/share/fonts/Ricty
cp Ricty*.ttf /usr/share/fonts/Ricty
8.フォントキャッシュを更新
fc-cache -f -v

さくらVPSのCentOS7上にSublimetext3を使った開発環境を建てる

今後の方向として、Python使って機械学習を勉強することを目指す。その途中目的地として、Python使ってTwitterbot建てる。できればマルコフ連鎖とか使って。

んで、その開発環境として。VPSのCentOS7上にvncサーバを立てて、リモートデスクトップを使い接続する。んで、そこでSublimetext3を使ってコーディング。

  • デスクトップ環境:X-windowとxfce
  • リモートのサーバ:VNCとxrdpサーバ
  • 日本語環境:ibus-mozc

という感じで進める。進んだら、その状況を記事にする予定。