(creo página) |
(corrección de traducción y formato) |
||
| 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 modules | + | 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 modules 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, 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.'' | ||
| Línea 19: | Línea 19: | ||
== Instalar el default LAMP stack en Ubuntu 6.06 LTS (Dapper Drake) == | == Instalar el default LAMP stack en Ubuntu 6.06 LTS (Dapper Drake) == | ||
| − | Si no has utilizado la opción LAMP del instalador | + | 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 [[instalar aplicaciones|cualquier método]] los siguientes paquetes: |
apache2 php5-mysql libapache2-mod-php5 mysql-server | apache2 php5-mysql libapache2-mod-php5 mysql-server | ||
| Línea 32: | Línea 32: | ||
sudo tasksel install lamp-server | sudo tasksel install lamp-server | ||
| + | Consulta [https://help.ubuntu.com/community/Tasksel tasksel] | ||
| − | + | == Cómo eliminar el LAMP stack == | |
| − | + | ||
| − | == | + | |
Para borrar LAMP stack borra los siguientes paquetes: | Para borrar LAMP stack borra los siguientes paquetes: | ||
| Línea 43: | Línea 42: | ||
| − | Para borrar también el debconf data, utiliza la opción < | + | Para borrar también el debconf data, utiliza la opción <pre>purge</pre> al borrar. Para eliminar cualquier configuración hecha a apache borra manualmente el directorio <tt>/etc/apache2</tt> una vez hayas eliminado los paquetes. |
== Instalar Apache 2 == | == Instalar Apache 2 == | ||
| − | Para instalar solo el servidor web apache2 webserver, utiliza [[Instalar aplicaciones|cualquier método]] para instalar: | + | Para instalar solo el servidor web apache2 webserver, utiliza [[Instalar aplicaciones|cualquier método]] para instalar el paquete: |
| Línea 67: | Línea 66: | ||
=== Hosts virtuales === | === Hosts virtuales === | ||
| − | Apache2 | + | Apache2 tiene el concepto de que los sitios son ficheros de configuración separados que Apache leerá. Estos ficheros están disponibles en <tt>/etc/apache2/sites-available</tt>. 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 <tt>/home/user/public_html/</tt>. Para hacerlo debemos crear un nuevo sitio y habilitarlo en Apache2. | Como ejemplo, queremos que el sitio por defecto sera <tt>/home/user/public_html/</tt>. Para hacerlo debemos crear un nuevo sitio y habilitarlo en Apache2. | ||
| Línea 78: | Línea 77: | ||
gksudo gedit /etc/apache2/sites-available/misitio | gksudo gedit /etc/apache2/sites-available/misitio | ||
* Cambia el <tt>DocumentRoot</tt> para que apunte a la nueva localización. Por ejemplo, <tt>/home/user/public_html/</tt> | * Cambia el <tt>DocumentRoot</tt> para que apunte a la nueva localización. Por ejemplo, <tt>/home/user/public_html/</tt> | ||
| − | * Cambia | + | * Cambia la directiva <tt>Directory</tt>, reemplaza <tt><Directory /var/www/></tt> por <tt><Directory /home/user/public_html/</tt> |
* ''También puedes configurar logs separados para cada sitio. Para hacerlo, cambia las directivas <tt>ErrorLog</tt> y <tt>CustomLog</tt>. Esto es opcional pero muy útil si tienes varios sitios'' | * ''También puedes configurar logs separados para cada sitio. Para hacerlo, cambia las directivas <tt>ErrorLog</tt> y <tt>CustomLog</tt>. Esto es opcional pero muy útil si tienes varios sitios'' | ||
* Guarda el fichero | * Guarda el fichero | ||
| Línea 94: | Línea 93: | ||
| − | ''Si no has creado <tt>/home/user/public_html/</tt> recibirás un mensaje de | + | ''Si no has creado <tt>/home/user/public_html/</tt> recibirás un mensaje de advertencia'' |
Para testear el nuevo sitio, crea un fichero en <tt>/home/user/public_html/</tt>: | Para testear el nuevo sitio, crea un fichero en <tt>/home/user/public_html/</tt>: | ||
| Línea 112: | Línea 111: | ||
libapache2-mod-php5 | libapache2-mod-php5 | ||
| − | |||
=== Resolución de problemas === | === Resolución de problemas === | ||
| − | ¿Te pregunta tu navegador si quieres '''descargar el fichero php''' en lugar de mostrarlo? Si Apache | + | ¿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 <tt>libapache2-mod-php5</tt>. Éste se instala al instalar el paquete <tt>php5</tt>, 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 <tt>sudo a2enmod php5</tt> seguido de <tt>sudo /etc/init.d/apache2 restart</tt>. Asegúrate de limpiar la caché de tu navegador antes de volver a probar tu sitio. |
| Línea 124: | Línea 122: | ||
php4 | php4 | ||
| − | Si PHP5 está presente en tu sistema, al instalar php4 se instalará el módulo php para | + | 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 | libapache2-mod-php4 | ||
| Línea 131: | Línea 129: | ||
=== Resolución de problemas === | === Resolución de problemas === | ||
| − | ¿Te pregunta tu navegador si quieres '''descargar el fichero php''' en lugar de mostrarlo? Si Apache | + | ¿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 <tt>libapache2-mod-php4</tt>. Éste se instala al instalar el paquete <tt>php4</tt>, 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 <tt>sudo a2enmod php4</tt> seguido de <tt>sudo /etc/init.d/apache2 restart</tt>. Asegúrate de limpiar la caché de tu navegador antes de volver a probar tu sitio. |
| Línea 142: | Línea 140: | ||
== Instalar MYSQL con PHP 4 == | == Instalar MYSQL con PHP 4 == | ||
| − | Primero habilita el respositorio | + | Primero habilita el respositorio Universe ya que los paquetes no están en ''main'' |
* [[Repositorios desde la línea de comandos|Si usas Ubuntu Server (línea de comandos)]] | * [[Repositorios desde la línea de comandos|Si usas Ubuntu Server (línea de comandos)]] | ||
| Línea 158: | Línea 156: | ||
== Después de instalar MySQL == | == 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 | + | Antes de poder acceder a la base de datos '''desde otros''' equipos de tu red tienes que cambiar su bind address. |
| − | '''Ésto puede | + | '''É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 | + | Sáltate este paso si la aplicación que requiere mysql se ejecuta en el mismo equipo''' |
Escribe: | Escribe: | ||
| Línea 168: | Línea 166: | ||
nano /etc/mysql/my.cnf | nano /etc/mysql/my.cnf | ||
| − | Y | + | Y cambia la línea: |
bind-address = localhost | bind-address = localhost | ||
| Línea 176: | Línea 174: | ||
bind-address = 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 | + | 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 | + | 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 === | === Configurar la contraseña root mysql === | ||
| Línea 194: | Línea 192: | ||
''Query OK, 0 rows affected (0.00 sec) '' | ''Query OK, 0 rows affected (0.00 sec) '' | ||
| − | Los comandos Mysql pueden | + | 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 | + | '''Nota:''' Si ya has configurado antes una contraseña root para mysql, necesitarás usar: |
mysql -u root -p | mysql -u root -p | ||
| − | (¿Olvidaste la contraseña mysql-root? Consulta | + | (¿Olvidaste la contraseña mysql-root? Consulta Resetear contraseña MySQL) |
| − | === Crear una base de datos | + | === Crear una base de datos MySQL === |
mysql> CREATE DATABASE database1; | mysql> CREATE DATABASE database1; | ||
| − | === Crear un usuario | + | === Crear un usuario MySQL === |
| − | Para crear un nuevo usuario con todos los privilegios (solo para | + | 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; | 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 | + | 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'; | 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 | + | ''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 | + | Para salir de una consola mysql escribe: |
mysql> \q | mysql> \q | ||
| − | Ahora que la contraseña root | + | Ahora que la contraseña root está configurada, si necesitas usar mysql otra vez (como root), tendrás que usar: |
mysql -u root -p | mysql -u root -p | ||
| − | y entonces introducir la contraseña en la | + | y entonces introducir la contraseña en la consola. |
| − | === Configuración de | + | === 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''': | 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''': | ||
| Línea 256: | Línea 255: | ||
Instala el paquete | Instala el paquete | ||
| − | phpmyadmin | + | phpmyadmin |
=== Resolución de problemas === | === Resolución de problemas === | ||
'''Si obtienes el error blowfish_secret:''' | '''Si obtienes el error blowfish_secret:''' | ||
| − | Escoge y configura una | + | 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 <pre>/etc/phpmyadmin/config.inc.php</pre> o recibirás un error. |
| |
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.
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 modules 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 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.
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 hayas instalado LAMP, necesitas configurar un 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!
En Feisty, el sistema de base de Ubuntu incluye Tasksel. Puedes instalar LAMP usando tasksel o instalar los paquetes LAMP como se detalla seguidamente.
sudo tasksel install lamp-server
Consulta tasksel
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
purgeal borrar. Para eliminar cualquier configuración hecha a apache borra manualmente el directorio /etc/apache2 una vez hayas eliminado los paquetes.
Para instalar solo el servidor web apache2 webserver, utiliza cualquier método para instalar el paquete:
apache2
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
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:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/misitio
gksudo gedit /etc/apache2/sites-available/misitio
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 mysite
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/
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
¿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.
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
¿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.
Instala los paquetes
mysql-server libapache2-mod-auth-mysql php5-mysql
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
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.
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".
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)
mysql> CREATE DATABASE database1;
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.
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)
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.
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
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.phpo recibirás un error.
(continúa)