(→Fuente: +Categoría:Servidores) |
|||
| (No se muestran 9 ediciones intermedias realizadas por 4 usuarios) | |||
| Línea 1: | Línea 1: | ||
{{Importante|Este artículo está siendo traducido en estos momentos, está incompleto y tiene algunos errores de traducción que se corregirán en breve.}} | {{Importante|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 [[w:LAMP|LAMP]] ('''L'''inux-'''A'''pache-'''M'''ySQL-'''P'''HP) en Ubuntu, incluyendo Apache 2, PHP 4 o 5, y MySQL 4.1 o 5.0. | + | Esta página proporciona ayuda para personas que quieren instalar y configurar un servidor [[w:LAMP|LAMP]] ('''L'''inux-'''A'''pache-'''M'''ySQL-'''P'''HP) en Ubuntu, incluyendo [[w:Servidor_HTTP_Apache|Apache 2]], [[w:PHP|PHP 4 o 5]], y [[MySQL|MySQL 4.1 o 5.0]]. |
| 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 | + | 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, | + | ''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). | + | ''Si libapache2-mod-php5 no está instalado, al instalar php4 se instalará el módulo php de apache2 (libapache2-mod-php4). Ve esto [: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. | 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. | ||
| Línea 24: | Línea 24: | ||
| − | Todos estos paquetes están el el repositorio '''main''' de Ubuntu 6.06 LTS (Dapper Drake) '''main'''. Una vez hayas instalado LAMP, necesitas configurar | + | 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) == | == 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 | + | 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 | sudo tasksel install lamp-server | ||
| Línea 46: | Línea 46: | ||
== Instalar Apache 2 == | == Instalar Apache 2 == | ||
Para instalar solo el servidor web apache2 webserver, utiliza [[Instalar aplicaciones|cualquier método]] para instalar el paquete: | Para instalar solo el servidor web apache2 webserver, utiliza [[Instalar aplicaciones|cualquier método]] para instalar el paquete: | ||
| − | + | apache2 | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
=== Resolución de problemas === | === Resolución de problemas === | ||
Si obtienes el siguiente error: | Si obtienes el siguiente error: | ||
| Línea 84: | Línea 80: | ||
| − | sudo a2dissite default && sudo a2ensite | + | sudo a2dissite default && sudo a2ensite misitio |
| Línea 260: | Línea 256: | ||
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. | 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. | ||
| + | === Alternativa: instalar phpMyAdmin desde las fuentes === | ||
| + | Consulta la página [https://help.ubuntu.com/community/phpMyAdmin phpMyAdmin] para instrucciones de como instalar install phpmyadmin desde las fuentes: | ||
| + | === Mysql-admin === | ||
| + | Mysql-admin se ejecuta localmente en el escritorio. Utiliza [[instalar aplicaciones|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 <tt>/etc/apache2/mods-enabled/userdir.conf.</tt> | ||
| + | |||
| + | == 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 <tt>mysql.so</tt> por <tt>mysqli.so</tt> 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 <tt>mysql.so</tt> por <tt>mysqli.so</tt> 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 <tt>mysql</tt>.so por <tt>mysqli.so</tt> 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) | (continúa) | ||
| |
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 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). Ve esto [: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 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!
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
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 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/
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.
Consulta la página phpMyAdmin para instrucciones de como instalar install phpmyadmin desde las fuentes:
Mysql-admin se ejecuta localmente en el escritorio. Utiliza cualquier método para instalar
mysql-admin
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.
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:
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.
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.
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)