domingo, febrero 19, 2006

Instalación de Apache + PHP + MySQL en Gentoo

Como bien saben tenemos a nuestro querido emerge XD..

Pues miramos los paquetes necesarios (miren con atención las USES):


[ebuild R ] net-www/apache-2.0.55-r1 +apache2 +debug
+doc -ldap -mpm-leader -mpm-peruser -mpm-prefork -mpm-threadpool
-mpm-worker -no-suexec (-selinux) +ssl -static-modules -threads



[ebuild R ] dev-php/mod_php-4.4.0-r9 +X +apache2 +berkdb
+crypt +curl +debug +doc -fdftk -firebird +flash -freetds +gd
-gd-external +gdbm -gmp -hardenedphp +imap -informix +ipv6 +java +jpeg
-kerberos -ldap -mcal -memlimit +mssql +mysql +nls -oci8 -odbc +pam
+png +postgres -snmp +spell +ssl +tiff +truetype +xml2 -yaz



Calculating dependencies ...done!
[ebuild R ] dev-db/mysql-4.1.14 +berkdb -big-tables -cluster
+debug +doc -extraengine -geometry -minimal +perl +readline (-selinux)
+ssl -static +tcpd -utf8



These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild R ] dev-db/phpmyadmin-2.7.0_p1 -vhosts 0 kB


Recomiendo actualizar la BD de portage antes de bajar los paquetes..

USE="apache2 flash gd java mysql postgres php" emerge apache mod_php mysql phpmyadmin

Una vez descargados y bajados tenemos que configurar algunas opciones (algunas a nuestra consideración ;).



En apache ( /etc/apache2/httpd.conf)


## Este directorio es donde trabaja apache, contiene archivos de conf. y logs
ServerRoot "/usr/lib/apache2"

## Tiempo en segundos donde apache puede esperar a realizar peticiones o recibir paquetes
Timeout 300

## Permite conecciones multiples al servidor
KeepAlive On

## Numero de peticiones por conexión, si el valor = 0 entonces es ilimitado
MaxKeepAliveRequests 100

## Segundos que el servidor Apache esperará una paetición antes de cerrarla
KeepAliveTimeout 15

## Ip y puerto por donde escuchará apache al estar encendido
Listen 80

## Usuario y grupo al que se le permite tener acceso a la información de directorios del servidor
User apache
Group apache

## Correo del admin del servidor
ServerAdmin root@soullost.com

## Nombre del servidor y puerto que utilizará el servidor para identificarse a si mismo. En este
## caso cuanto con un servidor DSN XD pero por lo regular se pone localhost:80
ServerName www.soullost.com:80

## Directorio donde se guardaran las paginas del servidor
DocumentRoot "/var/www/localhost"

## Aqui se determinar que tipo de pagínas se admiten como index ( principal)
DirectoryIndex index.html index.html.var index.php

## Archivo de config. personales ( útil en el caso tener dominios virtuales )
AccessFileName .htaccess

## Si esta opción esta en "on" en los archivos de bitacora (logs) en vez de usar direcciones ip
## se usaran dominios. Por ejemplo www.soullost.com en vez de 192.168.1.3
HostnameLookups Off

## Ubicación del archivo de errores (tener el cuenta la opción ServerRoot )
ErrorLog logs/error_log

## Nivel de depuración de errores (algo como una directiva)..
LogLevel warn

## Directorio donde se guardan los cgi-bins y un alias, en este caso, el alias es /cgi-bin/
## Recordando la directiva de ServerRoot quedaría /var/www/cgi-bin/
ScriptAlias /cgi-bin/ /var/www/localhost/cgi-bin/

## En gentoo tenemos este directorio para configurar los VirtualHost
Include /etc/apache2/vhosts.d/*.conf


En gentoo tenemos un archivo de config. de apache especial para especificar como se actuará..

/etc/conf.d/apache2

## Esta opción especificamos que el directorio para los host virtuales, también usaremos el modulo
## de apache y activamos el directorio para que lo usuarios del sistema puedan subir paginas.
## Ahi mismo en el archivo menciona de que se trata cada opción:

# Config file for /etc/init.d/apache2

# When you install a module it is easy to activate or deactivate the modules
# and other features of apache using the APACHE2_OPTS line. Every module should
# install a configuration in /etc/apache2/modules.d. In that file will be an
# where NNN is the option to enable that module.
# Here are the options available in the default configuration:
# USERDIR Enables /~username mapping to /home/username/public_html
# INFO Enables mod_info, a useful module for debugging
# PROXY Enables mod_proxy
# DAV Enables mod_dav
# DAV_FS Enables mod_dav_fs (you should enable this when you enable DAV
# unless you know what you are doing)
# SSL Enables SSL
# SSL_DEFAULT_VHOST Enables default vhost for SSL (you should enable this
# when you enable SSL unless you know what you are doing)
# LDAP Enables mod_ldap
# AUTH_LDAP Enables authentication through mod_ldap
# DEFAULT_VHOST Enables the default virtual host in /var/www/localhost/htdocs


APACHE2_OPTS="-D DEFAULT_VHOST -D PHP4 -D USERDIR"


Para iniciar el servidor:


/etc/init.d/apache2 start


En este caso miramos si se ectivo con exito, abrimos el navegador web y colocamos: localhost:80
Te tiene que decir que el servidor de webs se levanto con exito y te mostrara la sigueinte pantalla:
Free Image Hosting at www.ImageShack.us

Para verificar que soportamos PHP creamos una pagína en /var/www/locahost/htdocs como root con el siguiente código:


<?php
phpinfo();
?>


Y miramos la pagina por el navegador y saldrá algo asi:

Free Image Hosting at www.ImageShack.us

Yo aconstumbro crear un usuario para hacer pruebas con php y mysql sin hacer un desmadre en /var/www/localhost de ahi la opción de -D USERDIR en /etc/conf.d/apache2


adduser -m -g apache -s /bin/bash usuario
passwd usuario



test1@UnderHouse ~ $ id
uid=1005(test1) gid=81(apache) grupos=81(apache)


Creo el direcorio: mkdir /home/test1/public_html

Y listo a crear pagínas ahi..

Para ver las pagínas escribimos: http://localhost/~test1/pagina.html

Para MySQL

Despues de instalarlo y bajar sus dependencias dependiendo de las USES vamos a realizar este comandos (antes de iniciarlo, para poder iniciar en PHPMyAdmin).


ebuild /var/db/pkg/dev-db/mysql-4.1.14/mysql-4.1.14.ebuild config

Y también:


mysqladmin -u root -h localhost password 'mi_password'


Nota: Si es otra versión solo cambiala..
También debemos ingresar la contraseña de root

Ahora si iniciamos el demonio mysql


/etc/init.d/mysql start


Para entrar hacemos: mysql -u root -p


Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 4.1.14-debug-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| pmadb |
| test |
+----------+
3 rows in set (0.02 sec)

mysql> \q
Bye


Abrimos el navegador y tecleamos la siguiente dirección: localhost/phpmyadmin
Nos pedirá usuario y contraseña del root

Free Image Hosting at www.ImageShack.us

Y listo!!!

Espero no se me olvide nada, saludos!! ;)

2 comentarios:

Soul Lost dijo...

Fe de erratas

El paquete mod_php ya no existe en la BD de portage ha sido reemplazado por dev-lang/php..

Anónimo dijo...

buena la guia pero te falto poner para crear las tablas de la DB

mysql -u root -p < /usr/share/webapps/phpmyadmin/2.8.2/sqlscripts/mysql/2.8.2_create.sql

ese comando despuedes de instalar el mysql tambien es esta parte de ç


Y también:


mysqladmin -u root -h localhost password 'mi_password'



Nota: Si es otra versión solo cambiala..
También debemos ingresar la contraseña de root

Ahora si iniciamos el demonio mysql


/etc/init.d/mysql start

****************+++

creo que primero iniciamos del demonio msql y luego agregamos el pass para el user. por que si no se inicia el deminio tira ne error

Bueno saludos me sirvio de mucho xDDD