| Tweet |
[HOW-TO] Instalar una máquina CentOS con PHP 5.3.3
Configurar bien una máquina puede ser una tarea tediosa, especialmente por el hecho de que muchas veces nos podemos olvidar de más de algún detalle.
La presente es una instalación de PHP 5.3.3 en una máquina CentOS 64 bits limpia (instalación servidor) que implementa además dos extensiones fundamentales a mi parecer: APC y Suhosin. El primero sirve como opcode cache y el segundo funciona para frenar algunas malas prácticas en la programación de PHP, especialmente aquellas que tienen que ver con overflows. También le agrega una capa adicional de seguridad que predeterminadamente no viene integrada a PHP.
Sin embargo, no hay que olvidar que los repositorios oficiales todavía están con PHP 5.1.6 así que hay que habilitar un repositorio que tenga la última versión de PHP. Para este how-to, voy a ocupar el repositorio de remi, aunque cualquier otro también puede servir. (Sé que Webtatic también tiene la última versión, tanto en rama 5.2 como en 5.3). Por último, también aprovecho de instalar el repositorio de rpmforge por tener mucho software adicional que no viene en la base.
Antes del resumen de comandos, me gustaría aclarar que personalmente he testeado muchísimo la última versión de PHP (rama 5.3) y anda super estable y bastante bien, incluso mejor que la ya madura rama 5.2, y entre la 5.1.6 y la 5.3.3 o la 5.2.14, es mucho mejor opción la última versión en cualquiera de sus dos ramas: no solo anda más rápido, sino que también tiene muchas características nuevas y correcciones de bugs que las versiones anteriores no tenían. No hay que olvidar que la 5.1.6 se lanzó hace bastante tiempo y que ya es hora de ir actualizándola.
Por último, aunque lo veo difícil, DISCLAIMER: no me hago responsable si su server explota.
Todos los comandos se ejecutan con root:
cd /etc/yum.repos.d/ wget http://rpms.famillecollet.com/enterprise/remi.repo yum install yum-priorities cd /tmp/ wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm rpm -Uvh rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm vi /etc/yum.repos.d/CentOS-Base.repo vi /etc/yum.repos.d/remi.repo vi /etc/yum.repos.d/rpmforge.repo yum erase mysql mysql-server yum -y update yum install php-devel mysql mysql-server mysql-devel httpd-devel php-pear htop lynx vim-enhanced wget http://download.suhosin.org/suhosin-0.9.32.1.tar.gz tar zfvx suhosin-0.9.32.1.tar.gz cd suhosin-0.9.32.1 phpize ./configure make make install pecl install apc-beta vim /etc/php.d/apc.ini vim /etc/php.d/suhosin.ini /etc/init.d/httpd restart mysql # una vez dentro de mysql: GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'una contraseña muy muy segura'; FLUSH PRIVILEGES; quit exit
Un par de observaciones:
1.- Primero instalé yum-priorities y le di máxima prioridad a remi, para sobre-escribir el PHP y MySQL predeterminado de base. Esto se hace editando cada repo y asignándole una prioridad, ejemplo:
[base]
priority=5
[centosplus]
priority=6
Donde 1 es el más importante, y 99 el menos importante. A remi.repo le asigno priority=3, a Base priority=5 y por último a rpmforge le asigno priority=6.
2.- Después borré mysql, debido a que habían algunos conflictos entre la versión instalada y la que se quería instalar. Al borrar MySQL y luego instalándola desde cero se solucionó ese problema.
3.- La versión de APC que instalo es la beta. Esto es debido a que la versión normal de APC está con una pifia desde marzo del 2009 que solucionaron en la beta, pero nunca en la final. Más información.
4.- En apc.ini y suhosin.ini basta con incluir la siguiente línea:
extension=apc.so
extension=suhosin.so
5.- Sí, hay una extensión de Suhosin y también hay un Patch. Hubiese sido mejor haber instalado el patch, pero eso implicaba recompilar PHP y... ehmm... paso. El sitio que se instalará finalmente tampoco es tan masivo y sólo si ocurre algún problema, se aplicará el parche.
6.- Para las contraseñas de root, mysql y otros recomiendo este password generator.
7.- Omití los ajustes que normalmente hago en php.ini y en httpd.conf, estos corren por su cuenta ya que dependen netamente de cómo quieran configurar su máquina. Recomiendo echarle un ojo a este post con respecto a la configuración de PHP.
Espero que les haya servido.
¿Te gustó este artículo?
Trackbacks are disabled.

Diciembre 9th, 2010 - 15:07
He seguido los pasos que mencionas, pero me ha dejado el Mysql inhabilitado, no me fuinciona, intento regresar al 5.0.77 pero tampoco
Me sale siempre
file /etc/my.cnf from install of mysql-5.0.77-4.el5_5.4.i386 conflicts with file from package mysql-libs-5.1.53-1.el5.remi.x86_64
Y no puedo hacer más, ¿alguna idea cómo solucionar este problema?, ¿me faltó algo por hacer quizá?
Gracias de antemano
Diciembre 9th, 2010 - 15:16
tienes que borrar mysql e instalarla de cero:
Saludos.
Diciembre 9th, 2010 - 18:09
Si hice yum erase mysql….. como mencionas, pero eso no resultaba.
Hallé un post que indicaba lo siguiente, en esta clase de conflictos
Primero hacer una lista de paquetes
rpm –qa | grep –i MySQL
rpm –qa | grep –i php
Luego eliminar esos paquetes con:
rpm -e –nodeps
Si alguien tiene el mismo problema que yo, con eso pudo resolver el error:
file /etc/my.cnf from install of mysql-5.0.77-4.el5_5.4.i386 conflicts with file from package mysql-libs-5.1.53-1.el5.remi.x86_64
Saludos
Abril 4th, 2011 - 11:29
hola , he intentado hacer upgrade al php y despues me ha salido esto :
[root@s15442499 suhosin-0.9.32.1]# php -v
Failed loading /usr/lib64/php/modules//php_ioncube_loader_lin_5.1_x86_64.so: /usr/lib64/php/modules//php_ioncube_loader_lin_5.1_x86_64.so: undefined symbol: zend_error_noreturn
PHP Deprecated: Directive ‘safe_mode’ is deprecated in PHP 5.3 and greater in Unknown on line 0
PHP 5.3.6 (cli) (built: Mar 19 2011 07:44:03)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
[root@s15442499 suhosin-0.9.32.1]#
Que debo hacer , gracias
Abril 4th, 2011 - 20:29
El otro día instalé un server en 64 bit y pude detectar 2 problemas:
1.- El repo de remi para la última versión (5.3.6) de PHP no es confiable ya que no tiene todos los paquetes al día, recomiendo el repo webtatic SIN actualizar MySQL.
2.- Tuve que hacer unas ediciones manuales en los includes de php, para poner la ruta absoluta de los módulos ya que “/usr/lib64/php/modules/” no estaba dentro del PATH que tenía PHP.
En este caso, tienes problemas netamente con PHP Ioncube Loader, que no lo conozco, no sé cómo funciona y tampoco sé cómo podrías solucionar el problema que se te presenta.
El otro problema que tienes es que tienes activado el safe_mode, que está deprecado y no se recomienda su uso.
Lo otro es que me parece mucho que Suhosin no es compatible oficialmente todavía con PHP 5.3.6, tendrías que revisar bien eso.
Saludos.