LAMP

De doc.ubuntu-es
(Diferencias entre revisiones)
Saltar a: navegación, buscar
Línea 8: Línea 8:
 
== Comprobar requisitos ==
 
== Comprobar requisitos ==
  
Algunas aplicaciones requieren php4 mientras que otras trabajarán con php5. Asegúrate de instalar la versión de php y el correspondiente módulo de apache2 module para ello. No puedes tener ambos módulos de php4 y php5 modulos ejecutándose en la misma instancia de apache2 al mismo tiempo. Para instalar una debes borrar la otra.
+
Algunas aplicaciones requieren php4 mientras que otras trabajarán con php5. Asegúrate de instalar la versión de php y el correspondiente módulo de apache2 module para ello. No puedes tener ambos módulos de php4 y php5 ejecutándose en la misma instancia de apache2 al mismo tiempo. Para instalar una debes borrar la otra.
  
''Si tienes instalados ambos php4 y php5, be aware de qué versión de módulo de apache2 php tienes. Si <tt>libapache2-mod-php5</tt> está ya instalado, el paquete php4 instalará libapache-mod-php4 y no el paquete libapache'''2'''-mod-php4.''
+
''Si tienes instalados ambos php4 y php5, ten cuidado de qué versión de módulo de apache2 php tienes. Si <tt>libapache2-mod-php5</tt> está ya instalado, el paquete php4 instalará libapache-mod-php4 y no el paquete libapache'''2'''-mod-php4.''
  
 
''Si libapache2-mod-php5 no está instalado, al instalar php4 se instalará el módulo php de apache2 (libapache2-mod-php4).  See this [:ApacheMySQLPHP/AptPhp4Output: example].''
 
''Si libapache2-mod-php5 no está instalado, al instalar php4 se instalará el módulo php de apache2 (libapache2-mod-php4).  See this [:ApacheMySQLPHP/AptPhp4Output: example].''

Revisión de 04:50 30 abr 2008

Important.png Este artículo está siendo traducido en estos momentos, está incompleto y tiene algunos errores de traducción que se corregirán en breve.

Esta página proporciona ayuda para personas que quieren instalar y configurar un servidor LAMP (Linux-Apache-MySQL-PHP) en Ubuntu, incluyendo Apache 2, PHP 4 o 5, y MySQL 4.1 o 5.0.


Cuando instalas desde el CD server de Ubuntu 6.06 (Dapper Drake), tienes la opción de instalar una configuración LAMP desde la pantalla inicial de instalación de Ubuntu. Ésto instalará apache2, php5 y mysql 5.0.

Contenido

Comprobar requisitos

Algunas aplicaciones requieren php4 mientras que otras trabajarán con php5. Asegúrate de instalar la versión de php y el correspondiente módulo de apache2 module para ello. No puedes tener ambos módulos de php4 y php5 ejecutándose en la misma instancia de apache2 al mismo tiempo. Para instalar una debes borrar la otra.

Si tienes instalados ambos php4 y php5, ten cuidado de qué versión de módulo de apache2 php tienes. Si libapache2-mod-php5 está ya instalado, el paquete php4 instalará libapache-mod-php4 y no el paquete libapache2-mod-php4.

Si libapache2-mod-php5 no está instalado, al instalar php4 se instalará el módulo php de apache2 (libapache2-mod-php4). See this [:ApacheMySQLPHP/AptPhp4Output: example].

La mayoría de aplicaciones web utilizan Apache2, php5 y mysql5.0. Si no se especifican otras en la documentación de las aplicaciones, usa éstas.


Instalar el default LAMP stack en Ubuntu 6.06 LTS (Dapper Drake)

Si no has utilizado la opción LAMP del instalador del CD server pero quieres instalar los mismos paquetes sin tener que reinstalar tu sistema operativo, instala con cualquier método los siguientes paquetes:

apache2 php5-mysql libapache2-mod-php5 mysql-server


Todos estos paquetes están el el repositorio main de Ubuntu 6.06 LTS (Dapper Drake) main. Una vez que hayas instalado LAMP, necesitas configurar una contraseña root de mysql y luego, dependiendo de la aplicación web, crear una base de datos, con su usuario y su contraseña. Eso es todo!

Instalar el default LAMP stack en Ubuntu 7.04 (Feisty Fawn)

En Feisty, el sistema de base de Ubuntu incluye Tasksel. Puedes instalar LAMP usando tasksel o instalar los paquetes LAMP como se detalla enseguida.

sudo tasksel install lamp-server

Consulta tasksel

Cómo eliminar el LAMP stack

Para borrar LAMP stack borra los siguientes paquetes:


apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1     libaprutil1 libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 php5-common php5-mysql


Para borrar también el debconf data, utiliza la opción
purge
al borrar. Para eliminar cualquier configuración hecha a apache borra manualmente el directorio /etc/apache2 una vez hayas eliminado los paquetes.

Instalar Apache 2

Para instalar solo el servidor web apache2 webserver, utiliza cualquier método para instalar el paquete:

apache2

Resolución de problemas

Si obtienes el siguiente error:

apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

edita el siguiente fichero:

/etc/apache2/httpd.conf

y añade al final del fichero la siguiente línea

ServerName localhost


Hosts virtuales

Apache2 tiene el concepto de que los sitios son ficheros de configuración separados que Apache leerá. Estos ficheros están disponibles en /etc/apache2/sites-available. Por defecto hay un sitio disponible llamado default esto es lo que verás cuando navegues a http://localhost o http://127.0.0.1. Puedes tener varias configuraciones de sitio disponibles, y activar solo las que necesites.

Como ejemplo, queremos que el sitio por defecto sera /home/user/public_html/. Para hacerlo debemos crear un nuevo sitio y habilitarlo en Apache2.

Para crear un nuevo sitio:

  • Copia el sitio web por defecto como punto de partida.
 sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/misitio 
  • Edita como root el nuevo fichero como de configuración con un editor de texto, por ejemplo:
 gksudo gedit /etc/apache2/sites-available/misitio
  • Cambia el DocumentRoot para que apunte a la nueva localización. Por ejemplo, /home/user/public_html/
  • Cambia la directiva Directory, reemplaza <Directory /var/www/> por <Directory /home/user/public_html/
  • También puedes configurar logs separados para cada sitio. Para hacerlo, cambia las directivas ErrorLog y CustomLog. Esto es opcional pero muy útil si tienes varios sitios
  • Guarda el fichero

Ahora hemos desactivado el antiguo sitio y activado nuestro sitio nuevo. Ubuntu proporciona dos pequeñas utilidades que cuidan de ésto: a2ensite (apache2enable site) y a2dissite (apache2disable site).


 sudo a2dissite default && sudo a2ensite misitio

Finalmente reinicia Apache2:


sudo /etc/init.d/apache2 restart

Si no has creado /home/user/public_html/ recibirás un mensaje de advertencia

Para testear el nuevo sitio, crea un fichero en /home/user/public_html/:

 echo '¡¡Hola! Esto funciona!!' > /home/user/public_html/index.html


Finalmente navega hasta http://localhost/

Instalar PHP 5

Para instalar solo PHP5 usa cualquier métodos para instalar el paquete

php5

Si tienes PHP4 en tu sistema, instala también el paquete

 libapache2-mod-php5

Resolución de problemas

¿Te pregunta tu navegador si quieres descargar el fichero php en lugar de mostrarlo? Si Apache no está 'parseando' el php después de reiniciarlo, instala libapache2-mod-php5. Éste se instala al instalar el paquete php5, pero puede haber sido eliminado sin que nos demos cuenta por paquetes que necesitan ejecutar una versión diferente de php. También puede que necesites habilitarlo, haciendo sudo a2enmod php5 seguido de sudo /etc/init.d/apache2 restart. Asegúrate de limpiar la caché de tu navegador antes de volver a probar tu sitio.


Instalar PHP 4

Para instalar PHP4, instala el paquete

php4

Si PHP5 está presente en tu sistema, al instalar php4 se instalará el módulo php para Apache (versión 1.3) y no apache2. Para usar php4 con apache2, instala

libapache2-mod-php4


Resolución de problemas

¿Te pregunta tu navegador si quieres descargar el fichero php en lugar de mostrarlo? Si Apache no está parseando el php después de reiniciarlo, instala libapache2-mod-php4. Éste se instala al instalar el paquete php4, pero puede haber sido eliminado sin que nos demos cuenta por paquetes que necesitan ejecutar una versión diferente de php. También puede que necesites habilitarlo, haciendo sudo a2enmod php4 seguido de sudo /etc/init.d/apache2 restart. Asegúrate de limpiar la caché de tu navegador antes de volver a probar tu sitio.

Instalar MYSQL con PHP 5

Instala los paquetes

mysql-server libapache2-mod-auth-mysql php5-mysql

Instalar MYSQL con PHP 4

Primero habilita el respositorio Universe ya que los paquetes no están en main

Instala los siguientes paquetes

mysql-server libapache2-mod-auth-mysql php4-mysql

Después de instalar PHP

Puede que necesites aumentar el límite de memoria que impone PHP en un script. Edita el fichero /etc/php5/apache2/php.ini y aumenta el valor de memory_limit.


Después de instalar MySQL

Configurar la bind address de mysql

Antes de poder acceder a la base de datos desde otros equipos de tu red tienes que cambiar su bind address. Ésto puede provocar un problema de seguridad, ya que se podrá acceder a tu base de datos desde otros equipos. Sáltate este paso si la aplicación que requiere mysql se ejecuta en el mismo equipo

Escribe:

nano /etc/mysql/my.cnf

Y cambia la línea:

bind-address           = localhost

A tu propia dirección ip interna, por ejemplo 192.168.1.20

bind-address           = 192.168.1.20

Si tu dirección ip es dinámica también puedes comentar la línea y se usará por defecto tu actual Ip.

Si intentas conectarte sin cambiar la bind-address entonces recibirás un "Can not connect to mysql error 10061".

Configurar la contraseña root mysql

Antes de acceder a la base de datos por consola necesitas escribir

 mysql -u root

En la consola mysql escribe :

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('tu contraseña');

Si se ha realizado con éxito mostrará:

Query OK, 0 rows affected (0.00 sec) 

Los comandos Mysql pueden extenderse varias líneas. No olvides finalizar el comando mysql con un punto y coma (;).

Nota: Si ya has configurado antes una contraseña root para mysql, necesitarás usar:

mysql -u root -p

(¿Olvidaste la contraseña mysql-root? Consulta Resetear contraseña MySQL)

Crear una base de datos MySQL

mysql> CREATE DATABASE database1;

Crear un usuario MySQL

Para crear un nuevo usuario con todos los privilegios (solo para solucionar problemas), en una consola mysql escribe:

 mysql> GRANT ALL PRIVILEGES ON *.* TO 'tunombredeusuario'@'localhost' IDENTIFIED BY 'tucontraseña' WITH GRANT OPTION;

Para crear un nuevo usuario con algunos privilegios (debe funcionar con la mayoría de aplicaciones web) el cual sólo pueda utilizar la base de datos llamada "database1", en una consola mysql escribe:

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON database1.* TO 'tunombredeusuario'@'localhost' IDENTIFIED BY 'tucontraseña';

tunombredeusuario y tucontraseña pueden ser lo que tu quieras. database1 es el nombre de la base de datos la que el usuario tiene acceso. localhost es la ubicación que obtiene acceso a tu base de datos. Puedes cambiarlo a '%' (o a un nombre de host o dirección ip) para permitir conexiones desde cualquier ubicación (o solo de ubicaciones específicas) a la base de datos. Ésto puede provocar un problema de sefuridad y solo se debe utilizar para pruebas!

Para salir de una consola mysql escribe:

 mysql> \q

Ahora que la contraseña root está configurada, si necesitas usar mysql otra vez (como root), tendrás que usar:

 mysql -u root -p

y entonces introducir la contraseña en la consola.

Configuración de copia de seguridad

Vamos a comentar en qué directorios almacena MySQL la información de la base de datos y cómo configurar una copia de seguridad. (completar)

Alternativamente

Hay más de una manera de configurar la contraseña root de mysql y de crear una base de datos. Por ejemplo se puede usar mysqladmin:

mysqladmin -u root -p password tucontraseña

y

mysqladmin -u root -p create database1

mysqladmin es una herramienta de línea de comandos proporcionada por defecto en una instalación LAMP.

Phpmyadmin y mysql-admin

Todas las tareas mysql incluyendo la configuración de contraseña root y la creación de bases dedatos puede hacerse utilizando el interfaz gráfico phpmyadmin o mysql-admin.

Para instalar uno de los dos, primero habilita los repositorios Universe

Instala el paquete

phpmyadmin

Resolución de problemas

Si obtienes el error blowfish_secret:

Escoge y configura una frase para cryptography en el fichero /etc/phpmyadmin/blowfish_secret.inc.php y copia la linea (no los tags php) en el fichero
/etc/phpmyadmin/config.inc.php
o recibirás un error.

Alternativa: instalar phpMyAdmin desde las fuentes

Consulta la página phpMyAdmin para instrucciones de como instalar install phpmyadmin desde las fuentes:

Mysql-admin

Mysql-admin se ejecuta localmente en el escritorio. Utiliza cualquier método para instalar

 mysql-admin

Editar la configuración de Apache

Puede que quieras que tu actual usuario sea el administrador de páginas PHP. Para hacerlo, edita el fichero de configuración de Apache:

gksudo gedit /etc/apache2/apache2.conf

Busca los strings que empiezan por "User" y "Group" y cambia los nombres por el actual nombre de usuario y grupo que estés usando. Después necesitarás reiniciar Apache. (consulta el siguiente apartado sobre comandos de apache)

Las opciones de configuración relativas específicamente a websites de usuarios (accesado a través de localhost/~username) están en /etc/apache2/mods-enabled/userdir.conf.

Editar la configuración PHP para que funcione con MySQL (Ubuntu Dapper)

En Dapper Drake "extension=mysql.so" y "extension=mysqli.so" están habilitadas en el fichero php.ini por defecto. Sin embargo, a veces php no está apuntando al directorio correcto de esos ficheros. Deberás mover tus ficheros o modificar la configuración de php.ini:

Primera solución

Localiza el directorio donde se encuentran los ficheros de la extensión:

 locate mysql.so 

(cambiar mysql.so por mysqli.so si quieres instalar las funciones mysqli)

-modifica el fichero php.ini para indicar el lugar correcto del directorio de la extensión:

 gksudo gedit /etc/php4/apache2/php.ini

o si usas php5

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

Busca la propiedad 'extension_dir' y cámbiala al directorio donde encontraste el fichero mysql(i).so:

extension_dir= 2/usr/lib/php5/20051025/"

Reinicia apache y comprueba que las funciones mysql(i) estén funcionando.


Segunda solución

Localiza el directorio donde se encuentran los ficheros de la extensión:

 locate mysql.so

(cambiar mysql.so por mysqli.so si quieres instalar las funciones mysqli)

Vamos a imaginar que se ha encontrado el fichero en '/usr/lib/php5/20051025/'

-Comprueba en el fichero php.ini cual es el directorio de la extensión

 gksudo gedit /etc/php4/apache2/php.ini

o si usas php5

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


Busca la propiedad 'extension_dir'. Por defecto debería ser '/usr/lib/php5/ext'. Si no es, cambialo por ese valor.

-Ahora crea el directorio por defecto paar las extensiones:

 sudo mkdir /usr/lib/php5/ext

-Copia el fichero de la extensión en el nuevo directorio:


 sudo cp /usr/lib/php5/20051025/mysql.so /usr/lib/php5/ext/mysql.so


Cambia la primera ruta por la ruta donde se encontraste la extensión con el comando locate y cambia mysql.so por mysqli.so si quieres usar las funciones mysqli.

-Reinicia apache (consulta abajo) y comprueba si las funciones mysql(i) están funcionando.

Ejecutar, parar, testear y reiniciar Apache

Usa el siguiente comando para ejecutar Apache :

 sudo /usr/sbin/apache2ctl start

Para pararlo usa :

 sudo /usr/sbin/apache2ctl stop 

Para probar cambios en configuraciones utiliza:

 sudo /usr/sbin/apache2ctl configtest 

Finalmente, para reiniciarlo, ejecuta:

 sudo /usr/sbin/apache2ctl restart

(continúa)

Fuente

https://help.ubuntu.com/community/ApacheMySQLPHP

Herramientas personales