Servidor web · 8 min read · Jan 03, 2026
Servidor Web Básico En Ubuntu 9.04 Con Zend Framework
Servidor Web Básico En Ubuntu 9.04 Con Zend Framework
Esta es una breve descripción de los pasos requeridos para configurar un servidor web básico con el Zend Framework instalado.
Como siempre, seguiré una de las excelentes guías de Falko, ya que no tiene sentido reinventar la rueda, por así decirlo. Seguiré La Servidor Perfecto - Ubuntu 9.04 [ISPConfig 3]. Sin embargo, como necesito un servidor de aplicaciones web para pruebas de preproducción, no requiero Mail o ISPConfig, así que seguiré la Guía de ISPConfig-3 desde el Paso 1 - 11 y comenzaré mi propia versión desde allí.
No instalaré Postfix, Courier (no necesito Mail o IMAP), Saslauthd (Autenticación), tampoco voy a instalar rootkit hunter o utilidades binarias, así que también los dejaré fuera:
12 Instalar MySQL
Podemos instalar MySQL usando el siguiente comando:
apt-get install mysql-client mysql-serverSe te harán las siguientes preguntas:
Nueva contraseña para el usuario “root” de MySQL: <– tucontraseñarootsql
Repetir contraseña para el usuario “root” de MySQL: <– tucontraseñarootsql
Queremos que MySQL escuche en todas las interfaces, no solo en localhost, por lo tanto editamos /etc/mysql/my.cnf y comentamos la línea bind-address = 127.0.0.1:
nano /etc/mysql/my.cnf[...]
# En lugar de skip-networking, el valor predeterminado ahora es escuchar solo en
# localhost, lo cual es más compatible y no es menos seguro.
#bind-address = 127.0.0.1
[...] Luego reiniciamos MySQL:
/etc/init.d/mysql restartAhora verifica que la red esté habilitada. Ejecuta
netstat -tap | grep mysqlLa salida debería verse así:
root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 8474/mysqld
root@server1:~#13 Instalar Apache2, Java y phpMyAdmin
No estoy instalando PHP5 en este momento ya que tengo un par de diferentes maneras de instalarlo en la siguiente sección. Solo sepas que si vas a compilar desde la fuente, puede que quieras leer la siguiente sección y pensar en no instalar apache en este momento. De lo contrario, todo se instalará de la siguiente manera:
sudo su
apt-get install apache2 sun-java6-bin phpmyadminVerás la siguiente pregunta:
Servidor web para reconfigurar automáticamente: <– apache2
EULA de Java <– Tab para leer EULA luego OK
¿Aceptas los términos de la licencia DLJ? <– Sí
¿Configurar base de datos para phpmyadmin con dbconfig-common? <– Sí
Contraseña del usuario administrativo de tu base de datos: <– tucontraseñarootsql
Contraseña de la aplicación MySQL para phpmyadmin: <– [vacío]
14 Instalaciones de PHP5:
Tenemos varias maneras de instalar PHP, dependiendo de lo que necesites. He tenido éxito variable en la instalación de los módulos que requiero, así que te daré todas las maneras que he probado para instalar PHP y podrás elegir cuál necesitas.
apt-get install desde el repositorio de ubuntu
Podemos usar Apt para obtener la versión de PHP de los repositorios de ubuntu. Esta será la forma más sencilla y dará el éxito más fácil y debe ser utilizada si no tienes requisitos específicos de PHP
apt-get install php5 php5-common php5-cliapt-get install desde una fuente de debian
Debian ha actualizado su repositorio a la última versión de PHP5 y creo que incluye la biblioteca GD completa de PHP5, así que puede ser una ruta más fácil hacia el éxito que compilar desde la fuente, pero significa que estás usando una fuente que no es reconocida por Ubuntu y tendrás que tomar la decisión de si estás de acuerdo con eso.
Esa decisión hecha, debes agregar los repositorios de debian a tu lista de fuentes, lo cual puedes hacer editando tu lista de fuentes como antes.
Podemos usar Apt para obtener la versión de PHP de los repositorios de ubuntu.
echo deb http://packages.dotdeb.org stable all >> /etc/apt/sources.listecho deb-src http://packages.dotdeb.org stable all >> /etc/apt/sources.listLuego ejecuta
apt-get updateDespués de esto, puedes optar por actualizar cualquier otra instalación que debian haya actualizado también.
apt-get upgrade
apt-get install php5 php5-common php5-cli
rebootCompilar desde la fuente del repositorio
Si bien fue exitoso, instaló la versión de PHP5 de ubuntu, que está bien para la mayoría de las instalaciones, esto te permitirá habilitar algunas cosas extra que no vienen en la instalación de aptitude. Puedes usar ./configure –help para ver qué está disponible para habilitar mientras compilas.
aptitude install libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-devEsto te permitirá instalar la versión segura de ubuntu con extras que pueden no estar incluidos en la versión estándar.
cd /usr/src
apt-get install build-essential debhelper fakeroot
apt-get source php5
apt-get install build-dep php5
cd php5-5.2.6.dfsg.1/
nano debian/rulesEncuentra y reemplaza
[...]
--with-gd=shared,/usr --enable-gd-native-ttf \
[...] con
[...]
--with-gd=shared, --enable-gd-native-ttf \
[...] dpkg-buildpackage -rfakeroot
cd ..
# Instalar el nuevo paquete php5-gd
dpkg -i php5-gd_5.2.6-1ubuntu6.3_i386.debCompilación completa desde fuente externa
Cuando ejecuté esto por última vez, tuve que recompilar apache2 también para que mi nueva versión de php5 fuera reconocida. No estoy seguro por qué o si solo fui yo, así que probaré un par de veces más y editaré esta publicación para actualizar los métodos si puedo tener éxito sin la instalación de apache2 también.
aptitude install php5-dev libmysqlclient15-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev sendmail libmcrypt-dev libmhash-dev bzip2 libcurl3 curl libpng12-dev libfreetype6-dev libmcrypt4 libmcrypt-dev libmhash2 libxslt1-dev apache2-prefork-dev libjpeg62-dev freetype2 libxft libxft-dev libcurl4-gnutls-devcd /usr/src
wget http://apache.mirror.anlx.net/httpd/httpd-2.0.63.tar.gz
tar -zxvf httpd-2.0.63.tar.gz
cd httpd-2.0.63
./configure --help
./configure --prefix=/etc --enable-rewrite --enable-so --enable-ssl
make
make install
/etc/bin/apachectl start
/etc/bin/apachectl stopcd /usr/src
wget http://uk.php.net/get/php-5.2.9.tar.gz/from/this/mirror
tar xzvf php-5.2.9.tar.gz
cd php-5.2.9
./configure --help
./configure --prefix=/etc/php5/apache2 --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/apache2 --enable-zip --enable-calendar --enable-mbstring --with-mysql --with-mysqli --with-curl --with-curlwrappers --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-pdo-mysql
make
make install
./configure --prefix=/etc/php5/cli --with-apxs2=/usr/bin/apxs2 --with-config-file-path=/etc/php5/cli --enable-zip --enable-calendar --enable-mbstring --with-mysql --with-mysqli --with-curl --with-curlwrappers --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt --with-mhash --with-pdo-mysql
make
make install-cliRecibí algunas advertencias sobre necesitar declaraciones LoadModule en apache2.conf y httpd.conf, si encuentras eso también, entonces puedes agregar declaraciones dummy comentadas y hacer install nuevamente y debería funcionar.
nano /etc/apache2/apache2.conf[...]
# Incluir configuración del módulo:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
# Directiva LoadModule dummy para ayudar en las instalaciones de módulos
#LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so
[...] 15 Probar PHP y la Biblioteca GD / Obtener Detalles Sobre Tu Instalación de PHP5
Como tenemos PHP-CLI instalado, podemos probar la instalación de la Biblioteca GD con:
php -r "var_dump(function_exists('imagecreatefromjpeg'));" <-- devolverá true si la Biblioteca GD está instalada
php -r "var_dump(function_exists('imagerotate'));" <-- será false si la biblioteca limitada está instaladaLa raíz del documento del sitio web predeterminado es /var/www. Ahora crearemos un pequeño archivo PHP (phpinfo.php) en ese directorio y lo llamaremos en un navegador. El archivo mostrará muchos detalles útiles sobre nuestra instalación de PHP, como la versión de PHP instalada.
nano /var/www/phpinfo.phpAhora llamamos a ese archivo en un navegador (por ejemplo, http://192.168.0.100/phpinfo.php):
Ahora deberías ver, PHP5 está funcionando, desplazándote hacia abajo, verás todos los módulos que ya están habilitados en PHP5. También deberías ver MySQL listado allí.
16 Configurar las instalaciones
Necesitamos asegurarnos de que rewrite_module esté habilitado en apache2 para que el Zend Framework funcione correctamente, así que verifiquemos:
a2dismodCon suerte, deberías ver rewrite listado en la lista de módulos que están actualmente habilitados. Si no, presiona enter para no deshabilitar nada y luego emite:
a2enmod rewriteLuego necesitamos habilitar AllowOverride All en el archivo del sitio predeterminado
nano /etc/apache2/sites-available/default[...]
DocumentRoot /var/www/
Options FollowSymLinks
AllowOverride All
<directory var="" www="">
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
[...] Después de esto, necesitamos asegurar phpMyAdmin eliminando el archivo /etc/phpmyadmin/htpasswd.setup…
rm -f /etc/phpmyadmin/htpasswd.setup… y eliminar o comentar la siguiente sección en /etc/phpmyadmin/apache.conf:
nano /etc/phpmyadmin/apache.conf[...]
## Autorizar para la configuración
#
#
# AuthType Basic
# AuthName "phpMyAdmin Setup"
# AuthUserFile /etc/phpmyadmin/htpasswd.setup
#
# Require valid-user
#
[...] Reinicia Apache después:
/etc/init.d/apache2 restart17 Instalar Zend Framework
Aunque Zend Framework está disponible en los repositorios de Ubuntu 9.04, es la versión 1.7.5 y quiero tener la última versión, así que la descargaré a través de SVN, pero primero necesitamos instalarlo:
aptitude install subversionAhora podemos obtener la última versión del Zend Framework
cd /opt
mkdir ZendFramework
cd /ZendFramework
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.3/A continuación, lo que haremos es crear un enlace simbólico llamado “current” a esa carpeta de lanzamiento, de esa manera, si cambiamos la versión de Zend Framework, podemos hacerlo sin reiniciar Apache:
ln -s release-1.8.3 currentPara que no tengamos que agregar manualmente la ruta de inclusión en tus scripts PHP usando set_include_path. Quiero que el Zend Framework actual se incluya automáticamente, agregando la ruta al /etc/php5/apache2/php.ini.
nano /etc/php5/apache2/php.iniCambia:
include_path = ".:/usr/share/php5:/usr/share/pear"a:
include_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"Reinicia Apache nuevamente:
/etc/init.d/apache2 restartCuando se publique una nueva versión del Zend Framework, todo lo que necesitamos hacer es revisar el directorio SVN y cambiar el enlace simbólico.
cd /opt/ZendFramework
svn co http://framework.zend.com/svn/framework/standard/tags/release-1.8.4/
rm current
ln -s release-1.8.4 current18 Configurar la Herramienta Zend
Ahora necesitamos configurar las rutas para la línea de comandos, así que haremos los mismos cambios que hicimos arriba en el PHP CLI.
nano /etc/php5/cli/php.iniinclude_path = ".:/opt/ZendFramework/current/library:/usr/share/php5:/usr/share/pear"Antes de salir del Super Usuario, tenemos una última cosa que hacer para que puedas usar la herramienta bajo tu nombre de usuario en lugar de superusuario, necesitarás establecer permisos en la carpeta /var/www
chown username:usergroup /var/wwwAhora en este punto necesitarás salir del super usuario:
exitnano ~/.bashrcy agregar la línea
[...]
PATH=/opt/ZendFramework/current/bin:"${PATH}"
[...] Casi allí, solo probaremos la instalación, pero primero probablemente deberíamos reiniciar.
sudo rebootCuando inicies sesión nuevamente, no uses sudo su, sino:
zf.sh show versionY deberías obtener
Zend Framework Version: 1.8.319 Usando la Herramienta
Navega al directorio donde quieres tu nuevo proyecto:
cd /var/www
zf.sh create project yourProjectY deberías encontrar que la herramienta creará tu estructura básica del sitio, incluyendo tus controladores y vistas iniciales.
Por último, probablemente querrás copiar la carpeta Zend en tu nuevo proyecto
cp -r /opt/ZendFramework/current/library/Zend /var/www/yourProject/library/ZendY puedes probar la instalación de Zend yendo a: http://192.168.0.100/yourProject/public/
¡Disfruta!
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.