(→Fuente: +Categoría:Servidores) |
m (Apache MySQL PHP trasladada a LAMP: simplifico título) |
| |
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)