Red de conocimiento de recetas - Recetas gastronómicas - Tutorial gratuito de instalación del servidor webTutorial gratuito de instalación del servidor web

Tutorial gratuito de instalación del servidor webTutorial gratuito de instalación del servidor web

1. ¿Qué es Baoer?

BOA es un servidor web muy compacto con código fuente abierto y excelente rendimiento. Admite la tecnología de interfaz de puerta de enlace universal CGI y es especialmente adecuado para sistemas integrados.

La función principal del servidor BOA es intercambiar información entre dispositivos integrados interconectados, monitoreando así los dispositivos integrados a través de la red y cargando automáticamente información de retroalimentación al dispositivo de control principal. Se basa en el protocolo de transferencia de hipertexto HTTP y las páginas web son la unidad de transmisión más básica de servicios web.

Los servicios web integrados funcionan según el modelo informático cliente/servidor, que consta de un navegador web y un servidor web, que es la famosa estructura B/S. El navegador que se ejecuta en el cliente primero debe establecer una conexión con el servidor web incorporado BOA y abrir un archivo virtual SOCKET, lo que indica que la conexión SOCKET se ha establecido correctamente. Luego, el navegador del cliente envía una solicitud al servidor web en forma de parámetros GET o POST pasados ​​a través del socket, y el navegador web envía la solicitud y la envía al servidor web a través del protocolo HTTP. Una vez que el servidor web recibe la solicitud, realiza el procesamiento de transacciones de acuerdo con diferentes solicitudes, devuelve un archivo HTML o llama a una aplicación externa a través de CGI y devuelve los resultados del procesamiento.

El servidor interactúa con aplicaciones y scripts externos a través de CGI. Dependiendo del método utilizado por el navegador del cliente al realizar la solicitud, el servidor recopilará la información proporcionada por el cliente y la enviará al programa de extensión CGI designado, que procesará la información y devolverá los resultados al servidor, y luego el servidor procesar la información Analizar y enviar los resultados al cliente para mostrarlos en el navegador.

2. Pasos del trasplante de boa

Plataforma: ubuntu16.04 Versión: boa-0.94.13.tar.gz

1 Dirección de descarga:

p>

3. Instalar el analizador léxico

$sudoapt-getinstallbison

$sudoapt-getinstallflex

Yacc es el generador del analizador léxico, bison Es la versión GNU de yacc. Lex y YACC son herramientas para crear analizadores y analizadores léxicos. Al utilizar Lex y YACC, puedes construir fácilmente un intérprete de gramática.

4. Modificar la codificación

Abra el archivo Src/compat.h.

src/compatibility.h

Modificación

120: # definir zona horaria _ offset foo # #-TM _ GMT off

Abrir archivo para

120: # definir zona horaria _ OFFSET-TM _ GMT off

Src/log.c:

src/log.c

p>

3.Bank of America

5. Compile Peng@Ubuntu: ~/boa/boa-0.94.13$CD src/

Peng@Ubuntu: ~/ boa/boa-0 .94 13/fuente $.

/configure-prefix =/home/Peng/boa/boa-0 94 13/tmp

Peng@Ubuntu: ~/boa/boa-0 . >

Peng@Ubuntu:~/boa/boa-0.94.13/src $ sudomkdir/etc/boa

Peng@Ubuntu:~/boa/boa-0.94.13/ src $ sudocp. ./boa.conf/etc/boa

6. Modificar el archivo de configuración boa.conf

Modificar el registro de acceso/var/log/boa/access_log.

Es # log de acceso/var/log/boa/access_log.

Entre ellos, # representa un comentario. En el archivo, podemos encontrar el contenido después de # y luego agregar el contenido debajo de #.

Descripción del parámetro de configuración de BoaWebserver:

Puerto: Puerto de escucha del servidor Boa: BOA. El puerto predeterminado es 80. Si el puerto es menor que 1024, el usuario root debe iniciar el servidor.

Escuchando: dirección IP vinculada. Sin este parámetro, todas las direcciones estarán vinculadas.

Usuario: Identidad del cliente conectado al servidor, que puede ser un nombre de usuario o UID.

Grupo: El grupo de clientes conectados al servidor, que puede ser el nombre del grupo o GID.

ServerAdmin: La dirección de correo electrónico a la que se le notificará cuando el servidor falle.

ErrorLog: Especifique el archivo de registro de errores. Si la ruta no comienza con "/", es relativa a la ruta ServerRoot. Si no está configurado, el archivo predeterminado es /dev/stderr. Si no desea iniciar sesión, especifique /dev/null para el archivo.

AccessLog: establece el archivo de registro de acceso, similar a ErrorLog.

UseLocaltime: configure para usar la hora local y comente este parámetro cuando use UTC. Este parámetro no tiene valor.

VerboseCGILogs: registra las horas de inicio y finalización de CGI en el archivo de registro de errores. Si no, comenta este parámetro. Este parámetro no tiene valor.

ServerName: especifica el nombre del servidor y lo devuelve al cliente cuando el cliente usa gethostname gethostbyname.

Host virtual: conmutador de host virtual. Con este parámetro, se agregará una dirección IP al directorio establecido por DocumentRoot como un nuevo DocumentRoot para manejar las solicitudes de los clientes. 4 si DocumentRoot está configurado en /var/www. Resumen de errores.

1. Es necesario crear un directorio boa en /etc en la junta directiva.

2. Solución "cantopoenboa.conf para lectura": no solo coloque el archivo de configuración boa.conf en el directorio donde colocó boa, sino que también coloque el archivo boa.conf en /etc/boa del board A continuación, el sistema puede leer el archivo boa.conf cuando ejecuta boa.

3. Solución a "no se puede recuperar 2 TheErrorlogbadFileDescriptor": en log.c del código fuente de boa, es decir, en la carpeta src, comente la declaración if en la línea 73.

4. No se puede iniciar el registro de 2 errores: Descriptor de archivo incorrecto. Solución: en boa.conf, comente "# access log/var/log/boa/access_log".

5. "boa.c: 226-ickyLinuxkernelbug!: Nosuchfileordirectory" Solución: En el código fuente de boa, es decir, en la carpeta src, comente la declaración if en la línea 226 de boa.c.

6.gethostbyname::resourcetermoraliyunavailable Solución: elimine el # en "#ServerNamewww.your.org.here".

Seven../boa: 1: syntaxerror: Esta función debe tener un valor de retorno, de lo contrario se informará un error.

11. Siempre hay un error al ejecutar la página web: "mkstemp: nosuchfileorrectory" Solución: No se puede usar la publicación, solo obtener. Debido a que el modo de publicación necesita crear un nuevo archivo temporal, debe usar la función mkstemp. Esta función crea un archivo con un nombre de archivo único en el sistema y lo abre. Solo el usuario actual puede acceder a este archivo temporal. Por lo tanto, los permisos no son suficientes; de lo contrario, cualquier otro problema se informará como este error. ¡Entonces usa get! Las razones específicas y los detalles aquí aún no me quedan claros. ...

12. Un programa en C que escribe directamente funciones del sistema se puede ejecutar compilándolo en la placa con arm-linux-gcc, pero es posible que no se ejecute si está escrito con cgi. Porque implica problemas de permisos cgi. Incluso si todos los ejecutables cgi en su carpeta cgi-bin tienen permisos, es posible que no sean ejecutables.

La solución es comprobar cómo están configurados los permisos en tu boa.conf. Lo correcto aquí debería ser cambiar "UsernobodyGroupnogroup" a "UserrootGroup0", de lo contrario no se podrá implementar correctamente. Verá que el resto de su programa ejecutable cgi se ha ejecutado, ¡solo que esta función del sistema no se ha ejecutado!

Verbo (abreviatura de verbo) modifica la descripción de los parámetros

Modificación de grupo:

Modificar Groupnogroup a Group0Group para representar el grupo de clientes conectados al servidor. que puede ser un nombre de grupo o GID.

Modificación de usuario

Modificar Usernobody a User0User: el identificador del cliente conectado al servidor, que puede ser el nombre de usuario o UID.

Modificación de alias de script

Modificar alias de script/CGI-bin//usr/lib/CGI-bin/ a alias de script/CGI-bin//www/CGI-bin / alias del script: especifica la ruta virtual de la ruta del script.

Modificación de la raíz del documento

Modificar DocumentRoot/var/www a raíz del documento/raíz del documento WWW: el directorio raíz del archivo HTML.

Configuración del nombre del servidor

Cambie #ServerNamewww.your.org.here a ServerNamewww.your.org.here; de ​​lo contrario, aparecerá un error "gethostbyname::nosuchfileordirectory" servername: Especifique el servidor El nombre se devuelve al cliente cuando el cliente usa gethostname gethostbyname.

Suplemento del verbo intransitivo

Basándonos en este artículo, continuaremos explicando el protocolo HTTP e implementaremos una solución de integración de IoT basada en este servidor.