Mar 28

Bueno como muchos pudisteis comprobar ayer, el blog quedo durante toda la mañana sin poder verse. Esto fue debido a que tuve que actualizar el servidor (ahora corre bajo CentOS) y tuve algún que otro problemilla.

Os pido disculpas por las molestias.

Dejo los problemas que tuve y como lo solucioné, para que si le pasa a alguien lo mismo sepa como solucionarlo:

Empezando por el problema de carácteres con latin1 y utf-8 en Mysql. Se mostraban símbolos y carácteres raros. Lo solucioné importando la base de datos de la siguiente manera:

$ mysql –user=PEPITO -p –execute=”DROP DATABASE PEPITODB;
CREATE DATABASE PEPITODB CHARACTER SET utf8 COLLATE utf8_general_ci;”

Y:

$ mysql –user=PEPITO –max_allowed_packet=16M -p –default-character-set=utf8 PEPITODB < BASE_DATOS.sql

Después el .htaccess pese a estar bien configurado no lo leía. La solución fue establecer en /etc/httpd/conf/httpd.conf lo siguiente:

Lo siguiente a:

# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the “default” to be a very restrictive set of
# features.
#

Modificar la sentencia de abajo y que quede así (dentro de Directory / y /Directory ):

Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
Satisfy all
#Options FollowSymLinks
#AllowOverride None

Ene 07

Si tenéis un servidor dedicado y queréis optimizar vuestro servidor mysql (configurando el archivo my.cnf) os dejo este script que adecua los valores de configuración a los de vuestro servidor:

http://day32.com/MySQL/tuning-primer.sh

Simplemente tenéis que subirlo a vuestro servidor y ejecutar:

sh tuning-primer.sh

El script os dirá los valores óptimos para vuestro servidor.

Siempre va a depender del uso que se haga al servicio Mysql y de la configuración del servidor.

De todas formas, os dejo esta configuración para un servidor con Mysql 4.1 o superior y con 1 Gb de memoria:

[mysqld]
socket=/path/to/mysql.sock
datadir=/var/lib/mysql
skip-locking
skip-innodb
# MySQL 4.x has query caching available.
# Enable it for vast improvement and it may be all you need to tweak.
query_cache_type=1
query_cache_limit=1M
query_cache_size=32M
# max_connections=500
# Reduced to 200 as memory will not be enough for 500 connections.
# memory=key_buffer+(sort_buffer_size+read_buffer_size)*max_connections
# which is now: 64 + (1 + 1) * 200 = 464 MB
# max_connections = approx. MaxClients setting in httpd.conf file
# Default set to 100.
#max_connections=200
#interactive_timeout=180
interactive_timeout=100
#wait_timeout=180
#wait_timeout=100
# Reduced wait_timeout to prevent idle clients holding connections.
#wait_timeout=30
wait_timeout=15
connect_timeout=10
# max_connect_errors is set to 10 by default
#max_connect_errors=10
#table_cache=256
#table_cache=1024
# Checked opened tables and adjusted accordingly after running for a while.
table_cache=512
#tmp_table_size=32M by default
#thread_cache=128
# Reduced it to 32 to prevent memory hogging. Also, see notes below.
thread_cache=32
# key_buffer=258M
# Reduced it by checking current size of *.MYI files, see notes below.
key_buffer=128M
# Commented out the buffer sizes and keeping the default.
# sort_buffer_size=2M by default.
#sort_buffer_size=1M
# read_buffer_size=128K by default.
#read_buffer_size=1M
# read_rnd_buffer_size=256K by default.
#read_rnd_buffer_size=1M
# myisam_sort_buffer_size=8M by default.
#myisam_sort_buffer_size=64M
# thread_concurrency = 2 * (no. of CPU)
thread_concurrency=2
# log slow queries is a must. Many queries that take more than 2 seconds.
# If so, then your tables need enhancement.
log_slow_queries=/var/log/mysqld.slow.log
long_query_time=2

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
open_files_limit=8192

[mysqldump]
quick
max_allowed_packet=16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M

[myisamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M

[mysqlhotcopy]
interactive-timeout

[client]
socket=/path/to/mysql.sock

Nov 08

Ando inmerso en un nuevo proyecto y me ha tocado configurar un servidor dedicado.

Antes de nada comentar que, esta configuración me ha servido a mí y de igual manera os puede servir, aunque supongo que no será “genérica” porque dependerá de la configuración del servidor que tengamos.

Lo primero que tenemos que hacer es lo siguiente: en el directorio /conf de nuestro dominio tenemos que crear dos archivos de configuración. El primero llamado vhost.conf y tendrá el siguiente contenido:

[perl]


php_admin_value open_basedir “/tmp:/usr/share/pear:/var/lib/php/session:/var/www/vhosts/vuestro_dominio.com/backup:/var/www/vhosts/vuestro_dominio.com/httpdocs:/var/www/vhosts/vuestro_dominio.com/files”
php_admin_value upload_tmp_dir “/var/www/vhosts/vuestro_dominio.com/tmp”
AllowOverride All


php_admin_value open_basedir “/tmp:/usr/share/pear:/var/lib/php/session:/var/www/vhosts/vuestro_dominio.com/backup:/var/www/vhosts/vuestro_dominio.com/httpdocs:/var/www/vhosts/vuestro_dominio.com/files”
php_admin_value upload_tmp_dir “/var/www/vhosts/vuestro_dominio.com/tmp”
AllowOverride All


[/perl]

El segundo archivo se llamará vhost_ssl.conf y tendrá el siguiente contenido:

[perl]


php_admin_value open_basedir “/tmp:/usr/share/pear:/var/lib/php/session:/var/www/vhosts/vuestro_dominio.com/backup:/var/www/vhosts/vuestro_dominio.com/httpsdocs:/var/www/vhosts/vuestro_dominio.com/files”
php_admin_value upload_tmp_dir “/var/www/vhosts/vuestro_dominio.com/tmp”
AllowOverride All


php_admin_value open_basedir “/tmp:/usr/share/pear:/var/lib/php/session:/var/www/vhosts/vuestro_dominio.com/backup:/var/www/vhosts/vuestro_dominio.com/httpsdocs:/var/www/vhosts/vuestro_dominio.com/files”
php_admin_value upload_tmp_dir “/var/www/vhosts/vuestro_dominio.com/tmp”
AllowOverride All


[/perl]

Después abrimos una consola SSH y tecleamos:

[perl]/usr/local/psa/admin/bin/websrvmng –reconfigure-vhost –vhost-name=vuestro_dominio.com[/perl]

Finalmente reiniciamos el servicio:

[perl]/sbin/service httpd restart[/perl]

Bueno pues eso es todo. Espero que os sirva de ayuda y ahorraros tiempo.