envvars: variables de entorno predeterminadas para apache2ctl

envvars: variables de entorno predeterminadas para apache2ctl

Me gustaría saber cómo iniciar k=10 procesos del servidor Apache2 al reiniciar la versión alfa de Ubuntu 16.04. Ayer leí esta URL, [https://rudd-o.com/linux-and-free-software/tuning-an-apache-server-in-5-minutos], que dice usar Apache2 con el módulo prefork.c y establecer StartServers igual a 10

<IfModule prefork.c>
StartServers       4
MinSpareServers    3
MaxSpareServers   10
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  10000
</IfModule>

Desafortunadamente, mi apache2 solo tiene el módulo event.c. Intenté actualizar apache2 al módulo prefork.c con sudo apt-get install apache-mtm-prefork y el error de instalación decía que dicho paquete no estaba disponible porque podría estar desactualizado u obsoleto. Luego probé sudo apt-get update y recibí el mismo mensaje de error.

Mi siguiente paso fue intentar configurar el módulo de eventos apache2 con StartServers = 5 cambiando /etc/httpd.conf y luego reiniciando mi archivo systemd apache.service y mi ps -ef | grep -in "apache2" muestra solo 2 procesos www-data apache2 y ps-ef | grep -in "mod" no muestra ningún proceso mod-mono-server4.

Además, al ejecutar apache2 en el símbolo del sistema de bash shell, decía error de sintaxis: Falta la variable de entorno APACHE2_LOCK_FILE. Descubrí que APACHE2_LOCK_FILE está definido en mi archivo /etc/apache2/envvars.

La página de manual de apache2 de Ubuntu 16.04 dice: "En general, apache2 no debe invocarse directamente, sino que debe invocarse a través de /etc/init.d/apache2 o apache2ctl. La configuración predeterminada de Debian requiere variables de entorno definidas en /etc/ apache2/envvars y no están disponibles si apache2 se inicia directamente. Sin embargo, apache2ctl se puede utilizar para pasar argumentos arbitrarios a apache2.

Para poder usar /etc/apache2/envars, edité mi archivo systemd apache.service para usar ExecStart = /etc/init.d/apache2 start y reinicié mi escritorio Lenovo ThinkStation Ubuntu 16.04 y fue en vano, todavía tengo solo 2 www-data procesos apache2 y ps-ef | grep -in "mod" no muestra ningún proceso mod-mono-server4 cuando ejecuté ps -ef | grep -en "apache2".

¿Puedo preguntar qué hice mal y cómo solucionarlo? Sugiera pruebas que pueda hacer.

Sé que muchos usuarios de la versión alfa de Ubuntu 16.04 pronto se quejarán del mismo problema que yo experimenté.

Respuesta1

Primero, puede confirmar que ya tiene el módulo mpm_prefork al ver que se envió en el apache2paquete en 16.04. Verás un par de resultados si haces esto:

 dpkg -L apache2 | grep fork

 /etc/apache2/mods-available/mpm_prefork.conf
 /etc/apache2/mods-available/mpm_prefork.load

Ahora verifique qué módulo MPM está habilitado y verá que el módulo Event MPM está habilitado mientras que el módulo Prefork no lo está:

  ls /etc/apache2/mods-enabled/mpm*

Parece que desea deshabilitar el módulo Event MPM y habilitar el módulo Prefork MPM, lo cual puede hacer con enlaces simbólicos y luego reiniciar Apache:

sudo rm /etc/apache2/mods-enabled/mpm*
sudo ln -s /etc/apache2/mods-available/*fork* /etc/apache2/mods-enabled/

Quizás entonces su directiva "StartServer" funcione como lo desea. El servidor Event MPM ejecuta un bucle de eventos en un solo proceso, por lo que no realiza todos los procesos adicionales.

También mencionaste iniciar Apache y systemd. Recomiendo NO iniciar http de Apache directamente o con apache2ctl. SOLO contrólelo a través de systemd para mantener la coherencia.

A continuación se muestran algunos comandos de control de systemd relacionados, como ejemplos:

 sudo systemctl start   apache2
 sudo systemctl stop    apache2
 sudo systemctl restart apache2

Tenías más preguntas en tus comentarios sobre la configuración de Mono, ASPX y múltiples aplicaciones. Debe hacer esas preguntas por separado y tener claro si tiene intención de ofrecer varias aplicaciones en un solo dominio o varias aplicaciones en varios dominios.

Para que el servicio Apache2 se inicie en el arranque, ejecute:

sudo systemctl enable apache2

Respuesta2

Hay 3 pasos más para configurar Ubuntu 16.04 para servir contenido aspx que reside en diferentes directorios raíz.

  1. Pon esto al final de apache2.coonf

    Alias ​​/test "/usr/share/doc/xsp/test" Alias ​​/personal "/home/user/mypages" AddMonoApplications default "/test:/usr/share/doc/xsp/test,/personal:/home/user /mispáginas" SetHandler mono SetHandler mono

    1. fuente /etc/apache2/envvars después de modificarlo de la siguiente manera:

      envvars: variables de entorno predeterminadas para apache2ctl

      esto no será correcto después de cambiar el uid

      desarmar INICIO

      para soportar múltiples instancias de apache2

      si [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ]; luego SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}" más SUFFIX= fi

      Dado que no existe una forma sensata de obtener la configuración de Apache2 analizada en scripts, algunos

      las configuraciones se definen a través de variables de entorno y luego se usan en apache2ctl,

      /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.

      exportar APACHE_RUN_USER=venkat exportar APACHE_RUN_GROUP=venkat

      ubicación del archivo de estado temporal. Esto podría cambiarse a /run en Wheezy+1

      exportar APACHE_PID_FILE=/var/run/apache2/apache2.pid exportar APACHE_RUN_DIR=/var/run/apache2 exportar APACHE_LOCK_DIR=/var/lock/apache2

      Sólo /var/log/apache2 es manejado por /etc/logrotate.d/apache2.

      exportar APACHE_LOG_DIR=/var/log/apache2

      La configuración regional utilizada por algunos módulos como mod_dav.

      exportar LANG=C

      Descomente la siguiente línea para utilizar la configuración regional predeterminada del sistema:

      . /etc/default/locale

      exportar idioma

      El comando para obtener el estado de 'apache2ctl status'.

      Algunos paquetes que proporcionan 'www-browser' necesitan '--dump' en lugar de '-dump'.

      exportar APACHE_LYNX='www-browser -dump'

      Si necesita un límite de descriptor de archivo más alto, descomente y ajuste el

      siguiente línea (el valor predeterminado es 8192):

      APACHE_ULIMIT_MAX_FILES='ulimit -n 65536'

      Si desea pasar argumentos al servidor web, agréguelos a continuación

      al entorno APACHE_ARGUMENTS.

      exportar APACHE_ARGUMENTS=''

      Habilite el modo de depuración para los scripts de mantenimiento.

      Esto producirá una salida detallada sobre las instalaciones de paquetes de módulos de servidor web y aplicaciones web.

      Instalaciones que interactúan con Apache.

      exportar APACHE2_MAINTSCRIPT_DEBUG=1

      1. En la parte superior de apache2.conf, coloque la línea: LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so.

      2. Para probar esto, pongahttp://127.0.0.1/test/Default.csy ponhttp://127.0.0.1/personal/Default.csen el navegador web Firefox.

información relacionada