Pages

miércoles, 28 de septiembre de 2011

Apache + PHP + MySQL en OpenBSD 4.9

Como bien se sabe, lo mas común que se requiere para un proyecto actual, donde las aplicaciones son en la nube y necesitan ser user friendly, es la integración y correcto funcionamiento de un servidor WEB, que sea capaz de procesar como minimo php y a la ves que pueda obtener datos desde una base de datos como mysql (lo mas común), asi que con OpenBSD hay una manera sencilla de conseguir estos requerimientos.

Por defecto el servidor web es un apache que viene preinstalado y dentro de un chroot, mas el php y el mysql es necesario instalarlos.

# pkg_add -v mysql-server php5-mysql

Despues de la instalación de MySQL, se instala este fichero /etc/rc.d/mysqld, lo cual para el OpenBSD 4.9 se traduce como un demonio.

Ahora habilitemos el php5 al apache, lo cual lo hacemos haciendo los links recomendados despues de terminar la instalacion del php5-mysql.

# ln -s /var/www/conf/modules.sample/php5.conf /var/www/conf/modules/
# ln -fs /var/www/conf/php5.sample/mysql.ini /var/www/conf/php5/



Despues de esto, configuremos el MySQL, ya que sera el servicio principal de esta integración.

Al intalarse MySQL, no se instala automaticamente la base de datos, asi que para poder que nos funcione, debemos de instalarle la DB de MySQL, y despues de eso, agregar un password al usuario root, lo hacemos asi.

# /usr/local/bin/mysql_install_db

Installing MySQL system tables...
110928  6:22:29 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
OK
Filling help tables...
110928  6:22:29 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
OK

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/local/bin/mysqladmin -u root password 'new-password'
/usr/local/bin/mysqladmin -u root -h ecalle.calle.tux password 'new-password'

Alternatively you can run:
/usr/local/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

Please report any problems with the /usr/local/bin/mysqlbug script!

# /usr/local/bin/mysqld_safe &   
[1] 21573
bash-4.1# 110928 06:23:41 mysqld_safe Logging to '/var/mysql/ecalle.calle.tux.err'.
110928 06:23:41 mysqld_safe Starting mysqld daemon with databases from /var/mysql


# /usr/local/bin/mysqladmin -u root password 'password_root'

Con esto nos queda instalado y configurado MySQL, (recordar que estos post son hechos con fines educativos, por lo tanto no se esta pensando en la seguridad para un entorno en producción, luego se haran referencias a esos items.)

Como el servidor web se encuentra en un chroot, hay que hacer un link al socket del MySQL para poder que el servidor web pueda accerder a las bases de datos de dicho gestor, esto lo hacemos asi.

# mkdir -p /var/www/var/run/mysql
# ln /var/run/mysql/mysql.sock /var/www/var/run/mysql/

Ahora solo falta que el MySQL y el Apache (httpd) se ejecuten al iniciar el sistema.

# echo 'mysqld_flags=""--socket=/var/run/mysql/mysql.sock""' >> /etc/rc.conf.local
# echo 'httpd_flags=""' >> /etc/rc.conf.local
# echo 'rc_scripts="mysqld"' >> /etc/rc.conf.local
# sh /etc/rc

Por ultimo reiniciamos los servicios, igualmente suben al inicio del sistema, y con esto queda lista la integración de dichos servicios, para hacer pruebas, los archivos .php de la pagina, se deben poner en la dirección /var/www/htdocs/, que por defecto viene con contenido de apache.

No hay comentarios:

Publicar un comentario