2019年10月31日木曜日

CentOS7 Mattermost 日本語全文検索設定

たてた Mattermost で 日本語全文検索 を可能にする - アレコレ・ティプス
http://asuki-yt.hatenablog.jp/entry/2018/04/03/200000

2019.10.31 現在、上記サイトの方法でできた。ありがとうございます。
CentOS7
MariaDB 10.1.30
Mattermost 5.16.1

私はMariaDB(MySQL)の設定については
/etc/my.conf に記述した。

2019年10月29日火曜日

CentOS7でDjangoとApache連携


CentOS7でDjangoとApache連携させて公開サイトにしようとしたら3日ほどもかかってしまいました...

1.CentOS7にPython2.7とは別途にPython3.7をインストール
これはわりとすなおにインストールできた。
参考:CentOS7にPython3.7をインストールする - Narito Blog
https://narito.ninja/blog/detail/20/

2.venv環境で mod_wsgi をインストール
これはインストールできなくて試行錯誤した。

3.以下のようなエラーでどうしても接続できない。
mod_wsgi: Exception occurred processing WSGI script '/var/www/python/myproject/mysite'
・・・
ModuleNotFoundError: No module named 'mysite'
(/var/log/httpd/error_logより)

最終的に以下をみつけて解決しました。

Python 3 + mod_wsgi + Django - おっさんプログラマの戯れ言
https://unk-pizza.hatenadiary.org/entry/20170601/p1

$ vim /var/www/python/myproject/mysite/wsgi.py

import os
import sys  # 追加

from django.core.wsgi import get_wsgi_application

sys.path.append('/var/www/python/myproject')          # 追加 sys.path.append('/var/www/python/myproject/mysite')   # 追加

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "test_site.settings")

application = get_wsgi_application()
os.environ.setdefault(・・・)を追加しろというサイトはあったのですが、ファイル末尾に追加してまったく効果がなくて、上記サイトをみてそのとおりに位置を替えたところOKとなりました。

4.DBが開けない
公開URLにしたらDBが開けない Unable to open database というエラーが発生。DBファイルへのパス設定が問題でした。

5.最後に静的ファイルの設定
このままだとCSSファイルやJSファイルを読み込んでくれないので、くずれた表示になります。
まず
$ python manage.py collectstatic
で静的ファイルを/STATIC/ディレクトリに集めます。

次に以下を参考にSTATICとMEDIAディレクトリをApacheで配信できるようにします。

静的ファイルのデプロイ

ファイルを配信する

以上です。

Django 公開URLにしたらDBが開けない

Django-CMSをセッティングして、開発用サーバー($ python manage.py runserver)では問題なかったのですが、Apacheで公開URLに切り替えたところ、

unable to open database file

とのエラー。このときはDBはsqliteでした。Googleでは、DBファイルのパーミッションを書き込み許可しろというようなことが多くでていましたが、パーミッションはOKなのでおかしいなとしばらく調べたところ、DB名設定にパスが必要なようでした。

setting.pyの以下を修正すると見事ログイン画面が表示されました。

DATABASES = {
    'default': {
        'CONN_MAX_AGE': 0,
        'ENGINE': 'django.db.backends.sqlite3',
        'HOST': 'localhost',
        #'NAME': 'project.db', ##これを下に変更する
        'NAME': os.path.join(BASE_DIR, 'project.db'),
        'PASSWORD': '',
        'PORT': '',
        'USER': ''
    }
}


CentOS7 Python3.7 で mod_wsgi がインストールできない

CentOS7にPython3.7をインストールする - Narito Blog
https://narito.ninja/blog/detail/20/

上記を参考に、まずCentOS7にPython3.7.3を次のようにインストールした。

$ curl -O https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
$ tar xf Python-3.7.3.tgz
$ cd Python-3.7.3
$ ./configure
$ make
$ sudo make altinstall

上記でインストールすると、
$ python3.7 -m venv venv
後の仮想環境で、
(venv) $ pip install mod_wsgi
がエラーでインストールできなかった。
もう一度、./configure に --enable-shared オプションをつけてmakeをやりなおしてみた。
参考:https://qiita.com/methane/items/bf0b74550bee125cdea4

$ ./configure --enable-shared
$ make
$ sudo make altinstall

しかし、今度は ......soがないということでpython3.7自体が起動せず。
もう一度、以下を実行した。

$ ./configure
$ make
$ sudo make altinstall

すると、
$ python3.7 -m venv venv
(venv) $ pip install mod_wsgi

Collecting mod_wsgi
Using cached https://files.pythonhosted.org/packages/25/d8/1df4ba9c051cd88e02971814f0867274a8ac821baf983b6778dacd6e31f7/mod_wsgi-4.6.8.tar.gz
Installing collected packages: mod-wsgi
Running setup.py install for mod-wsgi ... done
Successfully installed mod-wsgi-4.6.8

あっさり成功した。。。