ひじりんのひつまむしブログ

現役システムエンジニアのゲームやら映画やら技術やら・・

AlmaLinux 8にFreeSFAをインストール

 

SFAとは

Sales Force Automation 営業支援ツール。
いくつか、酒類がありますが、今回は、オープンソースのFreeSFAを
インストールしたいと思います

 

pythonのインストール

FreeSFAは、PythonDjangoで動いていますので
そちらをインストールします

 

hijirinhima.hatenablog.com

 

データベースの構築

FreeSFAは、PostgreSQLMySQLなどに対応していますが
今回はMySQLを入れます

 

hijirinhima.hatenablog.com

 

また、データベースの文字コードもそろえておきましょう

 

hijirinhima.hatenablog.com

 

準備ができると、空のデータベースを作ります

#mysql -u root

mysql>CREATE DATABASE freesfa CHARACTER SET utf8mb4;

mysql>CREATE USER 'freesfa'@'localhost' IDENTIFIED BY 'freesfa';

mysql>GRANT ALL ON freesfa.* TO 'freesfa'@'localhost';

 

FreeSFA用のユーザを作成

FreeSFA用のユーザを作ります

# addusr freesfa

 

FreeSFA本体を取得

#cd /home/freesfa

#git clone https://github.com/sikkimtemi/FreeSFA.git

 

#cd FreeSFA

#cd IISE

#vi local_sttings.py

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

SECRET_KEY = '6jn1ssy-4-0(he(8w((l*53f2gjuzgo$u134zoj73*ebgq+!j%'

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'freesfa',
        'USER': 'freesfa',
        'HOST': 'localhost',
        'PASSWORD': 'freesfa',
        'PORT': '3306',
        'OPTIONS': {
            'charset': 'utf8mb4',
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        }
    }
}

DEBUG = True

ALLOWED_HOSTS = [
    '*',
]

# SOCIAL AUTH
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = ''
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = ''
#SOCIAL_AUTH_TWITTER_KEY = ''
#SOCIAL_AUTH_TWITTER_SECRET = ''
#SOCIAL_AUTH_GITHUB_KEY = ''
#SOCIAL_AUTH_GITHUB_SECRET = ''

# reCAPTCHA
GOOGLE_RECAPTCHA_SITE_KEY = ''
GOOGLE_RECAPTCHA_SECRET_KEY = ''

# Mail server
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'myuser'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_USE_SSL = True

 


 起動させる

#cd FreeSFA

パッケージのインストール

#pip install -r requirements.txt

 

私の環境では、ikp3db のバージョン的に合わないらしい

ikp3db は、python3.6が必要で、私のpipが3.7以上が必要で合わなかった

#vi requirements.txt

ikp3db==1.4.1

に変更

 

psycopg2 でもエラーが・・

# Error: pg_config executable not found.

これは、pg (PostgreSQL)が無かったみたい

#dnf install postgresql-devel

こちらも必要ですね

#dnf install gcc python38-devel python38-psycopg2 postgresql-contrib

また、下記のようなバージョンが出る場合

      psycopg/psycopgmodule.c: In function ‘psyco_is_main_interp’:
      psycopg/psycopgmodule.c:689:18: error: dereferencing pointer to incomplete type ‘PyInterpreterState’ 

バグのようで、バージョン更新されているようです

psycopg2==2.8.5
psycopg2-binary==2.8.4

といったように、バージョンの修正

 

DBの作成

#python manage.py migrate

 

こんどは、このエラー

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?

もう、ほんと、かんべんしてほしいよ・・・

#pip install pymysql

そして、IISE フォルダ上の __init__.py に下記を加える

#cd IISE

#vi __init__.py

import pymysql

pymysql.install_as_MySQLdb()

 

これで、DB作成ができる。再度実行

#python manage.py migrate

 

ユーザの作成

#python manage.py createsuperuser

Email address: *******
Password: *******
Password (again): ******
Superuser created successfully.

 

ここまで出来たらあと1歩?

#python manage.py runserver サーバIP:8000

 

ん・・・ここでも、ログインすると

TypeError: not enough arguments for format string

 

これは、依存する defusedxml が、0.5.0 だと、python3.6 までだそう

defusedxml==0.7.1

バージョンを変更してパッケージを入れ直し

#pip install -r requirements.txt

 

さて、

 

PVアクセスランキング にほんブログ村