### APACHE2
# apt install apache2 php-fpm php-curl
# a2enmod mpm_event proxy_fcgi setenvif http2
# a2enconf php7.4-fpm
# vi /etc/php/7.4/fpm/php.ini
memory_limit = 256M
# systemctl restart php7.4-fpm.service apache2.service
# vi /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerName www.example.com
ServerAlias www.example.com
Protocols h2 http/1.1
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# systemctl restart php7.4-fpm.service apache2.service
# systemctl stop apache2.service apache-htcacheclean.service
# systemctl disable apache2.service
<?php
<html><body>TESTE</body></html>
?>
Pacotes necessarios
# apt-get install apache2 apache2-utils <-Básico
# apt-get install apache2 apache2-utils apache2-mpm-prefork libapache-htpasswd-perl perl
php -> libapache2-mod-php5 php5 php5-cli php5-gd php5-mysql php5-common php5-ldap php-pear php5-ldap
ssl -> openssl libssl-dev
Criar repositório web
# mkdir /home/www # chown www-data.www-data /home/www/ -R
O Apache-2.4.6 necessita que os arquivos de sites tenham o nome do arquivo com .conf como padrão, senão não quando usar o comando a2ensite não encontra.
Para ter acesso ao diretório é necessário alterar também a opção Order e Allow por Require. De: Order allow,deny Allow from all Por: Require all granted
O arquivo default.conf podera ter os dados abaixo para ser executado no Apache-2.4.6.
<VirtualHost *:80>
#ServerAdmin webmaster@localhost
#ServerName <ALIAS>.dominio.com.br
DocumentRoot /home/www/html
<Directory /home/www/html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
</Directory>
# Available loglevels: trace8, ..., trace1, debug, info, notice, info,error, crit, alert, emerg.
LogLevel info
ErrorLog ${APACHE_LOG_DIR}/error-default.log
CustomLog ${APACHE_LOG_DIR}/access-default.log combined
</VirtualHost>
Testar acesso ao site default
http://<servidor>
* Módulos necessários: # a2enmod proxy proxy_http proxy_ajp deflate headers proxy_balancer proxy_connect proxy_html ssl
# cd /etc/apache2/sites-available # vi 000-default.conf <VirtualHost *:80> ServerName www2.dominio.com.br ProxyPreserveHost off ProxyRequests off
ProxyPass / http://www.dominio.com.br:80/ ProxyPassReverse / http://www.dominio.com.br:80/ LogLevel info ErrorLog ${APACHE_LOG_DIR}/error-dominio.log CustomLog ${APACHE_LOG_DIR}/access-dominio.log combined </VirtualHost>
# /etc/init.d/apache2 restart
# a2ensite default-ssl # cd /etc/apache2/sites-available # cp -a default-ssl.conf default-ssl.conf.default # vi default-ssl.conf <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerName <ALIAS>.dominio.com.br SSLEngine on SSLProxyEngine on SSLCertificateFile /etc/apache2/sites-available/<ALIAS>.<ANO>.pem ou .crt SSLCertificateKeyFile /etc/apache2/sites-available/<ALIAS>.<ANO>.key ProxyPreserveHost on ProxyRequests off
ProxyPass / https://10.0.0.8:8443/ ProxyPassReverse / https://10.0.0.8:8443/ LogLevel info ErrorLog ${APACHE_LOG_DIR}/error-<ALIAS>.log CustomLog ${APACHE_LOG_DIR}/access-<ALIAS>.log combined </VirtualHost> </IfModule>
# /etc/init.d/apache2 restart
* Módulos necessários:
# a2enmod proxy proxy_http proxy_ajp deflate headers proxy_balancer proxy_connect proxy_html ssl lbmethod_bybusyness lbmethod_byrequests lbmethod_bytraffic lbmethod_heartbeat status slotmem_shm
* Acesse etc/apache2/sites-available/000-default.conf e edite adicionando no virtualhost a entrada abaixo:
<VirtualHost *:80>
ServerName <ALIAS>.dominio.com.br ProxyPreserveHost on <- Caso use ip no proxypass ou balancer deixar "on" ProxyRequests off ProxyPass / balancer://mycluster/ <- A última barra pode ser necessaria ProxyPassReverse / balancer://mycluster/ <- A última barra pode ser necessaria LogLevel info ErrorLog ${APACHE_LOG_DIR}/<ALIAS>-error.log CustomLog ${APACHE_LOG_DIR}/<ALIAS>-access.log combined Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED <Proxy balancer://mycluster> BalancerMember ajp://10.0.0.1:80 route=1 <-Protocolo ajp pode ter performance 25% melhor que http BalancerMember ajp://10.0.0.2:80 route=2 BalancerMember ajp://10.0.0.3:80 route=3 ProxySet stickysession=ROUTEID </Proxy> <Location /balancer-manager> SetHandler balancer-manager <- Acompanhamento do gerenciamento de balanceamento </Location> <Location /server-status> SetHandler server-status <- Acompanhamento do status do uso do apache2 Require all granted </Location> </VirtualHost>
* Módulos necessários:
# a2enmod rewrite
* Acesse etc/apache2/sites-available/000-default.conf e edite adicionando no virtualhost a entrada abaixo:
RewriteEngine On RewriteRule /(.*) http://www.dominio.com.br:80/$1 [P,L]
NETINT="10.0.0.0/24" NETEXT="10.10.11.0/24" IFINT="eth0" IFEXT="eth1" $IPT -A INPUT -p tcp -s $NETINT -m multiport --dport 22,80,443,8080,8443 -i $IFINT -j ACCEPT $IPT -A INPUT -p udp -s $NETINT -m multiport --dport 53 -i $IFINT -j ACCEPT $IPT -A INPUT -p tcp -s $NETEXT -m multiport --dport 80,443,8080,8443 -i $IFEXT -j ACCEPT $IPT -A INPUT -p udp -s $NETEXT -m multiport --dport 53 -i $IFEXT -j ACCEPT $IPT -A OUTPUT -p tcp -s $NETINT -m multiport --dport 80,443,8080,8443 -o $IFINT -j ACCEPT $IPT -A OUTPUT -p udp -s $NETINT -m multiport --dport 53 -o $IFINT -j ACCEPT $IPT -A OUTPUT -p tcp -s $NETEXT -m multiport --dport 80,443,8080,8443 -o $IFEXT -j ACCEPT $IPT -A OUTPUT -p udp -s $NETEXT -m multiport --dport 53 -o $IFEXT -j ACCEPT
Indiferente o uso do XAMPP ou usar o Apache somente, as configurações são as mesmas mas os locais serão diferentes
Ajustar para outra porta C:\xampp\apache\conf\httpd.conf
Listen 80
Listen 8099
Para configurar o VirtualHost no XAMPP edite o arquivo C:\xampp\apache\conf\extra\httpd-vhosts.conf
NameVirtualHost *:80
<VirtualHost *:80>
ServerName <IP_SERVER>
ServerAlias <IP_SERVER>
DocumentRoot "C:\xampp\htdocs"
<Directory "C:\xampp\htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
#ErrorLog "logs/10.132.17.61-error.log"
#CustomLog "logs/10.132.17.61-access.log"
</VirtualHost>
<VirtualHost *:8099>
ServerName ead.domain.com
ServerAlias domain.com
DocumentRoot "C:\xampp\htdocs\moodle"
<Directory "C:\xampp\htdocs\moodle">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
#ErrorLog "logs/ead.iscmc.local-error.log"
#CustomLog "logs/ead.iscmc.local-access.log"
</VirtualHost>
Ajustar no arquivo C:/Windows/System32/drivers/etc/hosts
127.0.0.1 ead.domain.com
Reinicializar o serviço Apache através do XAMPP Control