ITECH Blog

Entrañas Sistemáticas

Apache, PHP y MySQL en Linux

leave a comment »

Anteriormente previo a este articulo, tenemos el material de Comenzando con un Proyecto Web con el cual se hacia referencia a montar LAMPP como plaforma web de trabajo. Estas aplicaciones como EasyPHP, XAMPP, y demas familias o parecidos no son considerados realmente para ambiente de produccion, aunque puede decirse que si deben existir plataformas web sostenidas con estas herramientas que nos montan rapidamente Apache, PHP y MySQL listos para trabajar en conjunto.

Para la seccion de “mis apuntes” recopilo la informacion que en internet se nos ofrece, instrucciones que se repiten en distintas partes sobre como colocar Apache, PHP y MySQL en nuestro sistema Linux.

Apache: sudo apt-get install apache2

PHP5: sudo apt-get install php5 libapache2-mod-php5

Desde la instalacion de Apache ya podemos escribir en el navegador localhost y mostrarsenos It Works! lo cual indica que Apache esta corriendo, luego de instalar PHP5 reiniciamos Apache para que se acople la reciente colocacion de PHP5.

sudo /etc/init.d/apache2 restart

Si hacemos una rapida pagina php con el siguiente contenido: <?php phpinfo();?> y buscamos esa pagina, deberia aparecernos la informacion de PHP. Por internet circula el ejemplo de crear un archivo con este contenido y llamarlo desde el localhost

sudo gedit /var/www/testphp.php

Este archivo puede llamarse como el usuario guste, en esta ocasion se le colocaria unicamente lo de: <?php phpinfo();?>

Si escribis en el navegador: http://localhost/testphp.php se deberia visualizar la informacion referente al PHP5 instalado.

MySQL: sudo apt-get install mysql-server mysql-client mysql-admin mysql-doc-5.0

Al finalizar la instalacion por terminal nos mostrara unas ventanas graticas por la misma terminal donde nos pedira password para el usuario root entre otras cosas para dar por culminado su instalacion.

Solo nos queda instalar el phpMyAdmin de la siguiente forma:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

Finalmente solo nos queda que PHP trabaje con MySQL, para esto debemos editar el archivo php.ini en el cual solo debemos descomentar una linea.

sudo gedit /etc/php5/apache2/php.ini

Buscamos la linea ;extension=mysql y le quitamos el ; (punto y coma), guardamos y cerramos.

Ya por ultimo reiniciamos nuestro servidor Apache y todo listo.

sudo /etc/init.d/apache2 restart

Lo que pongamos en: /var/www sera visto en http://localhost/pagina.php

Podemos hacernos un vinculo a esa carpeta, por ejemplo, en el Escritorio:

sudo ln -s /var/www /home/miusuario/Escritorio/www

Se nos creara una carpeta www en el Escritorio con un simbolo de una flecha, indicativo de que es un vinculo, igual como colocar un vinculo en el Escritorio de Windows, pero en nuestro caso, en Linux. Pero no poseemos privilegios para agregar, quitar o editar archivos dentro de /var/www por lo que ademas de ya haber establecido el vinculo, sea antes o despues de esto, debemos darle propiedades o permisos a nuestro usuario a dicha ruta.

sudo chown miusuario /var/www

Con esto ya nuestro usuario puede trabajar con esta carpeta, nuestra carpeta de trabajo, todo lo que contengamos ahi sera visto en el localhost de Apache.

Sobre VirtualHost puede verse en el post comentado al inicio de este titulado: Comenzando un Proyecto Web.

Comentando sobre la situacion de “table read only” en MySQL

Buscando una lista de Paises y sus Ciudades (aunque en mi caso buscaba Paises, Estados y sus Ciudades) encontre este instructivo sobre Select dependientes (de 2 select y de hasta 3 select) con lo cual para el ejemplo de 2 select dependientes, el ejemplo de descarga viene con un archivo .sql que importamos a mysql (o por phpmyadmin) a nuestra BD o creamos la que necesita dicho archivo para incluir estas tablas: lista_paises y lista_estados.  Pero faltan paises y sus ciudades, asi que al intentar ingresar mi pais, solo recibo el aviso de que la tabla es de solo lectura ‘read only’ por lo que buscando encontre este post al cual me hubiese gustado escribirme un comentario de agradecimiento a su autor, pero en link de comentario no me carga la ventana de comentarios (no sea que ya lo tenga cerrado) ademas de que nunca he aprobado el que una persona tenga que registrarse para tan solo pueda escribir un comentario, estos deberian ser libres, ya que despues de todo se prestan a moderacion por parte del autor y editor del articulo. Al menos espero hacer ping al post por establecer su link aqui.

Entonces, como comentan en el post del blog ya mencionado, con cambiar al dueno y grupo para tener acceso a manipular las tablas. Coloco como apuntes las mismas indicaciones puesto que ya me ha pasado en repetidas veces, que informacion de otras partes con el tiempo pueden ya no estar ahi, link rotos, blogs cerrados, informacion cambiada, donde gracias al cache de google podemos volver a llegar a dicha informacion, asi que para tener un respaldo y sabemos que es mas facil conseguir las cosas cuando la informacion se repite mas de una vez en internet, indico los pasos para evitarnos el ‘read only’ de cualquier tabla al momento de intentar ingresar informacion en ella.

Nos dirigimos donde MySQL tiene todas las BDs incluyendo las nuestras:

cd /var/lib/mysql

Y procedemos a hacer el ajuste de dueno y grupo, donde indicamos que todas (el *) las BDs y tablas pertenescan al grupo de mysql, ya que en mi caso, las tablas importadas pudieron haber sido creadas por un usuario de otro grupo y por ende no se nos permite alterarlas.

Advertencia:

Antes de ejecutar la siguiente instruccion, recordamos que se debe de estar dentro de la carpeta donde se dara/cambiara estos permisos, por eso se comenta mas arriba que debemos estar en esa carpeta (cd /var/lib/mysql) ya si abres una terminal y ejecutas la instruccion a continuacion, estaras cambiandole a tu carpeta de usuario (/home/miusuario/)  tus permisos sobre ella y sera el grupo mysql el que sera dueno de tu /home/miusuario, por lo que debe quedar claro que donde se esta haciendo esto.

sudo chown -R mysql:mysql *

Para que MySQL tome los cambios (los cuales MySQL aun no sabe) le ayudamos a que se entere reiniciandolo:

sudo /etc/init.d/mysql restart

Si en tu caso no tienes Apache, PHP y MySQL instalados por separado (integrados o no) sino que tienes XAMPP/LAMPP entonces para reiniciar MySQL si la mente no me falla debria ser:

sudo /opt/lampp/lampp restartmysql

Sino en todo caso con reinciiar todo el LAMPP vastaria:

sudo /opt/lampp/lampp restart

Luego de haber reiniciado el MySQL ya deberiamos poder ingresar informacion a las tablas.

Otra ultima cosa…

Apache no muestra mis archivos o carpetas dentro de la raiz

Me ha pasado que luego de un respaldo y reinstalacion del sistema por razones que no caben o no entran en este tema, al volver a colocar mi respaldo en /var/www/ en localhost no se me mostraban todas las carpetas de proyectos web, solo los archivos de la raiz. Me fije que al crear una carpeta nueva, esta si se veia lo cual indicaba que era un problema de persmisos, exactamente eso, con un chmod 777 (mas rapido que propiedades de cada carpeta e indicar Acceso a sus archivos en Grupo y Otros) con un sudo chmod -Rfv 777 /var/www/ recursivamente colocamos todo el contenido de carpetas de /var/www a ser visto nuevamente por Apache para un servidor de desarrollo No de produccion, hablamos de un localhost en este caso.

enjoy!

Anuncios

Written by jocdz

septiembre 23, 2009 a 7:37 pm

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: