Esta pequeña guía es para montar un servidor web con php5 en Debian, para esto la guía se realizó trabajando en: Debian 4.0 etch
Se debe estar con cuenta de root para realizar el proceso:
# su -lm
Recomiendo incluir -m o -p para contar con las variables de entorno en caso de que se guste abrir algún editor de texto.
Instalar apache2
Para la instalación no hay gran complicación, basta con poner la siguiente línea:
# apt-get install apache2
Para comprobar la instalación, ir al navegador y escribir: http://localhost o con la dirección de loopback http://127.0.0.1, debe aparecer el letrero: It works!
Instalar modulo php5
En experiencia propia, es más fácil si se instala directamente así, por que ya se queda configurado (incluso te ahorra el modificar apache2.conf). Lo digo por que (por lo menos en el pasado) cuando haciamos este procedimiento en Windows había que hacer bastantes modificaciones a los confs
# apt-get install libapache2-mod-php5
Archivo de configuracion de apache2
El archivo de configuración se encuentra ubicado aquí:
/etc/apache2/apache2.conf
Por el momento no hay necesidad de hacer modificaciones, no estoy muy seguro si es solo en Debian que el archivo de configuración sea el apache2.conf en vez de el httpd.conf, pero en un foro se comentaba que sí… a ver si luego investigo bien eso xD
Iniciar Apache2
Para arrancar apache
# apache2 -k start
Detener Apache2
Para detener apache
apache2 -k stop
Version de apache2:
Para obtener la versión de apache
apache2 -v
¿Donde colocar los archivos de la página web?
Los archivos de la futura página se almacenan en: /var/www , por defecto apache toma en esa misma ruta el directorio apache2-default pero podemos cambiar eso de la siguiente manera.
Editar el directorio de trabajo:
Para esto es necesario modificar el siguiente archivo:
/etc/apache2/sites-available/default
Y modificar la siguiente linea:
(comentar esta)# RedirectMatch ^/$ /apache2-default/
(agregar esta) RedirectMatch ^/$ /luckyr13/
Ahora procederíamos a simplemente crear la carpeta para que esta modificación en ese archivo adquiera coherencia
# su -lm
password: *******
# cd /var/www
# mkdir nombre_directorio_trabajo (que para los fines de la configuración anterior sería luckyr13)
Ahora crearemos un archivo en php para probar que en efecto todo haya salido bien:
# cd nombre_directorio_trabajo
# gedit index.php
(se abre el gedit para editar el archivo index.php, se pone el siguiente codigo, tambien pudimos haber usado el vim o cualquier editor por el que tengamos favoritismo)
- Código: Seleccionar todo
<?php
$x= “Pagina de prueba”;
echo $x;
phpinfo();
?>
Se guarda el archivo como index.php, se cierra el gedit y listo… abrimos el navegador y bastaría con poner http://localhost y tendríamos en pantalla el archivo de información de php más una linea de texto al principio de la página que diría “Pagina de prueba”.
Y ahora... MySQL
Es común encontrar hoy en día una infinidad de libros que hablan sobre la combinación APACHE + PHP + MYSQL… y creo que hay excelentes fuentes para cuestiones de configuración por lo que seré un tanto breve sobre la instalación de mysql (digo, el manual de referencia está muy muy completo como para evitar profundizar mas en estos asuntos jeje)…
Tan fácil como ejecutar lo siguiente:
# apt-get install mysql-client mysql-server
Y listo. Ahora en cuanto a algunos comandos de interés, tenemos que para conectarse al servidor bastaría desde la shell de linux ejecutar:
# mysql
Por ahora con eso es suficiente para tener acceso pues no hemos establecido ninguna contraseña ni permiso por el momento. Otras formas para hacer conexión serían:
# mysql -h direcciondelhost -u usuario -p (para máquinas remotas)
# mysql -u usuario -p (para trabajo local)
Y una vez en la línea de comandos de mysql podemos hacer las siguientes consultas:
mysql > SELECT VERSION(); (nos da la version del server)
mysql > SHOW DATABASES; (muestra las bases de datos registradas)
mysql > CREATE DATABASE nombredelabase; (crea una base de datos)
mysql > USE nombredelabase; (selecciona a nombredelabase como la actual base de datos en uso)
# mysql -h host -u usuario -p nombredelabase (seleccionamos la base de datos desde la shell)
Una vez en la base de datos:
mysql > SHOW TABLES; (muestra las tablas en la base de datos)
mysql > CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE); (crea una tabla con atributos, es una tabla de ejemplo jeje)
mysql > DESCRIBE nombredelatabla; (con esto podemos conocer información de la tabla que queramos)
mysql > INSERT INTO pet
-> VALUES (’Puffball’,'Diane’,'hamster’,'f’,'1999-03-30′,NULL); (inserta valores en la tabla de ejemplo)
mysql > SELECT queseleccionamos
-> FROM dequetablaseleccionamos
-> WHERE bajoquecondiciones; (consulta basica)
mysql > SELECT * FROM nombredelatabla; (seleccionaria todos los valores)
mysql > UPDATE pet SET birth = ‘1989-08-31′ WHERE name = ‘Bowser’; (actualiza un atributo en especifico)
mysql> SELECT pet.name
-> FROM pet INNER JOIN event
-> ON pet.name = event.name
-> WHERE event.type = ‘litter’; (consulta dos tablas a la vez con el INNER JOIN)
Hay mas cosas por saber sobre mysql, pero creo que por ahora dejaré solo estas consultas, sugiero revisar el manual de referencia en la página oficial de mysql, yo solo hablé un poco del capítulo 3 en esta ocasión
CONECTARSE A MI BASE AUNQUE NO ESTÉ EN LOCALHOST
Vaya pues… automaticamente pensé en conectarme a mi base de datos desde mi máquina en Windows y cual fue mi sorpresa al llevarme varios conections refused
1.- Configurar mysql para escuchar no solo en localhost, para eso nos vamos a editar al archivo de configuración:
# vi /etc/mysql/my.cnf
Una vez ahí descomentamos la siguiente línea quitandole el signo # :
# bind-address = 127.0.0.1
Y reiniciamos el servicio:
# /etc/init.d/mysql restart
2.- Cambiar la contraseña del usuario root:
# mysqladmin -u root password mysqlrootpassword
Donde en vez de mysqlrootpassword pondremos nuestra contraseña nueva.
3.- Cambiar la parte de host directamente sobre la base de datos de mysql:
Esta parte ya fue manejada por mi, por que con el primer paso la verdad no logré poder loggearme remotamente… lo que hice fue lo siguiente:
mysql > use mysql
mysql > show tables;
(ahí ubicamos una tabla llamada user)
mysql > select host, user, password from user;
(ahi vemos los usuarios que tenemos)
mysql > UPDATE user SET host=’%’ WHERE user=’root’ AND host=’localhost’
Y segun yo, ya está listo, volvemos a reiniciar:
# /etc/init.d/mysql restart
Ahora pues, probamos a conectarnos desde una máquina remota para comprobar que ya esté todo bien … recomiendo usar el EMS Sql Manager 2007 Lite for MySQL, lo podemos encontrar aqui: http://www.sqlmanager.net/en/products/mysql/manager
Fuente para pasos 1 y 2:
http://www.debianadmin.com/mysql-database-server-installation-and-configuration-in-debian-2.html
Paso 3:
Mi mente… jajaja, a ver si no la regó



