envvars – variáveis ​​de ambiente padrão para apache2ctl

envvars – variáveis ​​de ambiente padrão para apache2ctl

Gostaria de saber como iniciar k=10 processos do servidor Apache2 na reinicialização da versão alfa do Ubuntu 16.04. Ontem, li este URL, [https://rudd-o.com/linux-and-free-software/tuning-an-apache-server-in-5-minutos], que diz para usar o Apache2 com o módulo prefork.c e definir StartServers igual a 10

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

Infelizmente, meu apache2 possui apenas o módulo event.c. Tentei atualizar o Apache2 para o módulo prefork.c com sudo apt-get install apache-mtm-prefork e o erro de instalação dizia que esse pacote não estava disponível porque pode estar desatualizado ou obsoleto. Então tentei sudo apt-get update e recebi a mesma mensagem de erro.

Minha próxima etapa foi tentar configurar o módulo de evento apache2 com StartServers = 5 alterando /etc/httpd.conf e reiniciando meu arquivo systemd apache.service e meu ps -ef | grep -in "apache2" mostra apenas 2 processos www-data apache2 e ps-ef | grep -in "mod" não mostra nenhum processo mod-mono-server4.

Além disso, ao executar o apache2 no prompt de comando do shell bash, ocorreu um erro de sintaxe: variável de ambiente APACHE2_LOCK_FILE ausente. Descobri que APACHE2_LOCK_FILE está definido em meu arquivo /etc/apache2/envvars.

A página man do Ubuntu 16.04 apache2 diz: "Em geral, o apache2 não deve ser invocado diretamente, mas sim via /etc/init.d/apache2 ou apache2ctl. A configuração padrão do Debian requer variáveis ​​de ambiente que são definidas em /etc/ apache2/envvars e não estão disponíveis se o apache2 for iniciado diretamente. No entanto, o apache2ctl pode ser usado para passar argumentos arbitrários para o apache2.

Para que eu pudesse usar /etc/apache2/envars , editei meu arquivo systemd apache.service para usar ExecStart = /etc/init.d/apache2 start e reiniciei meu desktop Lenovo ThinkStation Ubuntu 16.04 e sem sucesso, ainda tenho apenas 2 processos www-data apache2 e ps-ef | grep -in "mod" não mostra nenhum processo mod-mono-server4 quando executei ps -ef | grep -in "apache2".

Posso perguntar o que fiz de errado e como consertar? Por favor, sugira testes que posso fazer.

Eu sei que muitos usuários da versão alfa do Ubuntu 16.04 reclamarão em breve do mesmo problema que experimentei.

Responder1

Primeiro você pode confirmar que já possui o módulo mpm_prefork vendo que ele é enviado no apache2pacote em 16.04. Você verá alguns resultados se fizer isso:

 dpkg -L apache2 | grep fork

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

Agora verifique qual módulo MPM está habilitado e você verá que o módulo Event MPM está habilitado, enquanto o módulo Prefork não está:

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

Parece que você deseja desabilitar o módulo Event MPM e habilitar o módulo Prefork MPM, o que você pode fazer com links simbólicos, e então reiniciar o Apache:

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

Talvez então a sua diretiva "StartServer" funcione conforme desejado. O servidor Event MPM executa um loop de eventos em um único processo, portanto, não executa todos os processos extras.

Você também mencionou iniciar o Apache e o systemd. Eu recomendo NÃO iniciar o http do Apache diretamente ou com o apache2ctl. Controle-o SOMENTE através do systemd para consistência.

Aqui estão alguns comandos de controle do systemd relacionados, como exemplos:

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

Você teve mais perguntas em seus comentários sobre como configurar Mono, ASPX e vários aplicativos. Você deve fazer essas perguntas separadamente e deixar claro se pretende veicular vários aplicativos em um único domínio ou vários aplicativos em vários domínios.

Para fazer o serviço Apache2 iniciar na inicialização, execute:

sudo systemctl enable apache2

Responder2

Existem mais 3 etapas na configuração do Ubuntu 16.04 para servir conteúdo aspx residente em diferentes diretórios raiz.

  1. Coloque isso no final do 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 /minhaspáginas" SetHandler mono SetHandler mono

    1. source /etc/apache2/envvars depois de modificá-lo da seguinte forma:

      envvars – variáveis ​​de ambiente padrão para apache2ctl

      isso não estará correto depois de alterar o uid

      desativar HOME

      para suportar múltiplas instâncias do Apache2

      if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; então SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}" senão SUFFIX= fi

      Como não há uma maneira sensata de obter a configuração do Apache2 analisada em scripts, alguns

      as configurações são definidas por meio de variáveis ​​de ambiente e depois usadas no Apache2ctl,

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

      exportar APACHE_RUN_USER=venkat exportar APACHE_RUN_GROUP=venkat

      localização do arquivo de estado temporário. Isso pode ser alterado para /run em 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

      Somente /var/log/apache2 é manipulado por /etc/logrotate.d/apache2.

      exportar APACHE_LOG_DIR=/var/log/apache2

      A localidade usada por alguns módulos como mod_dav

      exportar LANG=C

      Remova o comentário da seguinte linha para usar a localidade padrão do sistema:

      . /etc/default/locale

      exportar LANG

      O comando para obter o status de 'status Apache2ctl'.

      Alguns pacotes que fornecem 'www-browser' precisam de '--dump' em vez de '-dump'.

      exportar APACHE_LYNX='www-browser -dump'

      Se você precisar de um limite maior de descritores de arquivo, remova o comentário e ajuste o

      seguinte linha (o padrão é 8192):

      APACHE_ULIMIT_MAX_FILES='ulimit -n 65536'

      Se você quiser passar argumentos para o servidor web, adicione-os abaixo

      para o ambiente APACHE_ARGUMENTS.

      exportar APACHE_ARGUMENTS=''

      Habilite o modo de depuração para scripts do mantenedor.

      Isso produzirá uma saída detalhada nas instalações de pacotes de módulos de servidor web e aplicativos web

      instalações que interagem com o Apache

      exportar APACHE2_MAINTSCRIPT_DEBUG=1

      1. No topo de apache2.conf , coloque a linha: LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so.

      2. Para testar isso, coloquehttp://127.0.0.1/test/Default.cse coloquehttp://127.0.0.1/personal/Default.csno navegador Firefox.

informação relacionada