La Web de DIOH

Un Blog mas en la red

  • Calendario

    Diciembre 2008
    D L M X J V S
    « Nov    
     123456
    78910111213
    14151617181920
    21222324252627
    28293031  
  • VisitaMundi

  • Traducir


Compartiendo apache y mysql con windows y linux

Posted by DIOH on Diciembre 1st, 2008

Como parte de mi trabajo me toca el desarollo de aplicaicones webs, especialemente en PHP, uso Apache y MySQL de manera local en mi PC, adicional tengo tanto Windows XP como Linux Ubuntu (sin embargo soy mas pro-Debian), no me gusta tener mis desarollos por separados sino en conjunto y bien organizados por lo que esta solucion le puede ser de mucha utilidad a muchos.

Lo primero a tomar en cuenta fue la particion de discos, como el NTFS es una particion en la que linux no tiene un soporte de lectura-escritura adecuado hice una particion FAT32, en donde almaceno los archivos y tambien me sirve de respaldo a la hora de formatear, en windows dicha particion es E: y en linux /media/sda6 pero estos pueden variar dependiendo de sus configuraciones personales.

Despues de hacer la respectiva instalacion del servidor de apache en windows se configura para usar esa particion FAT32 de la siguiente manera, en el httpd.conf remplazamos las lineas

DocumentRoot “C:/Archivos de programa/Apache Software Foundation/Apache X.Y/htdocs”
por
DocumentRoot “E:/webs”
y
<Directory “C:/Archivos de programa/Apache Software Foundation/Apache X.Y/htdocs”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

por
<Directory “E:/webs”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

En linux es igual solo se cambia el directorio de windows por la particion antes mencionada, en mi caso fue

DocumentRoot /media/sda6/webs/
….
<Directory /media/sda6/webs/>
</Directory>

Ya con esto podemos usar los mismo archivos para el servidor web sin problema al arrancar el servicio web.

Para MySQL el trabajo es un poco mas trabajoso, como Ubuntu esta basado en Debian usa configuraciones parecidas, ambas distribuciones crean un usuario para el uso del sistema y mysql el cual es ‘debian-sys-maint’, por lo que primero exportaremos las propiedades de este usuario con mysqldump, algun front-end o anotandolo a mano, cabe acotar que como php usa la autentificacion de password viejos no esta de mas cambiar antes la contraseña del usuario.

Luego configuramos el servidor en windows con el wizard del instalador indicando que usara otra particion para el directorio Data, en el directorio “Archivos de programa/MySQL/MySQL Server X.Y”, se encuentra el my.ini el cual es la configuracion de arranque, las lineas importantes son las que indican los directorios donde se almacenaran los archivos de base de datos

datadir=”C:/Archivos de programa/MySQL/MySQL Server X.Y/Data/”
por
datadir=”E:/MySQLData/”

Y si se usa InnoDB el directorio de datos tambien hay que declararlo con innodb_data_home_dir=”E:/MySQLData/”

Despues importamos o insertamos en la tabla mysql.user de windows el usuario ‘debian-sys-maint’, reiniciamos en linux, detenemos el servicio local de mysql y procedemos a cambiar el archivo de aranque, para no modificar el my.conf original del ubuntu podemos crear un archivo en la carpeta /etc/mysql/conf.d el cual cambia la configuracion por defecto a lo que se indique alli, copiamos el my.conf a ese directorio y lo modificamos para que se parescan las configuraciones del windows y asi evitamos algunos posibles problemas de compatibilidad, en el archivo de configuracion nuevo agregamos lo siguiente

datadir        = /media/sda6/MySQLData (esta linea esta en el archivo por lo que se cambia)
default-character-set=latin1
default-storage-engine=MYISAM
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

y adicional copiamos y peguamos lo del my.ini de windows para indicar las BD a usar….

#*** MyISAM Specific options
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=17M
key_buffer_size=10M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K

#*** INNODB Specific options ***
innodb_data_home_dir=/media/sda6/MySQLData (sin esta linea mysql dara un error con InnoDB)
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=17M
innodb_log_file_size=10M
innodb_thread_concurrency=8

Con esto estamos hechos para compartir tanto los archivos webs y mysql, para evitar tambien algun problema uso casi las mismas versiones de servidores, Apache 2.X y Mysql 5.X, y por supuesto los archivos que ya se habian creado podemos seguirlos usando sin problemas al copiar y pegar los originales a la nueva particion.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>