【運用・保守】CentOS8システムにwokをインストールしてデプロイする

システム環境の説明

システム:CentOS-8.2.2004
プラットフォーム:x86-64

インストールに使用されるツール

  1. gitインストール
dnf install git

ソフトウェアのダウンロード

コンパイルとインストール、ソースコードの取得

git clone https://github.com/kimchi-project/wok.git

ソースコードのgithubチェックアウト速度は比較的遅いです。国内ミラー加速を使用できます。国内ミラー加速方法については、Github国内ミラー加速を参照しください。加速ミラーリングについては、GitHub加速ミラーリングを参照しください

依存インストール

依存インストールをコンパイルする

wokコンパイルの必要性automakegccmakeおよびその他の依存

dnf install automake gcc make
pip3 install pyflakes

依存関係のインストールを実行する

dnf install python36-devel openldap-devel nginx
pip3 install cherrypy python-ldap python-pam Cheetah3 lxml psutil jsonschema
pip3 install websockify==0.7.0

wokインストール

cd wok
git checkout 3.0.0
./autogen.sh --system
make 
make install

構成wok

  1. SELinuxをオフにします
# 永久关闭/启动:修改/etc/sysconfig/selinux后重启系统
vim /etc/sysconfig/selinux # 将“SELINUX=enforcing“改成“SELINUX=desabled”
  1. ファイアウォールはポートへのアクセスを許可し、wokはデフォルトでポート8001を使用します。一般的なファイアウォール操作については、centos8ファイアウォールの一般的な操作を参照してください。
firewall-cmd --add-port=8001/tcp --permanent 
firewall-cmd --reload
  1. 起動を設定する
systemctl enable wokd

開発モードのデバッグを有効にする

python3 /bin/wokd --environment=dev

wokプラグインのインストール

  1. kimchiインストール、CentOS8でのkimchiのインストールと展開を参照してください

一般的な問題

コンパイルの問題

  1. 実行./autogen.sh --systemにより、次のエラーが報告されました
./autogen.sh: line 23: aclocal: command not found
./autogen.sh: line 24: automake: command not found
./autogen.sh: line 25: autoreconf: command not found

解決策:不足しているautomakeツール

dnf install automake
  1. エラーメッセージは次のとおりです
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: no acceptable C compiler found in $PATH

解決策:欠落gcc

dnf install gcc
  1. エラーメッセージは次のとおりです
configure.ac:59: error: required file 'build-aux/compile' not found
configure.ac:59:   'automake --add-missing' can install 'compile'
configure.ac:59: error: required file 'build-aux/config.guess' not found
configure.ac:59:   'automake --add-missing' can install 'config.guess'
configure.ac:59: error: required file 'build-aux/config.sub' not found
configure.ac:59:   'automake --add-missing' can install 'config.sub'

解決:

automake --add-missing
  1. エラーメッセージは次のとおりです
checking whether make sets $(MAKE)... no

解決策:欠落make

dnf install make
  1. エラーメッセージは次のとおりです
checking for pyflakes... no
configure: WARNING: pyflakes not found

解決:

pip3 install pyflakes

実行中の問題

  1. エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'cherrypy'

解決:

pip3 install cherrypy
  1. エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'ldap'

解決策:インストールプロセス中にエラーが発生しました。pythonの一般的なエラー処理[CentOS8システム](pipインストールアプリケーション)を参照してください。

pip3 install python-ldap
  1. エラーメッセージは次のとおりです
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/wok/auth.py", line 34, in <module>
    import PAM
ModuleNotFoundError: No module named 'PAM'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/bin/wokd", line 30, in <module>
    import wok.server
  File "/usr/lib/python3.6/site-packages/wok/server.py", line 28, in <module>
    from wok import auth
  File "/usr/lib/python3.6/site-packages/wok/auth.py", line 36, in <module>
    import pam as PAM
ModuleNotFoundError: No module named 'pam'

解決:

pip3 install python-pam
  1. エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'Cheetah'

解決:

pip3 install Cheetah3
  1. エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'lxml'

解決:

pip3 install lxml
  1. エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'psutil'

解決:

pip3 install psutil
  1. エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'websockify'

ソリューション:注意kimchi最新バージョンを使用してwebsockify問題があります

pip3 install websockify==0.7.0
  1. エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'jsonschema'

解決:

pip3 install jsonschema
  1. エラーメッセージは次のとおりです
rc: 4 error: Redirecting to /bin/systemctl status nginx.service
Unit nginx.service could not be found.
 returned from cmd: service nginx status
Redirecting to /bin/systemctl start nginx.service
Failed to start nginx.service: Unit nginx.service not found.

解決:

dnf install nginx

構成の問題

  1. エラーメッセージは次のとおりです
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

実行後systemctl status nginx.service、エラーメッセージは次のように表示されます

Oct 23 21:57:03 kimchi nginx[63332]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Oct 23 21:57:03 kimchi nginx[63332]: nginx: [emerg] bind() to 0.0.0.0:8001 failed (13: Permission denied)
Oct 23 21:57:03 kimchi nginx[63332]: nginx: configuration file /etc/nginx/nginx.conf test failed

tail -100f /var/log/nginx/error.logコマンドを実行してログエラー情報を表示すると、エラー情報は次のように表示されます。

63706#0: bind() to 0.0.0.0:8001 failed (13: Permission denied)

解決策:問題の原因は、SELinuxが最小特権の原則に基づいてデフォルトでNginx要求を傍受することです。これは、SELinuxをオフにすることで解決できます。

# 临时关闭 SELinux
setenforce 0
# 临时启动 
SELinux:setenforce 1
# 永久关闭/启动:修改/etc/sysconfig/selinux后重启系统
vim /etc/sysconfig/selinux # 将“SELINUX=enforcing“改成“SELINUX=desabled”

おすすめ

転載: blog.csdn.net/macaiyun0629/article/details/109211522