Utilizando el comando pkgadd
, hay que instalar los paquetes libpcre, apr, apache, php, php-gd, mod_php y opcionalmente php-ftp (que no tienen dependencias externas).
En la carpeta /etc/php/
se copia php.ini-development
o php.ini-production
a php.ini
. Se edita y en la línea ;date.timezone =
se le quita el comentario y se pone date.timezone = Europe/Madrid
(o la que corresponda).
En el archivo /etc/apache/httpd.conf
se busca la línea que incluye la configuración de Virtual hosts #Include /etc/apache/extra/httpd-vhosts.conf
, y antes se añade lo siguiente
# PHP web appl Include /etc/apache/extra/httpd-php.conf
Si se desea que arranque tanto http como https hay que eliminar el comentario #
en la línea #Include /etc/apache/extra/httpd-ssl.conf
que se encuentra casi al final. Tener en cuenta que el certificado por defecto es autofirmado (self signed), lo que da mensajes de advertencia en los navegadores.
Se crea el arhcivo info.php
en /var/www/htdocs/
, con el contenido siguiente:
Se arranca apache con /etc/rc.d/apache/start
, se apunta un navegador al servidor y aparece la lista de ficheros, en concreto info.php
. Si todo ha ido bien al hacer clic deberá aparecer la página con información de PHP.
Para el uso sencillo de servidores virtuales se propone la configuración siguiente.
Editar el archivo httpd.conf
y añadir el contenido en rojo entre las líneas indicadas, asegurándose que la línea que invoca a la configuración extra/httpd-ssl.conf
esta comentada (con '#' al inicio):
# Secure (SSL/TLS) connections
#Include /etc/apache/extra/httpd-ssl.conf
Include /etc/apache/ssl.conf
#
# Note: The following must must be present to support
# starting without SSL on platforms with no /dev/random equivalent
Luego se copiar este archivo en /etc/apache
:
#=============================================================================== # ssl.conf #------------------------------------------------------------------------------- #--- Secure (SSL/TLS) connections ---------------------------------------------- <IfModule ssl_module> Listen 443 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/var/run/apache/ssl_scache(512000)" SSLSessionCacheTimeout 300 SSLMutex "file:/var/run/apache/ssl_mutex" </IfModule> #--- Virtual Hosts ------------------------------------------------------------- <IfModule vhost_alias_module> NameVirtualHost *:80 <VirtualHost _default_:80> # 400: Bad Request # 401: Authorization Required # 403: Forbidden # 404: Page not found # 500: Internal server Error #ErrorDocument 403 /index.html #ErrorDocument 404 /index.html </VirtualHost> <IfModule ssl_module> NameVirtualHost *:443 <VirtualHost _default_:443> #ErrorDocument 403 /index.html #ErrorDocument 404 /index.html SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite \ ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile "/etc/ssl/certs/apache.crt" SSLCertificateKeyFile "/etc/ssl/keys/apache.key" BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 </VirtualHost> </IfModule> Include /etc/apache/vhosts/*.conf </IfModule> #===============================================================================
A continuación se crean los directorios siguientes:
mkdir /etc/apache/vhosts /var/www/vhosts
Como ejemplo, se creará el host www.virtual.box
forzando el uso de https (es decir el http se redirecciona al https). Es imprescindible que www.virtual.box
se resuelva con la IP correcta en el servidor DNS.
Copiar este archivo en /etc/apache/vhosts
:
#=============================================================================== # www.virtual.box.conf #------------------------------------------------------------------------------- <IfModule ssl_module> <VirtualHost *:80> ServerName www.virtual.box Redirect / https://www.virtual.box/ </VirtualHost> <VirtualHost *:443> ServerName www.virtual.box DocumentRoot "/var/www/vhosts/www.virtual.box" <Directory "/var/www/vhosts/www.virtual.box"> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> # ErrorDocument 403 /forbidden.html # ErrorDocument 404 /notfound.html </VirtualHost> </IfModule> #===============================================================================
Crear contenido en /var/www/vhosts/www.virtual.box/
para diferenciarlo del host por defecto. Por ejemplo un archivo index.html
con el contenido <html><body><h1>www.virtual.box</h1></body></html>
.
Reiniciar el servidor con /etc/rc.d/apache restart
.
Si se desea cambiar el certificado, hay que tocar las líneas SSLCertificate
, incluidas al archivo ssl.conf
.