Python3が入ってないし。
https://weblabo.oscasierra.net/python3-centos7-yum-install/
を参考にPython3のインストールから。
# yum install -y https://centos7.iuscommunity.org/ius-release.rpm
3.6系を入れることにする
# yum install -y python36u python36u-devel python36u-pip
/usr/bin/python3.6にインストールされたので.bashrcに
alias python3='/usr/bin/python3.6'
と追加してpython3で起動できるようにしておく。それか
$ sudo ln -s /bin/python3.6 /bin/python3
リンクを張っておいたほうが確実か。
pip3をインストール
# easy_install-3.6 pip
MySQLが入ってない。
MariaDBをインストールしよう。
https://qiita.com/sawarame/items/c7d188214128c4017081
「CentOS」→「CentOS 7 (x86_64)」→「10.2」
/etc/yum.repos.d/mariadb.repoを作成
# MariaDB 10.2 CentOS repository list - created 2018-01-09 02:12 UTC # http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
インストール
$ sudo yum install MariaDB-server MariaDB-client
起動
$ sudo /etc/init.d/mysql start
MySQLにアクセスする
$ mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 9 Server version: 10.2.12-MariaDB MariaDB Server Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
インストールは成功した模様。まずはrootにパスワードを設定しておく。
MariaDB [(none)]> set password for 'root'@'localhost'=password('xxxxxxxxxxx');
管理を容易にするためにlocal以外からのアクセスができるようポートを開けてやる必要があるかな。
あとデータベースアプリ用のポートも開けないと。
https://eng-entrance.com/linux-centos-port
しかしroot userのリモートログインはちょいと避けたほうが良いし、その他セキュリティ面の初期設定をやっとく。
$ sudo /usr/bin/mysql_secure_installation
すでにパスワードは設定したのでそこはnにして、その他はすべてyにしておく。
というわけで無事アプリを走らせることに成功したのだけれど。
速度が出ない。検索は数ミリsecのオーダーだけど、検索結果をWEBページにレンダリングする部分が絶望的に遅い。
検索にかかる時間も、実際のところSQLiteで3msくらいであるところがMySQLだと8msくらいかかっているわけだから、速度は2倍以上遅いということになるんだろう。これはPythonの限界なのか?それともMySQL-Pythonの相性の問題?pythonのプログラムはそんなに複雑な処理をさせているわけではないはずなんだけどなあ。nginx+uWSGIにwebサーバ機能を移行すれば改善するんだろうか。