Descripción del entorno del sistema
Sistema: CentOS-8.2.2004
Plataforma:x86-64
Herramientas utilizadas para instalar
git
instalación
dnf install git
Descarga de software
Compilar e instalar, adquisición de código fuente
git clone https://github.com/kimchi-project/wok.git
La github
velocidad de salida del código fuente es relativamente lenta. Puedes usar la aceleración del espejo doméstico. Para los métodos de aceleración del espejo doméstico, consulta Github Aceleración del espejo doméstico . Para la duplicación acelerada, consulta el espejo acelerado de GitHub.
Instalación dependiente
Compilar instalación dependiente
wok
Necesidad de compilación automake
, gcc
, make
y otros dependientes
dnf install automake gcc make
pip3 install pyflakes
Ejecutar instalación de dependencia
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
instalación
cd wok
git checkout 3.0.0
./autogen.sh --system
make
make install
Configuraciónwok
- Apague SELinux
# 永久关闭/启动:修改/etc/sysconfig/selinux后重启系统
vim /etc/sysconfig/selinux # 将“SELINUX=enforcing“改成“SELINUX=desabled”
- El firewall permite el acceso al puerto y el wok usa el puerto 8001 de forma predeterminada. Para conocer las operaciones comunes del firewall, consulte Centos8 Firewall Operations
firewall-cmd --add-port=8001/tcp --permanent
firewall-cmd --reload
- Configurar arranque
systemctl enable wokd
Habilitar la depuración del modo de desarrollo
python3 /bin/wokd --environment=dev
wok
Instalación de complemento
kimchi
Instalación, consulte instalación e implementación de kimchi en CentOS8
problema comun
Problema de compilación
- La ejecución
./autogen.sh --system
informó el siguiente error
./autogen.sh: line 23: aclocal: command not found
./autogen.sh: line 24: automake: command not found
./autogen.sh: line 25: autoreconf: command not found
Solución: faltan automake
herramientas
dnf install automake
- El mensaje de error es el siguiente
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: no acceptable C compiler found in $PATH
Solución: faltagcc
dnf install gcc
- El mensaje de error es el siguiente
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'
Solución:
automake --add-missing
- El mensaje de error es el siguiente
checking whether make sets $(MAKE)... no
Solución: faltamake
dnf install make
- El mensaje de error es el siguiente
checking for pyflakes... no
configure: WARNING: pyflakes not found
Solución:
pip3 install pyflakes
Problema de ejecución
- El mensaje de error es el siguiente
ModuleNotFoundError: No module named 'cherrypy'
Solución:
pip3 install cherrypy
- El mensaje de error es el siguiente
ModuleNotFoundError: No module named 'ldap'
Solución: se produjo un error durante el proceso de instalación, consulte el manejo de errores comunes de Python [sistema CentOS8] (aplicación de instalación de pip)
pip3 install python-ldap
- El mensaje de error es el siguiente
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'
Solución:
pip3 install python-pam
- El mensaje de error es el siguiente
ModuleNotFoundError: No module named 'Cheetah'
Solución:
pip3 install Cheetah3
- El mensaje de error es el siguiente
ModuleNotFoundError: No module named 'lxml'
Solución:
pip3 install lxml
- El mensaje de error es el siguiente
ModuleNotFoundError: No module named 'psutil'
Solución:
pip3 install psutil
- El mensaje de error es el siguiente
ModuleNotFoundError: No module named 'websockify'
Solución: 注意
: kimchi
usar la versión más reciente websockify
hay un problema
pip3 install websockify==0.7.0
- El mensaje de error es el siguiente
ModuleNotFoundError: No module named 'jsonschema'
Solución:
pip3 install jsonschema
- El mensaje de error es el siguiente
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.
Solución:
dnf install nginx
Problema de configuración
- El mensaje de error es el siguiente
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
Después de la ejecución systemctl status nginx.service
, el mensaje de error se muestra de la siguiente manera
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
Ejecute el tail -100f /var/log/nginx/error.log
comando para ver la información del error del registro, la información del error se muestra de la siguiente manera
63706#0: bind() to 0.0.0.0:8001 failed (13: Permission denied)
Solución: La causa del problema es que SELinux intercepta las solicitudes de Nginx de forma predeterminada según el principio de privilegio mínimo, que se puede resolver desactivando SELinux
# 临时关闭 SELinux
setenforce 0
# 临时启动
SELinux:setenforce 1
# 永久关闭/启动:修改/etc/sysconfig/selinux后重启系统
vim /etc/sysconfig/selinux # 将“SELINUX=enforcing“改成“SELINUX=desabled”