OpenBSD incluye una versión auditada de Apache como parte de
los componentes básicos. Para activarla sin soporte para SSL
agregue la siguiente línea en
/etc/rc.conf.local
:
httpd_flags=""
A partir de OpenBSD 3.3, Apache corre por defecto y
para mayor seguridad con chroot en
/var/www
. Es decir que desde el punto
de vista de Apache la raíz del sistema es lo que hay en
/var/www
. Diversos portes o sus aplicaciones
pueden requerir que Apache tenga acceso a otras partes del sistema,
puede lograrlo iniciándolo con el flag:
httpd_flags="-u"
Para detener el servidor una vez esté corriendo puede emplear:
# apachectl stop
Para iniciarlo o reiniciarlo con las opciones que haya configurado
en /etc/rc.conf.local
:
# . /etc/rc.conf # httpd $httpd_flags
El archivo de configuración por defecto
(/var/www/conf/httpd.conf
) no incluye
directorios para usuarios. A partir de OpenBSD 3.4 se recomienda
que estos directorios se creen en /var/www/users
,
los activa estableciendo en el archivo de configuración:
UserDir /users
o bien
UserDir /var/www/users
el primer en caso de que corra Apache chroot y el segundo si no. En ambos casos se sugiere la siguiente secuencia para crear un directorio de publicación para el usuario pablo:
# cd /home/pablo # mkdir /var/www/users/pablo # ln -s /var/www/users/pablo public_html # chown pablo:pablo /var/www/users/pablo
Así el usuario podrá publicar sus archivos en su subdirectorio
public_html
(como ocurre clásicamente) y
desde un navegador local podrán verse con el URL:
http://localhost/~pablo/
o remotamente
con http://www.miescuela.edu.co/~pablo/
Empleado dominios virtuales (del inglés Virtual Hosting) es posible manejar con un mismo servidor diversas direcciones DNS. Para activarlo:
En /var/www/conf/httpd.conf
no
emplee un alias para el directorio
/
Si ejecuta Apache con chroot copie
/usr/lib/apache/modules/mod_vhost_alias.so
en /var/www/usr/lib/apache/modules/
Agregue en /var/www/conf/httpd.conf
una línea del estilo:
NameVirtualHost 65.167.3.4
remplazando la IP por la de su servidor
Agregue un dominio virtual por cada dominio que maneje, por ejemplo:
<VirtualHost 65.167.63.234> ServerAdmin pablo@miescuela.edu.co DocumentRoot /var/www/htdocs ServerName www.miescuela.edu.co ServerAlias miescuela.edu.co ErrorLog logs/miescuela.edu.co-error_log Options ExecCgi Includes MultiViews Indexes FollowSymlinks SymLinksIfOwnerMatch CustomLog logs/miescuela.edu.co-access_log common </VirtualHost>
Para emplear SSL con Apache pueden seguirse las instrucciones del FAQ de OpenBSD que se retoman a continuación. Debe generar un certificado que pueda ser firmado por una Autoridad Certificadora o por usted mismo.
# openssl genrsa -out /etc/ssl/private/server.key 1024 # openssl req -new -key /etc/ssl/private/server.key \ -out /etc/ssl/private/server.csr
Tras el segundo paso debe ingresar el código del país (co para Colombia), el departamento en el que está, la organización, la unidad dentro de la organización y el nombre común (e.g la dirección web).
Después puede enviar el archivo
/etc/ssl/private/server.csr
a una entidad certificadora, la entidad certificadora la devolverá
su certificado firmado (digamos sudominio.pem
) el
cual debe ubicar en /etc/ssl/server.crt
.
Si prefiere firmar usted mismo su certificado emplee:
openssl x509 -req -days 365 -in /etc/ssl/private/server.csr \ -signkey /etc/ssl/private/server.key -out /etc/ssl/server.crt
A continuación puede
agregar entre las opciones de Apache
-DSSL
en
/etc/rc.conf.local
modificar
/var/www/conf/httpd.conf
para que al usar SSL se
redireccione al directorio apropiado (digamos
/var/www/users/sivel/
), i.e. remplazando algunas
líneas de la sección <VirtualHost _default_:443>
:
DocumentRoot /var/www/users/sivel ServerName miServidor ServerAdmin micorreo@midominio.org ErrorLog logs/error_log TransferLog logs/access_log
Reiniciar el servidor con las opciones apropiadas, por ejemplo:
# apachectl stop # /usr/sbin/httpd -DSSL
Finalmente puede probar abriendo desde un navegador
https://jesus.miescuela.edu.co
Instale los paquete
php5-core-5.0.4p0
y
php5-extensions-5.0.4
(si prefiere PHP4
instale los paquetes apropiados y emplee en
el resto de estas instrucciones php4 en donde diga php5).
Después copie el
archivo de ejemplo de php:
# cp /usr/local/share/examples/php5/php.ini-recommended /var/www/conf/php.ini
ejecute:
# /usr/local/sbin/phpxs -s
y asegúrese de que las siguientes líneas estén en
/var/www/conf/httpd.conf
:
LoadModule php5_module /usr/lib/apache/modules/libphp5.so AddType application/x-httpd-php .php DirectoryIndex index.html index.php
Reinicie Apache y pruebe la instalación de PHP por ejemplo
cargando desde un navegador un archivo prueba.php
el cual debe tener el siguiente contenido:
<?php phpinfo(); ?>
Para activar el soporte para PostgreSQL (ver Sección 3, “Motor de bases de datos PostgreSQL”en PHP
instale el paquete php5-pgsql-5.0.4
y
ejecute:
/usr/local/sbin/phpxs -a pgsql
Puede comprobar que esta extensión funciona revisando
la salida de la función phpinfo()
.
Puede aprender sobre PHP en http://www.php.net
La configuración de PHP con PostgreSQL y Apache corriendo con chroot puede verse en http://www.bsdforen.org/foren/showtopic.php?threadid=773 o en la sección sobre PostgreSQL de estas guías (ver Sección 3, “Motor de bases de datos PostgreSQL”
Tomcat es una implementación de estándares de Sun para soportar servlets (como CGIs escritos en Java) y JSP (para generar contenido dinámico al estilo de PHP pero programando en Java).
Para emplear la versión 4.x de tomcat, instale primero
el paquete jdk-linux
y después el paquete
jakarta-tomcat
, sugerimos que después,
si no existe, cree un usuario
_tomcat
en el grupo
_tomcat
y que sea dueño de los archivos
en /var/tomcat
:
# chown -R _tomcat:_tomcat /var/tomcat
Después ejecute:
JAVA_HOME=/usr/local/jdk1.3.1-linux/ \ /usr/local/jakarta-tomcat-4.0.6/bin/startup.sh
Si desea que Tomcat inicie cada vez que arranque el sistema
agregue las siguientes líneas a
/etc/rc.local
:
if [ -x /usr/local/jakarta-tomcat-4.0.6/bin/startup.sh ]; then JAVA_HOME=/usr/local/jdk1.3.1-linux/ \ jakarta-tomcat-4.0.6/bin/startup.sh echo -n 'tomcat' fi
y para que sea apagado cada vez que se apaga el computador, agregue
en /etc/rc.shutdown
:
if [ -x /usr/local/jakarta-tomcat-4.0.6/bin/shutdown.sh ]; then JAVA_HOME=/usr/local/jdk1.3.1-linux/ \ jakarta-tomcat-4.0.6/bin/shutdown.sh fi
La configuración por defecto (modificable en
/etc/tomcat/server.xml
) le permite
ver contenidos en el puerto 8080, siendo $CATALINA_HOME
/var/tomcat
. Si requiere instalar una
aplicación en formato .war, agreguela en
/var/tomcat/webapps
y reinicie
Tomcat.
Si una aplicación produce gráficas usando
clases awt.*
, durante el arranque de
Tomcat deberá ejecutar el servidor virtual
/usr/X11R6/bin/Xvfb, puede hacerlo
modificando el script
/usr/local/jakarta-tomcat-4.0.6/bin/catalina.sh
.
Agregue al comienzo:
export DISPLAY=:1
Al comienzo de la sección de la opción start
agregue:
/usr/X11R6/bin/Xvfb :1 &
y en la sección stop
ejecute:
pkill -9 Xvfb
Las bitácoras quedan en
/var/tomcat/logs
.
Puede aprender sobre Jakarta-Tomcat en http://jakarta.apache.org/tomcat/index.html
La configuración de Xvfb puede verse en http://www.javasource.org/GifServlet/linux.html
El Apache incluído en OpenBSD tiene compilado como módulo
estático mod_include.c
(como
puede comprobarse ejecutando
/usr/sbin/httpd -l). Por esto para
activar SSI basta quitar los comentarios de las siguientes
líneas en /var/www/conf/httpd.conf
:
AddType text/html .shtml AddHandler server-parsed .shtml
y en el directorio o directorios desde los que se quieren
usar páginas con SSI (extensión .shtml
),
agregar entre las opciones:
Option Includes
Si se desea que las páginas con extensión
.html
sean reconocidas por el servidor,
de forma que puedan incluir directivas SSI, deles permiso
de ejecución y agregué después del AddHandler
antes mencionado:
XBitHack on
Tras reiniciar apache puede probar creando una página
prueba.shtml
por ejemplo con:
<html> <head><title></title></head> <body> <!--#echo var="DATE_LOCAL" --> </body> </html>
Al abrirla debe presentar la fecha y hora del sistema.
Hay información completa sobre SSI en el manual de Apache http://httpd.apache.org/docs/howto/ssi.html