Servidor Web con OpenBSD 5.4, Apache 2.2, Php 5.3 y MySQL 5.1.6
Anteriormente escribí un artículo para la versión de como instalar un servidor web verdaderamente seguro OpenBSD 5.3 y Apache 1.4, sin embargo para OpenBSD 5.4 ya no funcionan esos pasos, además la idea de esta artículo es usar Apache versión 2.
Cómo instalar OpenBSD, otras bases y conceptos teóricos, están en el artículo pasado. Este artículo va directo a la instalación.
Instalando y configurando el Servidor
En este caso usarmos los repositorios oficiales de BSD.
Para esto ejecutamos como root en el servidor:
# echo installpath=ftp://ftp.usa.openbsd.org/pub/OpenBSD/$(uname -r)/packages/$(uname -m) | sudo tee /etc/pkg.conf
Una vez agregdo el repositorio, ya podemos empezar a instalar paquetes.
Apache2 y PHP
# pkg_add apache-httpd php-mysql
El cual nos pregunta (resalto en negrita mis respuestas) :
Ambiguous: choose package for php-mysql
a 0: <None>
1: php-mysql-5.2.17p16
2: php-mysql-5.3.27
Your choice: 2
Ambiguous: choose dependency for php-mysql-5.3.27:
a 0: php-5.3.27
1: php-5.3.27-ap2
Your choice: 1
Cuando termine de descargar e instalar, ejecutamos los siguientes comandos:
# ln -sf /var/www/conf/modules.sample/php-5.3.conf /var/www/conf/modules/php.conf
# ln -sf /etc/php-5.3.sample/mysql.ini /etc/php-5.3/mysql.ini
Agregamos el módulo PHP a Apache 2.2
# echo ‘# php
LoadModule php5_module /usr/local/lib/php-5.3/libphp5.so
<IfModule mod_php5.c>
AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps
# Most php configs require this
DirectoryIndex index.php
</IfModule>\n’ >> /etc/apache2/httpd2.conf
Agregamos Apache al arranque de OpenBSD
# echo ‘\n/etc/rc.d/httpd2 start\n’ >> /etc/rc.local
MySql Server
Ejecutamos:
# pkg_add mysql-server
Cuando termine de descargar e instalar, ejecutamos los siguientes comandos
# /usr/local/bin/mysql_install_db
# /usr/local/share/mysql/mysql.server start
# /usr/local/bin/mysqladmin -u root password ‘your-password’
Obviamente se debe cambiar your-password por algo más seguro!
Aseguramos MySql
Ejecutamos:
# /usr/local/bin/mysql_secure_installation
El anterior script, hace los cambios pertinentes que todo servidor de producción debe tener respondiendo a las siguientes preguntas:
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access to it? [Y/n]
Reload privilege tables now? [Y/n]
Recomendaría SI (Y) a todo.
Cuando termine de descargar e instalar, ejecutamos los siguientes comandos
# echo ‘mysqld_flags=»»
pkg_scripts=»mysqld»‘ >> /etc/rc.conf.local
PhpMyAdmin
Ejecutamos:
#pkg_add phpMyAdmin
Cuando termine de descargar e instalar, ejecutamos los siguientes comandos
# ln -sf /etc/php-5.3.sample/mcrypt.ini /etc/php-5.3/mcrypt.ini
# ln -sf /etc/php-5.3.sample/gd.ini /etc/php-5.3/gd.ini
# cp /var/www/conf/modules.sample/phpmyadmin.conf /var/www/conf/modules/
# ln -s /var/www/phpMyAdmin /var/apache2/htdocs/phpMyAdmin
Por último sería sano un reinicio:
# reboot
Probando el servidor
La ruta por defecto para el contenido del servidor web es /var/apache2/htdocs/
Podemos crear un script de prueba, con el comando:
# echo «<?php phpinfo(); ?>» | tee /var/apache2/htdocs/phpinfo.php
El cual debe responder desde un navegdor a la dirección http://sudirecionip/phpinfo.php
Lo mismo para PhpMyAdmin, a la dirección http://sudirecionip/phpMyAdmin/index.php
——
Dudas, comentarios, sugerencias?
Sigueme en twitter @josecely
——
Links
http://www.openbsd.org/
http://jacs.guru/?p=158/ Artículo para BSD 5.2.