本家様 http://emg.nysbc.org/redmine/projects/appion/wiki/Appion_Home
CentOS 7.6 に入れてみた
以下のパッケージが必要みたい
http://emg.nysbc.org/redmine/projects/appion/wiki/Download_additional_Software_(CentOS_Specific)
yum install \
python-tools python-devel python-matplotlib \
subversion ImageMagick grace gnuplot \
wxPython numpy scipy python-imaging \
gcc-gfortran compat-gcc-34-g77 \
gcc-objc fftw3-devel gsl-devel \
mysql mysql-server MySQL-python \
httpd php php-mysql phpMyAdmin \
gcc-c++ openmpi-devel libtiff-devel \
php-devel gd-devel re2c fftw3-devel php-gd \
xorg-x11-server-Xvfb netpbm-progs \
libssh2-devel
だが、、品目が正しくない.
「mysql」「mysql-server」は「mariadb」「mariadb-server」にすべきかな
CentOS 7.6に「compat-gcc-34-g77」は入っていない。CentOS6向けのパッケージである。
このパッケージは「Fortran 77 support for compatibility compiler」として「g77」が入っている。
CentOS 7.6でg77って、見当たらない..「yum provides */g77」から..
補足
「php-pecl-ssh2」パッケージが必要であった
「/etc/my.cnf.d/server.cnf」を修正します。
[mysqld]セクションの最後に下記を追加します
[root@c ~]# vi /etc/my.cnf.d/server.cnf
:
:
[mysqld]
query_cache_type = 1
query_cache_size = 100M
query_cache_limit= 100M
default_storage_engine=MyISAM
[mysqldump]
:
[root@c ~]#
この後データベースを起動させます
[root@c ~]# systemctl enable mariadb
[root@c ~]# systemctl start mariadb
次にAppion向けのデータベースを作ります
[root@c ~]# mysqladmin create leginondb
[root@c ~]# mysqladmin create projectdb
mysqlにアクセスするユーザを作成。ここでは「usr_object」なるユーザを作る
[root@c ~]# mysql -u root mysql
mysql> CREATE USER usr_object@'%.sybyl.local' IDENTIFIED BY 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
mysql> GRANT ALTER, CREATE, INSERT, SELECT, UPDATE ON leginondb.* to usr_object@'%.sybyl.local';
mysql> GRANT ALTER, CREATE, INSERT, SELECT, UPDATE ON projectdb.* to usr_object@'%.sybyl.local';
*あるいは簡単に
CREATE USER usr_object@'localhost';
GRANT ALL PRIVILEGES ON leginondb.* TO usr_object@'localhost';
GRANT ALL PRIVILEGES ON projectdb.* TO usr_object@'localhost';
これでmysqlユーザの「usr_object」は「leginondb」「projectdb」データベースに作られるスキーマにアクセス可能となった。
次に「ap」から始まるデータベースに対しての操作をmysqlユーザの「usr_object」に与える
*「ap」から始まるデータベースはこの段階ではまだ存在しませんけど
mysql> GRANT ALTER, CREATE, INSERT, SELECT, UPDATE, DELETE ON `ap%`.* to usr_object@'%.sybyl.local';
*あるいは簡単に
GRANT ALTER, CREATE, INSERT, SELECT, UPDATE, DELETE ON `ap%`.* to usr_object@localhost;
ここまできたら、mysqlユーザの「usr_object」で接続テストを行う
[root@c ~]# mysql -u usr_object -D leginondb -h c.sybyl.local -p #あるいは「mysql -u usr_object -D leginondb」
Enter password:
mysql> SHOW VARIABLES LIKE 'query%';
+------------------------------+-----------+
| Variable_name | Value |
+------------------------------+-----------+
| query_alloc_block_size | 8192 |
| query_cache_limit | 104857600 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 104857600 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
| query_prealloc_size | 8192 |
+------------------------------+-----------+
7 rows in set (0.00 sec)
mysql> quit
[root@c ~]#
コマンドラインで接続テスト
[root@c ~]# php -r "mysql_connect('c.sybyl.local','usr_object','XXXXXXXXXXX','leginondb'); echo mysql_stat();";echo ""
Uptime: 2580 Threads: 1 Questions: 37 Slow queries: 0 Opens: 16 Flush tables: 1 Open tables: 9 Queries per second avg: 0.14
[root@c ~]#
*あるいは
php -r "mysql_connect('localhost','usr_object','','leginondb'); echo mysql_stat();";echo ""
データの置き場所とかを考える
「/your_file_server_mount_point/whatever」
な場所を定義しておく。
ここでは「/home」でいいかなぁ
gitから入手する。
基本、gitで取得した場所でアプリを展開する感じ
[root@c ~]# cd /Appl
[root@c Appl]# git clone -b myami-3.3 http://emg.nysbc.org/git/myami myami
(appionパッケージをインストールします)
[root@c Appl]# cd myami/appion
[root@c appion]# python setup.py install --install-scripts=/Appl/appion *「Appionは/Appl/appionへ」
(次にmyamiパッケージをインストールします)
[root@c ~]# cd /App/myami
[root@c myami]# export PYTHONPATH=/Appl/myami/lib/python2.7/site-packages:/Appl/myami/lib64/python2.7/site-packages
[root@c myami]# ./pysetup.sh install --prefix=/Appl/myami *「--prefixを付けないと /usr/lib/python2.7 にインスト」
Log file: /Appl/myami/pysetup.log
processing pyami... ok.
processing sinedon... ok.
processing redux... ok.
processing imageviewer... ok.
processing leginon... ok.
processing pyscope... ok.
processing slack... ok.
processing modules/radermacher... ok.
processing modules/libcv... ok.
processing modules/numextension... ok.
[root@c myami]#
次に設定ファイをコピーします。
[root@c ~]# cp /Appl/myami/leginon/leginon.cfg.template /etc/myami/leginon.cfg
[root@c ~]# cp /Appl/myami/sinedon/examples/sinedon.cfg /etc/myami/sinedon.cfg
これが済めばコマンドラインで一応Appionは使えるっぽい
*myamiのインストールで「--prefix」を付けたなら別途「export PYTHONPATH」が必要
[illya@c ~]$ export PYTHONPATH=/Appl/myami/lib/python2.7/site-packages:/Appl/myami/lib64/python2.7/site-packages
[illya@c ~]$ /Appl/appion/gctf.py
/usr/lib64/python2.7/site-packages/matplotlib/__init__.py:1005: UserWarning: This call to matplotlib.use() has no effect
because the the backend has already been chosen;
matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.
warnings.warn(_use_error_msg)
... Time stamp: 19mar17d45
... Function name: gctf
... Appion directory: /usr/lib/python2.7/site-packages
... Processing hostname: c.sybyl.local
Usage: gctf.py --projectid=## --runname=<runname> --session=<session> --preset=<preset> --description='<text>' --commit [options]
:
:
[illya@c ~]$
matplotlibの警告が出るが一応使えるっぽい
[root@c ~]# easy_install fs==0.5 PyFFTW3
[root@c ~]# cd /Appl/myami/
[root@c myami]# cp -r ./myamiweb /var/www/myamiweb
[root@c myami]# chmod 777 /var/www/myamiweb
[root@c ~]# cd /Appl/myami/redux/
[root@c redux]# cp redux.cfg.template /etc/myami/redux.cfg
「redux.cfg」を修正する
--- redux.cfg.template 2019-03-12 01:15:55.878031945 +0900
+++ /etc/myami/redux.cfg 2019-03-12 01:38:42.530698946 +0900
@@ -10,11 +10,11 @@
# Sizes are in MB
[cache]
-enable: no
+enable: yes
path: /var/cache/myami/redux
disksize: 500
memsize: 500
# default uses current directory... better to specify full path
[log]
-file: redux.log
+file: /var/log/redux.log
[cache]の場所を確保する
[root@c ~]# mkdir -p /var/cache/myami/redux
サイトの設定ファイルを用意します
[root@c ~]# vi /etc/httpd/conf.d/myamiweb.conf
Alias /myamiweb /var/www/myamiweb
<Directory /var/www/myamiweb >
DirectoryIndex index.php
Options -Indexes
AllowOverride all
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory>
[root@c ~]# apachectl configtest
reduxdデーモンを起動させる。
[root@c ~]# chkconfig --add reduxd <-- appionパッケージをインストールした際に置かれる
[root@c ~]# vi /etc/init.d/reduxd
:
# Source function library.
. /etc/rc.d/init.d/functions
+export PATH=/Appl/myami/bin:$PATH
+export PYTHONPATH=/Appl/myami/lib/python2.7/site-packages:/Appl/myami/lib64/python2.7/site-packages
prog=reduxd
:
[root@c ~]# systemctl daemon-reload
[root@c ~]# systemctl start reduxd
[root@c ~]# systemctl status reduxd
正常に動いたかは「systemctl status reduxd」の確認のほか、ログファイル「/var/log/redux.log」も確認する
その後、webサーバを立ち上げて該当URLへアクセスする。ここでは「c.sybyl.local/myamiweb/setup」
[root@c ~]# systemctl restart httpd
すると下記のような画面が表示される
ログイン設定は「Enable Login System:」は「No」、「Enable "Anonymous" login option:」を「YES」にしてみた
次に、データベースとの接続設定画面になる。
ここでは下記のようにしました
項目 | 値 |
Enter the Database Host Name: | localhost |
Enter the Database username: | usr_object |
Enter the Database password: | |
Enter the Leginon database name: | leginondb |
Enter the Project database name: | projectdb |
次に、その他のセットアップ画面になって
「Enter Redux Image Server location and port:」は、「localhost」、port番号は「55123」とします。
具体的には、/var/log/redux.log に記載されています。
「Do you want to enable PHP image caching for faster image viewing?」は取りあえず、「No」
「Do you want to enable the Appion image processing pipeline」は「Yes」にする。
「Enter Appion database prefix:」はそのまま「ap」
「Do you wish to use the IMAGIC image processing package」は「Yes」
「Do you wish to use programs that require MATLAB?」は持ってないので「No」
「Do you want to use image processing tools that are still under development?」はそのまま「No」
「Enter a temporary upload directory location.」は「/home/appion/temp」として「mkdir -p /home/appion/temp && chmod 777 /home/appion/temp」
「Enter a default Appion base directory location.」は「/Appl/appion」
計算を実行するノードの登録を行う。ここでは「localhost」のみ登録します。
「Local cluster host name :」は「localhost」
「Path to Appion Scripts :」は「/Appl/appion」
「Path to appionlib directory :」は「/Appl/myami/appion/appionlib」
「Base output directory :」は「/home/appion」
「Directory Seperator, eg. / :」は「/」
このときにapacheユーザによる設定ファイル「/var/www/myamiweb/config.php」が作成されます。
内容を確認して「DB initialiization」ボタンを押下します。
これが完了すれば、「http://localhost/myamiweb/index.php」にてパスワードなしで下記画面が表示される