システム環境の説明
システム:CentOS-8.2.2004
プラットフォーム:x86-64
インストールに使用されるツール
git
インストール
dnf install git
ソフトウェアのダウンロード
コンパイルとインストール、ソースコードの取得
git clone https://github.com/kimchi-project/wok.git
ソースコードのgithub
チェックアウト速度は比較的遅いです。国内ミラー加速を使用できます。国内ミラー加速方法については、Github国内ミラー加速を参照してください。加速ミラーリングについては、GitHub加速ミラーリングを参照してください。
依存インストール
依存インストールをコンパイルする
wok
コンパイルの必要性automake
、gcc
、make
およびその他の依存
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
- SELinuxをオフにします
# 永久关闭/启动:修改/etc/sysconfig/selinux后重启系统
vim /etc/sysconfig/selinux # 将“SELINUX=enforcing“改成“SELINUX=desabled”
- ファイアウォールはポートへのアクセスを許可し、wokはデフォルトでポート8001を使用します。一般的なファイアウォール操作については、centos8ファイアウォールの一般的な操作を参照してください。
firewall-cmd --add-port=8001/tcp --permanent
firewall-cmd --reload
- 起動を設定する
systemctl enable wokd
開発モードのデバッグを有効にする
python3 /bin/wokd --environment=dev
wok
プラグインのインストール
kimchi
インストール、CentOS8でのkimchiのインストールと展開を参照してください
一般的な問題
コンパイルの問題
- 実行
./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
- エラーメッセージは次のとおりです
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
- エラーメッセージは次のとおりです
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
- エラーメッセージは次のとおりです
checking whether make sets $(MAKE)... no
解決策:欠落make
dnf install make
- エラーメッセージは次のとおりです
checking for pyflakes... no
configure: WARNING: pyflakes not found
解決:
pip3 install pyflakes
実行中の問題
- エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'cherrypy'
解決:
pip3 install cherrypy
- エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'ldap'
解決策:インストールプロセス中にエラーが発生しました。pythonの一般的なエラー処理[CentOS8システム](pipインストールアプリケーション)を参照してください。
pip3 install python-ldap
- エラーメッセージは次のとおりです
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
- エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'Cheetah'
解決:
pip3 install Cheetah3
- エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'lxml'
解決:
pip3 install lxml
- エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'psutil'
解決:
pip3 install psutil
- エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'websockify'
ソリューション:注意
:kimchi
最新バージョンを使用してwebsockify
問題があります
pip3 install websockify==0.7.0
- エラーメッセージは次のとおりです
ModuleNotFoundError: No module named 'jsonschema'
解決:
pip3 install jsonschema
- エラーメッセージは次のとおりです
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
構成の問題
- エラーメッセージは次のとおりです
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”