Mostrando entradas con la etiqueta Apache. Mostrar todas las entradas
Mostrando entradas con la etiqueta Apache. Mostrar todas las entradas

miércoles, 9 de febrero de 2011

Instalar un servidor LAMP en Fedora

Un servidor LAMP se refiere a la mezcla de Linux+Apache+Mysql+PHP en este caso les voy a mostrar como configurar un servidor con los siguientes componentes:

  • Apache 2 - Servidor Web de Linux
  • MySQL 5 - Servidor de base de datos MySQL
  • PHP4/5 - Lenguaje interpretado PHP
  • phpMyAdmin - Software de administración de base de datos via web

Nota: esta instalación es realizada para Fedora Core 7 (funciona también para Core 6 y Core 8 ) la instalación para Debian y Ubuntu la puedes encontrar aquí.

Voy a suponer que para hacer esta instalación tienes privilegios de root, así que una vez que entramos como root lo primero que debemos hacer es actualizar los paquetes necesarios en Fedora con el siguiente comando:

yum -y update && reboot

Como ya muchos saben yum (Yellow Update Manager) es el manejador de paquetes por excelencia de Fedora, este comando actualiza todos los paquetes que tengan actualizaciones en tu sistema, la opción -y hace que todas las preguntas que sean hechas con respecto a descargas y actualizaciones sean si automáticamente sin que tengamos que intervenir (claro esto es opcional depende de cada quien pero es más facil porque podemos dejar desantendida la actualización), el comando reboot lo que hace es que reinicia el sistema después que termine de actualizar.

Verás una lista de los paquetes que tienen una actualización disponible y cuanto es el tamaño total de la actualización, si colocaste la opción -y empezará inmediatamente a descargar los paquetes sino te preguntará si estas deacuerdo. Esto tardará un poco dependiendo de la cantidad de paquetes que tengas por actualizar.

Una vez que se actualice el sistema y se renicie ya estamos listo para comenzar con nuestra instalación.

Nota: esta instalación se hará con los repositorios por defectos que vienen con Fedora Core 7 por lo que no se debería necesitar instalar ningún repositorio extra.

1. Instalando Apache y PHP

Apache es el servidor web más utilizado en el mundo. Puede correr en varias plataformas tales como Unix, Linux, Microsoft Windows, Novell, etc. Es open source, estable, modular y muy configurable.

Para instalarlo utilizamos el siguiente comando:

yum install httpd

Esto instala la versión de Apache2. Si quisieras instalar la versión 1.3 de Apache en cambio de colocar httpd colocamos apache, sin embargo esta instalación se basará que has instalado la versión 2 de Apache.

Para iniciar el servidor de Apache ejecutamos

service httpd start

La otra decisión que tenemos que tomar es si vamos a utilizar php4 o php5, la principal diferencia entre estos dos es que php5 es orientado a objetos y php4 no, casí todas las aplicaciones web soportan php5, aunque hay algunas que todavía no, si estas desarrollando nuevas aplicaciones te recomiendo que de una vez pases a php5 y aprendas a programar orientado a objetos, pero a la final eso es a gusto de cada quien.

Para instalar PHP 5 ejecutamos:

yum install php php gd

Esto instalará la última versión de php y la librería de graficos gd que siempre es útil.

Para instalar PHP 4 en Fedora es un poco complicado ya que hasta donde yo se no existe en algun repositorio para instalarlo directamente con yum, si alguien sabe por favor hágamelo saber para colocarlo aquí.

Aquí podrás encontrar un tutorial de cómo instalar php4 en Fedora Core 6http://www.mjmwired.net/resources/mjm-fedora-php4.html yo no lo he probado para el Core 7 aunque creo que debería funcionar si alguien lo hace y le funciona hágamelo saber.

Los archivos de configuración de apache están ubicados en: /etc/httpd/conf/httpd.conf y la carpeta web por defecto esta en /var/www/html/

Antes de comprobar que el servidor está funcionando correctamente ejecutamos:

service httpd restart

para que los cambios hagan efecto.

Luego en nuestro navegador web escribimos http://localhost/ y aparecerá una pagína parecida a esta:

Pantalla Bienvenida Apache

Si quieres ver si PHP se instaló correctamente hay un comando de php que te dá toda la información necesaria para esto tenemos que crear un archivo:

nano /var/www/html/test.php

Dentro del archivo escribe y guardalo

Luego abre tu navegador web y escribe la dirección http://localhost/test.php debería aparecer una pantalla parecida a esta:

Pagina de phpinfo()

2. Instalando el Servidor de MySQL

Instalar un servidor de base de datos es siempre necesario si estas corriendo casi cualquier sitio interectivo con PHP o algún otro lenguaje como JSP. Recuerda que para correr este tipo de servidores es necesario que al menos tengas 256MB de RAM. El siguiente comando instalará el servidor MYSQL5 que es la última versión al momento de escribir este tutorial y la librería de php para trabajar con mysql.

yum install mysql-server  php-mysql

Para iniciar el servidor de mysql ejecutamos:

service mysqld start

El archivo de configuración de mysql se encuentra en : /etc/my.cnf

Iniciando Apache y MySQL como servicios

Para iniciar tanto Apache como MySQL cada vez que inicie nuestra PC necesitamos configurarlos como servicios para esto ejecutamos los siguientes comandos:

chkconfig --level 345 httpd on
chkconfig --level 345 mysqld on

Esto hace que tanto Apache como MySQL corran como servicios en los niveles 345 (tanto con o sin interfaz gráfica) cada vez que se inicia la PC.

Creando usuarios para utilizar MySQL y cambiar el password de Root

Por defecto mysql crea un usuario como root sin ningún password, por lo que es bueno crear un password para este usuario:

Para hacer esto coloca los siguientes comandos:

mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('nuevo-password') WHERE user='root';
mysql> FLUSH PRIVILEGES;

Nunca se debe usar el usuario de root para accesar a la base de datos ya que tiene todos los privilegios sobre todas las bases de datos y por lo tanto es muy inseguro. Por esto es aconsejable crear un usuario para cada base de datos que crees, es un poco dificil crear usuarios desde la consola por lo que es más rapido y más intuitivo crealo desde un panel de control como webmin o phpMyAdmin los cuales instalaremos a continuación.

3. Instalando PhpMyAdmin

PhpMyAdmin es un software de administración basado en web que es fácil de configurar y además gratis. Es muy facil de utilizar y además permite realizar casi todas las tareas necesarias sobre las bases de datos de mysql.

Para instalarlo se ejecuta en la consola (noten las minúsculas y mayúsculas son importantes en el nombre):

yum install phpMyAdmin

Vamos ahora a modificar el archivo de configuración de phpMyAdmin:

gedit /etc/phpMyAdmin/config.inc.php

Buscamos las líneas donde dice:

$cfg['Servers'][$i]['auth_type']=''
$cfg['Servers'][$i]['user']= '';$cfg['Servers'][$i]['password']= ''

Y cambiamos por

$cfg['Servers'][$i]['auth_type']='cookie'
$cfg['Servers'][$i]['user']= 'root';
$cfg['Servers'][$i]['password']= 'clave_root_mysql'; // usa aquí tu clave que colocaste en MySQL
para root

Y agregamos esta línea ya que si no nos da un error de blowfish:

$cfg['blowfish_secret']='una pregunta secreta' //esto es para poner una pregunta secreta o clave

Te recomiendo que en esta ultima linea pongas una clave bastante fuerte.

Y reiniciamos Apache:

service httpd restart

Ahora coloca en tu navegador: http://localhost/phpMyAdmin y te aparecerá una ventana parecida a esta:

Pagina de Bienvenida phpMyAdmin

Eso es todo, phpMyAdmin y MySQL ya están instalados. Para ingresar en phpMyAdmin coloca como login root con el password que deifinimos anteriormente. Para crear nuevos usuarios puedes hacerlo desde el link que dice Privilegios.

Espero que les haya servido de algo este tutorial, ahora ya tienes un servidor LAMP completo y puedes empezar a hacer tus propios sitios web.

lunes, 11 de octubre de 2010

Instalar Servicios en Linux (desde terminal)

Aquí os dejo una ayuda para instalar algunos servicios a tus Sistema Operativo Linux desde tu terminal
  • Instalar Apache
    • Distribuciones Debian: apt-get install apache2
    • Distribuciones Red Hat: yum install httpd
  • Instalar DHCP
    • Distribuciones Debian: apt-get install dhcp3-server
      • Fichero de configuración: /etc/dhcp3/dhcpd.conf
    • Distribuciones Red Hat: yum install dhcpd
      • Fichero de configuración: /etc/dhcp/dhcpd.conf
  • Instalar DNS
    • Distribuciones Debian: apt-get install bind9
      • Fichero de configuración: /etc/bind9/named.conf
    • Distribuciones Red Hat: yum install bind
      • Fichero de configuración: /etc/named.conf

martes, 14 de septiembre de 2010

Como crear VirtualHosts

Hay 2 maneras distintas, depende de la distribución

VirtualHosts en distribuciones para Debian, Ubuntu, etc...

Lo que sigue es una breve nota técnica que me sirva (y a otros) como recordatorio para la próxima vez , dado que hoy he perdido un rato con la configuración de un host virtual en Ubuntu (en Fedora lo tenía todo ya hecho, y sólo era copiar y pegar :-)

En /etc/apache2 disponemos de varios subdirectorios, dos de ellos importantes para nuestra tarea. El primero sites-available y el segundo sites-enabled.

Los ficheros de configuración de los hostings virtuales se configuran en sites-available. El segundo subdirectorio sólo contiene enlaces a aquellos virtulhost que queremos activar.

Queremos crear un virtualhost de nombre hackit. Es decir, cuando ponga en mi navegador http://hackit me debe de llevar a la página principal de ese host. Si pongo http://localhost me llevará al virtualhost por defecto (distinto del de hackit).

Lo primero, creo una nueva entrada en /etc/hosts (mantengo lo que había y añado lo siguiente):

127.0.0.1 hackit

Copio los archivos del nuevo site en /var/www/hackit.

Comienza el procedimiento de configuración del nuevo virtualhost en Apache2:

$ cd /etc/apache2/sites-available

Edito las dos primeras líneas del fichero default para que queden así:

NameVirtualHost *:80
<VirtualHost *:80>
$ cp default hackit

Edito hackit para que las primeras líneas queden así:

<VirtualHost *:80>
ServerAdmin webmaster@hackit

ServerName hackit

DocumentRoot /var/www/hackit
<Directory />
Options FollowSymLinks
AllowOverride None
</ Directory>
<Directory /var/www/hackit>
$ cd /etc/apache2

El siguiente comando, a2ensite (available2enablesite) crea un enlace en sites-enable al site que le indiquemos (es decir, activa el virtualhost que acabamos de crear)

  • a2ensite hackit

Comprobamos:

$ ls -al sites-enabled/

Recargamos apache2:

  • /etc/init.d/apache2 force-reload

Listo!

VirtualHosts en distribuciones para Fedora, Red Hat, etc...

Supongamos que queremos instalar la web de Bulma en un Linux, donde el Apache ya está sirviendo un website. Es decir, en la URL http://www.midominio.com tenemos unas páginas, que queremos mantener, pero también queremos instalar Bulma. La solución más evidente pasa por instalarla en un directorio de nuestra web, pero veremos que con muy poco esfuerzo podemos tener la web de Bulma en http://bulma.midominio.com. Para empezar, daré por sentado que has leído el artículo de Instalacion de bulmita en Red Hat 6.2 (Actualización) de DaniRC y que has seguido sus instrucciones. La única diferencia es que instalaremos la web en '/home/httpd/bulma' (Esto va a gusto del consumidor ;-)

Ahora editaremos el fichero de configuración del Apache con nuestro editor de textos favorito:

 # vi /etc/httpd/conf/httpd.conf 

Nos dirigiremos hacia el final de dicho fichero y añadiremos las siguientes lineas:


NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>
ServerAdmin webmaster@midominio.com
DocumentRoot /home/httpd/html
ServerName www.midominio.com
ErrorLog logs/error_log
CustomLog logs/access_log common
</VirtualHost>
 <VirtualHost 192.168.0.1>
ServerAdmin webmaster@midominio.com
DocumentRoot /home/httpd/bulma
ServerName bulma.midominio.com
ErrorLog logs/bulma-error_log
CustomLog logs/bulma-access_log common
</VirtualHost>


Con la directiva NameVirtualHost dirección IP, le estamos diciendo al Apache que activamos los Hosts virtuales para esa dirección IP, y los siguientes grupos <VirtualHost 192.168.0.1>...</VirtualHost> definen los hosts virtuales de nuestro servidor. En cada uno de estos bloques, le indicamos al Apache el DocumentRoot del host especificado en ServerName: si miramos el segundo bloque veremos que le estamos diciendo al Apache que cuando reciba una petición dirigida bulma.midominio.com, obtenga los archivos de '/home/httpd/bulma', tal y como queríamos.

Supongo que a estas alturas te estarás preguntando como se lo hace el Apache para saber si una petición va dirigida a uno u otro host virtual. La respuesta esta en las cabeceras del HTTP/1.1: cuando un navegador envía una petición al servidor usando el protocolo HTTP/1.1 envía una cabecera del tipo host: nombre_de_un_host con la que el Apache puede discriminar las peticiones de los distintos hosts virtuales. El problema viene cuando el navegador es muy antiguo y utiliza el protocolo HTTP/1.0, en este caso el Apache servirá siempre la página del host por defecto.


Ahora ya hemos configurado el servidor web para que responda adecuadamente a las peticiones que vayan dirigidas a un host virtual pero aún nos falta otra cosa: debemos configurar nuestro servidor DNS para que las peticiones dirigidas a los hosts virtuales lleguen al servidor. En este caso, nos basaremos en el artículo Como configurar un servidor de DNS (revisado), que también escribió DaniRC. Lo que tenemos que hacer es añadir la siguiente linea en el fichero de configuracion para la zona de vuestro dominio, que en el ejemplo de DaniRC es el fichero 'arch/ibiza-programacion.com':

 bulma CMANE www 

Así le estamos diciendo al servidor de DNS que el nombre bulma es un alias de www. De esta manera los clientes ya podrán obtener la dirección IP de bulma.midominio.com. En vuestro caso, debereis añadir el alias en el fichero de configuracion para la zona de vuestro dominio.

Y para aquellos que no tengais servidor de DNS, editais el '/etc/hosts' y en la linea de vuestro ordenador, añadis el alias bulma.midominio.com.

 192.168.0.32 www.midominio.com bulma.midominio.com 


Para finalizar, reiniciaremos los servidores named y apache para que la nueva configuración tenga efecto,