El Sistema de Paquetería “PBI” Re-implementado para FreeBSD y PC-BSD


Kris Moore, fundador del Proyecto PC-BSD presentó un paper del nuevo o mejor dicho re-implementado formato PBI, que es el Sistema de Paquetería de PC-BSD que incorpora en él todas las librerías necesarias para su funcionamiento sin depender del resto, ya que se encuentra aislado del la estructura de directorios clásico de UNIX.

EL Paper está disponible para su descarga en PDF. En él se describen el porque de la creación de los PBI, la estructura de estos paquetes como también descripción de las herramientas desde linea de comandos implementados para los PBI: pbi_add,pbi_add, pbi_update, etc; al estilo del sistema de paquetería de binarios de freebsd con pkg.

En las siguientes imágenes contenidas en el paper podemos ilustrar cómo es que están formados los paquetes llamados PBI (Push Button Installer) y como se aíslan del modelo tradicional de paqueteria.

Anuncios

Realizar Actualización del Árbol Ports en FreeBSD con CVSup


Una de las tareas algo conflictivas para los administradores de sistemas FreeBSD son las actualizaciones de ports, pues suele existir conflictos de versiones si no se actualizan adecuadamente, para resolver este inconveniente vamos a hacer uso de portupgrade y cvsup.

Para actualizar nuestro arbol de ports de FreeBSD con un simple comando, se deben instalar previamente 2 paquetes:

#pkg_add -r cvsup-without-gui
#pkg_add -r portupgrade

Con esto quedan instalados los dos programas que necesitamos para hacer la actualización.

Ahora editamos el archivo make.conf que se encuentra en el directorio /etc con el editor vi.

#vi /etc/make.conf

y agregamos al principio del archivo las siguientes lineas.

SUP_UPDATE=yes
SUP=/usr/local/bin/cvsup
SUPFLAGS= -g -L 2
SUPHOST=cvsup.uk.FreeBSD.org
SUPFILE=/usr/share/examples/cvsup/stable-supfile
PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile
DOCSUPFILE=/usr/share/examples/cvsup/doc-supfile

(:wq) Guardamos y salimos + ENTER
Ahora para actualizar:

#cd /usr/ports
#make update

Reemplazar Apache por Cherokee


En los topics anteriores, referentes a: Montar un Servidor Web en PC-BSD 7 he optado  por instalar Apache.

En esta ocasión, explicaré como sustituir Apache por Cherokee, un servidor web libre (licenciado con GPL), moderno, muy rápido, flexible,eficiente, ligero, estable, fácil de configurar,multiplataforma, etc, etc, etc. (visite: Cherokee-project).

Con lo mencionado anteriormente, no trato de desmerecer las bondades que nos brinda el buen y viejo Apache!!, pero creo también, que es el momento de darle un lugar a proyectos nuevos como lo es Cherokee, creado por Alvaro Lopez Ortega y actualmente mantenido por una comunidad de desarrolladores de software libre.

Instalación y configuración de Cherokee en PC-BSD 7

Basado en Normas de FreeBSD

1) Observa si se está ejecutando el servicio apache, si es así: detenerlo.

Si lo has inicializado en el fichero /etc/rc.conf como señalamos en el post Instalación de Apache en PC-BSD 7 es probable que esté en ejecución, o si ya lo tenias configurado en tu sistema FreeBSD u otro derivado de él puedes confirmarlo:

# netstat -a|grep ‘.http’
tcp46      0      0 *.http                 *.*                    LISTEN

La línea anterior significa que el servicio web está en ejecución, por lo tanto habrá que detenerlo:

# /usr/local/etc/rc.d/apache22 stop

ó

#apachectl stop

Seguidamente, volver a verificar si el servicio verdaderamente está detenido:

# netstat -a|grep ‘.http’

Si no hay una respuesta como la mostrada anteriormente, entonces el servicio quedó detenido satisfactoriamente.

2) Descargaremos e Instalaremos Cherokee via ports: (Esto tomará su tiempo)

# cd /usr/ports/www/cherokee/ && make install clean
===>  Cleaning for GeoIP-1.4.4_1
===>  Cleaning for cherokee-0.9.2

Cuando termine, limpiará el directorio de compilación, en este caso, los dos señalados lineas arriba.

3) ¿Dónde está ubicado Cherokee?

Pueden ver que se creó un directorio en: /usr/local/www/cherokee/

Y los ficheros de configuración están en: /usr/local/etc/cherokee/

4) Probaremos si el servicio quedó habilitado. Puedes hacerlo con netstat o desde un navegador web:

Aprovechamos probarlo desde un navegador web, y de paso limpiamos las cookies:

En Firefox:

Control + shift + Supr –> Seleccionar ‘Cookies’ —> Clear Private Data Now

En Opera:

Tools—> Delete Private Data—>Detailed Options —> Seleccionar ‘Delete all Cookies’ –>Delete

El objetivo de limpiar las cookies es para prevenir que al momento de lanzar el localhost, continúe mostrando el It works! (página de prueba de apache…) guardado en la caché del navegador, a pesar de haber detenido el servicio de Apache.

Luego de ello, cargar:

http://127.0.0.1/

No se preocupe si no carga el localhost, aún hay cosillas que hacer…

5) Es momento de Iniciar cherokee-admin

Desde un terminal, (Queda sobre-entendido: en modo superusuario) , lanzar la instrucción:

# cherokee-admin &
Cherokee Web Server 0.9.2 (Oct 18 2008): Listening on port 9090, TLS disabled,
IPv6 disabled, using poll, 10778 fds system limit, max. 5382 connections,
single thread

(Enter)

El servicio cherokee-admin queda en segundo plano.

6) Regresar al navegador web y cargar:

http://127.0.0.1:9090/

Ésta es la página que debería mostrarles si todo lo hicieron correctamente (Server is not running).

7) Como se darán cuenta, el servicio está detenido, por lo tanto procedan a iniciarlo: ‘Launch’

Ésta es la página que debería mostrar luego de iniciar el servicio (Server is running).

8.) En una nueva pestaña, volver a lanzar:

http://127.0.0.1/

Es probable que aún no inicie la página principal de cherokee, que se supone que es la que debería mostrarnos, aunque #netstat -a|grep ‘.http’ nos indique de que ya se inició el servicio.

Por lo tanto regresamos a la página de configuración: http://127.0.0.1:9090/ y pasamos a configurar algunos valores del cherokee-admin:

>> Ingresamos a la opción ‘General’:

>>Por el momento solo editaremos el rubro ‘Listen’: ingresemos 127.0.0.1

>>Guardemos el cambio (save), y volvamos a lanzar http://127.0.0.1/

9) En este punto se espera que la configuración haya terminado satisfactoriamente, y nos muestre la página de prueba de Cheroke:

10) Ahora verificamos que la integración con php esté habilitada:

Para ello creamos un directorio nuevo y un fichero index.php con un pequeño código php:

#cd /usr/local/www/cherokee
#mkdir phptest && cd phptest
#edit index.php

<?php

echo ‘Cherokee y php Funcionando!!!’;

?>
Control + c
command:exit
.
Si has seguido la guia Instalación y configuración de Joomla en PC-BSD 7, en lugar de crear un fichero php, podrías copiar el directorio de joomla ya configurado del DocumentRoot de Apache al  DocumentRoot de Cherokee:

#cp -rf /usr/local/www/apache22/data/joomla15  /usr/local/www/cherokee/

11) Cargamos la página de prueba creada:

http://127.0.0.1/phptest/

Si en pantalla nos muestra; Cherokee y php Funcionando!!! , todo habrá terminado bien, caso contrario, habrá que realizar una modificación más en el cherokee-admin:

http://127.0.0.1:9090/

(Si en lugar de crear el fichero php copiaste el directorio de joomla, lanzar: http://127.0.0.1/joomla15/ )

12) Si la página php aún no carga, ir a: Info Source de cherokee-admin.

Hacer clic en el nick por defecto: ‘php’ para expandir todas las opciones;

Inicialmente, cuando realicé la instalación de cherokee, el Connection ‘/tmp/cherokee-php.sock‘ no era ubicado por el servidor, por lo tanto las páginas php no se lograban cargar. Si a ud. le pasa lo mismo, edite la opción Interpreter, que inicialmente podría ser:

%phpcgi% -b /tmp/cherokee-php.sock

y sustituyalo por:

/usr/local/bin/php-cgi -b /tmp/cherokee-php.sock

Por último, guarda el cambio (save).

Si el proceso se hizo como lo explicado hasta aquí, la configuración debería ser correcta y el servidor debería estar perfectamente integrado con php. En caso contrario, es posible de que al no poder cargar alguna página php, le muestre una advertencia como esta:

503 Service Unavailable
Cherokee web server 0.9.2 (UNIX), Port 80

13) No olvide que dejamos ejecutándose en background a cherokee-admin.

a) Ver el proceso:

#jobs

[1]  + Running                       cherokee-admin

b) Matar al proceso:

#kill %1

ó

# killall cherokee-admin

Si actualizamos (F5) o volvemos a iniciar cherokee-admin ( http://127.0.0.1:9090/ ), ya no tendremos acceso al servicio de configuración (Para un posterior acceso, ejecutar cherokee-admin &).

14) Editar el fichero: /etc/rc.conf

Para hacer que cherokee se cargue al iniciar el sistema. añadir:

cherokee_enable=”YES”

Y dejar comentado la referencia a Apache para desabilitar su ejecución al inicio:

#apache22_enable=”YES”

Todo lo mostrado anteriormente es la formá básica de configurar cherokee, no tuvimos que meter dedo a los ficheros de configuración gracias a cherokee-admin. Si desea realizar una configuración avanzada con las medidas de seguridad necesaria puede visitar cherokee-project-doc.sa, o también poseen la documentación en el directorio: /usr/local/share/doc/cherokee.

Ir a: Montar un Servidor Web en PC-BSD 7

Instalación y configuración de MySQL 5.x en PC-BSD 7


Después de tener configurado Apache y PHP, será necesario que instalemos MySQL, para montar una pagina web donde sea indispensable contar con un motor de base de datos.

Basado en normas de FreeBSD

La versión que instalaremos será mysql51-server.

1) Vamos a instalar mysql desde los ports:

# cd /usr/ports/databases/mysql51-server/ && make install clean

Dejamos que el sistema se haga cargo de la descarga, compilacion e instalación.
Las dos ultimas lineas de código muestra el proceso de limpieza del directorio de compilación de los paquetes que se instalaron:
===>  Cleaning for mysql-client-5.1.28_1
===>  Cleaning for mysql-server-5.1.28_1

2) Establecemos el directorio de datos de inicio:

# /usr/local/bin/mysql_install_db

3)Seleccionamos el archivo de configuración que asignaremos a mysql:

# cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf

En /usr/local/share/mysql/ hay 4 archivos importantes, en el ejemplo optamos por my-medium.cnf:

my-small.cnf Para sistemas de bajos recursos con 64MB de RAM o menos.
my-medium.cnf Para sistemas hasta con 128MB de RAM, ideal para servidor web
my-large.cnf Para sistemas con 512MB de RAM, ideal para servidor MySQL dedicados
my-huge.cnf Para sistemas con 1GB o 2GB de RAM, ideal para datacenters.

5) Cambiamos de propietario el directorio /var/db/mysql/ :

#chown -R mysql:mysql /var/db/mysql

6) Asignamos una contraseña a root:

# /usr/local/bin/mysqladmin -u root password ‘escribe_la_contraseña’

7) Editamos rc.conf para que mysql se inicie al arrancar el sistema:

# edit /etc/rc.conf

mysql_enable=”YES”

Control+c

command:exit

8.) Reiniciamos el servicio ‘mysql’

# /usr/local/etc/rc.d/mysql-server restart

Pueden consultar algunos datos adicionales aqui, yo omití algunos.

Ir a: Montar un Servidor Web en PC-BSD 7

Instalación y Configuración de PHP en PC-BSD 7


El siguiente paso, luego de la instalación de apache, será instalar y configurar php.

Basado en normas de FreeBSD

 

1) Procedemos a instalar php desde los ports:

#cd /usr/ports/lang/php5/ && make install clean

#cd /usr/ports/lang/php5-extensions/ && make install clean

2) Una vez terminada la instalación, verificamos que ‘index.php’ esté incluido en el DirectoryIndex de httpd.conf, si no está lo agregamos:

#edit /usr/local/etc/apache22/httpd.conf

DirectoryIndex index.php index.html index.htm

3) Ahora estableceremos el vínculo entre apache y php, para ello agregar al final de httpd.conf (ya lo tienen abierto) las siguientes lineas:

ScriptAlias /php-cgi “/usr/local/bin/php-cgi”
AddHandler php-handler .php
Action php-handler /php-cgi
<Location “/php-cgi”>
Options None
Order allow,deny
Allow from all
</Location>
*Salimos de edit:
Control + c
command: exit
4) Probamos si todo está OK, para ello crear un fichero index.php
#cd /usr/local/www/apache22/data/
#mkdir indextest && cd indextest
#edit index.php
<?php
echo “Hola Mundo”;
?> 

Control + c
command:exit

5) Ingresar en un el navegador web: http://localhost/indextest/
Si nos muestra solo Hola Mundo, significa que todo marcha bien.
*Si por alguna razón apache está deshabilitado y por lo tant no hay acceso al http://localhost/, iniciar apache con:
#apachectl start
.
Ir a: Montar un Servidor Web en PC-BSD 7