Bueno instalarlo en Linux es diferente, pero la configuración es idéntica, excepto en las las rutas y algún otro parámetro más.
/usr/local/apache en vez de c:\Archivos de Programa\Apache Group.......
Te bajas el Apache:------http://www.ibiblio.org/pub/packages/infosystems/WWW/servers/apache/httpd/apache_1.3.28.tar.gz------tar -xvzf apache_1.3.28.tar.gz
cd apache_1.3.28
./configure --enable-module=so
make
make install
Podemos instalarlo en otro directorio, que por defecto es /usr/local/apache con:
./configure --prefix=/www
El php:
http://www.php.net/get/php-4.3.1.tar.gz/from/bg.php.net/mirror------tar -xvzf php-4.3.1.tar.gz
cd php-4.3.1
./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs
o bien:
./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs --with-gd --with-zlib
make
make install
ya ta. Recuerda que debes haber compilado el apcahe con module=SO, para poder compilar el PHP y la ruta del apxs correcta, sino tambien dara error claro. Yo he puesto la ruta por defecto, si has instalado el apache en otro sitio puedes hacer un "locate apxs" y ver dónde lo tienes.
Puedes editar el php.ini en/etc/php.ini o /usr/local/lib/php.ini
Por defecto PHP usa sendmail para enviar e-mails con la función mail() , pero si queremos usar qmail, tenemos que añadir la ruta del ejecutable:
/usr/lib/qmail/qmail-inject
Para arrancar el apache tienes varias maneras:
/usr/local/apache/bin/apachectl start
/etc/rc.d/init.d/httpd start
/usr/local/apache/bin/httpd
Todas son válidas y con cualquier usuario, ya que en el conf ya se incluye "User nobody" y "Group nogroup". Puedes comprobarlo haciendo un "ps aux".
Instalar el MySQL bajo Linux, tampoco tiene mucho misterio. Hay paquetes rpm o puedes instalarlo desde las fuentes.
Para arrancarlo si has instalado el RPM:------/etc/rc.d/init.d/mysql start
Para instalarlo desde las fuentes (recomendado para una máxima estabilidad y rendimiento)
bajaremos el tar.gz de:
http://dev.mysql.com/downloads/mysql/4.0.html------shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql &
Las Bases de datos se guardan por defecto en:
/var/lib/mysql
Si quieres editar algún valor del MySQL:------ves al /etc/my.cnf
y escribes la variable más el valor nuevo:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
set-variable = max_connections=250
set-variable = max_connect_errors=100
set-variable = interactive_timeout=14400
set-variable = wait_timeout=14400
set-variable = connect_timeout=1
[mysql.server]
#muy importante como siempre ejecutar este proceso con un usuario con pocos privilegios
user=mysql
#dónde tenemos las bases de datos, por si queremos ponerlas en otra partición, por ejemplo.
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
El max_connections por defecto es: 150, es mas que suficiente para según que cosas, pero en una máquina grande con muchas bases de datos, puede pasar que en un momento determinado hayan 150 conexiones simualtaneas. Entonces saldrá un error de "Too many connections".
También se pueden cambiar otros valores (variables):
set-variable = variable = nuevovalor
Ejemplo:------set-variable = key_buffer=8M
Una valor muy imporante para optimizar el MySQL es el "query caching". Creando una cache de las consultas podemos mejorar el rendimiento de la cpu y la velociad de las consultas.
Primero debemos asegurarnos que está activado:
mysql> SHOW VARIABLES LIKE 'mysql_query_cache';
have_query_cache | YES
Si está que no:
query_cache_type = 1
Definimos el tamaño de la cache en el archivo /etc/my.cnf
query_cache_size=16M
o
query_cache_size=32M
O más grande si tenemos mucho ram.
También le podemos decir que querys con que tamaño minimo queremos que las guarde en cache:
query_cache_limit = 1M
Las consultas (querys) de más de 1 Mb no se guardarán en la caché.
Variables que conviene mirar:
Querys en caché
mysql> SHOW STATUS LIKE 'Qcache_queries_in_cache';
Número de querys con caché servidas
mysql> SHOW STATUS LIKE 'Qcache_hits';
Memoria libre de la cache para las querys.
mysql> SHOW STATUS LIKE 'Qcache_free_memory';
Más variables a tener en cuenta:
http://www.mysql.com/doc/en/Query_Cache_Status_and_Maintenance.html---------El MySQL lleva 3 archivos de configuración de ejemplo, para equipos pequeños (menos de 512 de ram), equipos medianos (más de 512 de ram) y para equipos grandes (1,2 Gigas de ram). Básicamente repercutirán en el consumo de ram del proceso MySQL, ya que los ejemplos de config varian el tamaño de la caché, de las consultas, etc.
# para equipos con =512 RAM
set-variable = key_buffer=256M
set-variable = max_allowed_packet=1M
set-variable = table_cache=256
set-variable = sort_buffer=1M
set-variable = record_buffer=1M
set-variable = myisam_sort_buffer_size=64M
set-variable = thread_cache=8
# Try number of CPU's*2 for thread_concurrency
set-variable = thread_concurrency=8
log-bin
server-id = 1
# para equipos con 1 o 2 GB de ram
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
myisam_sort_buffer_size = 64M
thread_cache = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
Vamos a ver estos valores por otros "no oficiales" pero igualmente válidos y que funcionan mejor:
#equipos con 512 de ram (editar siempre /etc/my.cnf)
thread_cache_size=50
key_buffer=40M
table_cache=384
sort_buffer_size=768K
read_buffer_size=512K
read_rnd_buffer_size=512K
thread_concurrency=2
#equipos con 1gb de ram (editar siempre /etc/my.cnf)
thread_cache_size=80
key_buffer=150M
table_cache=512
sort_buffer_size=1M
read_buffer_size=1M
read_rnd_buffer_size=768K
thread_concurrency=2