LinuxParty
La mayoría de la gente sabe que las pruebas de sus sitios web es una buena idea, pero después de algún tiempo de pruebas puede llegar a ser tedioso. ¿Y si una gran cantidad de este proceso de pruebas se automatizan? Automatizado el proceso no tiene que ir a través de todas las funciones de forma manual, una y otra vez, para asegurarse de que todavía funciona después de actualizar el código? Aquí es donde las pruebas unitarias entran en acción, para automatizar el proceso de prueba.
Unit hace que sea más fácil probar, y sobre todo más seguro, de modificar su código, ya que las capturas de cualquier irregularidad en el comportamiento (es decir, bugs) pueden ser introducidos en el nuevo código. En este artículo usted aprenderá los fundamentos absolutos de las pruebas unitarias con PHPUnit y lo fácil que es empezar a usarlo, guiándole a través del proceso de escribir su primera prueba.
Por alguna razón, puede que le interese mantener una o varias versiones de PHP en un mismo servidor, bien porque tuviera alguna vieja aplicación web a la que todavía no le ha dado tiempo a actualizar, o bien porque quiera probar nuevas versiones Beta de PHP, y no quiere que interfieran en el normal funcionamiento de las aplicaciones que ya están corriendo, en este artículo vamos a explicar, como siempre de la forma más sencilla posible como hacerlo, siempre es recomendable probar primero en su localhost.
Lighttpd con soporte para PHP a través tanto de CGI como de FastCGI. Como su nombre lo indica, FastCGI es preferible.
¿Soporta cachers opcode?
como APC, TurckMM, XCache y otros
¡SÍ! Incluso si otros documentos dicen que no funcionan en CGI. Bajo lighttpd, PHP se ejecuta normalmente como FastCGI que soporta cachers como mod_php4 en Apache.
- http://pecl.php.net/apc
- http://eaccelerator.net/ (Sucesor de Turck mmCache)
- XCache, XCache FAQ
Este documento está enlazado por su referencia con este artículo:
Migrar de PHPNuke a Joomla 2.5.X, paso a paso.
<?php // /modules.php?name=News&new_topic=12 // /modules.php?name=News&file=print&sid=6590 // /modules.php?name=news&file=article&sid=1012 // /modules.php?name=Search&query=espartaco // /modules.php?name=News&file=friend&op=FriendSend&sid=6590/abrir-puertos-via-telnet:-nat-add-virtualserver $tiponame=isset($_GET["name"]) ? $_GET["name"] : null ; // $tiponame=trim(htmlspecialchars($_GET["name"]))."<br>"; $tipofile=isset($_GET["file"]) ? $_GET["file"] : null ; $tipotopic=isset($_GET["new_topic"]) ? $_GET["new_topic"] : null ; $ticodigo=isset($_GET["sid"]) ? $_GET["sid"] : null ; $tiquery =isset($_GET["query"]) ? $_GET["query"] : null ; // echo "Zona Comprobacion captura de datos"; // echo "tiponame: $tiponame <br>"; // echo "tipofile: $tipofile <br>"; // echo "tipotopic: $tipotopic <br>"; // echo "ticodigo: $ticodigo <br>"; // echo "tiquery: $tiquery <br>"; if ($tipofile == "friend") { $tipofile = "article"; }; if (($tiponame == "Search") && ($tiquery <> "")) { ?> <meta http-equiv="REFRESH" content="0;url=http://www.linuxparty.es/<?php echo "index.php/component/search/?searchword=$tiquery"; ?>"> <?php }; if (($tiponame == "News") && ($tipotopic <> "")) { ?> <meta http-equiv="REFRESH" content="0;url=http://www.linuxparty.es/<?php echo "index.php?option=com_content&view=category&id=$tipotopic&Itemid=101"; ?>"> <?php }; if ($tipofile == "print") { $tipofile = "article"; }; if ($tiponame == "print") { $tiponame = "News"; }; // echo "<hr>"; // echo "Tras Zona Comprobaciones if"; // echo "tiponame: $tiponame <br>"; // echo "tipofile: $tipofile <br>"; // echo "tipotopic: $tipotopic <br>"; // echo "ticodigo: $ticodigo <br>"; // echo "tiquery: $tiquery <br>"; $tiponame=strtolower ($tiponame); if ($tiponame <> "news") { echo ' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" dir="ltr"> <head> <title>404 - Error: 404</title> <link rel="stylesheet" href="/templates/system/css/error.css" type="text/css" /> <meta http-equiv="REFRESH" content="14;url=http://www.linuxparty.es"> </head> <body> <div class="error"> <div id="outline"> <div id="errorboxoutline"> <div id="errorboxheader">404 - Artículo no encontrado</div> <div id="errorboxbody"> <p><strong>Es posible que no pueda visitar esta página por: tiponame</strong></p> <ol> <li>un marcador/favorito <strong>fuera de fecha</strong></li> <li>un motor de búsqueda que tiene una lista <strong>fuera de fecha para este sitio</strong></li> <li>una <strong>dirección mal escrita</strong></li> <li>usted <strong>no tiene acceso</strong> a esta página</li> <li>El recurso solicitado no fue encontrado.</li> <li>Se produjo un error al procesar su solicitud.</li> </ol> <p><strong>Por favor, intente una de las páginas siguientes:</strong></p> <ul> <li><a href="/index.php" title="Ir a la página de Inicio">Página de inicio</a></li> <li><a href="/index.php?option=com_search" title="Buscador del sitio">Buscador del sitio</a></li> </ul> <p>Si las dificultades persisten, póngase en contacto con el administrador de este sitio..</p> <div id="techinfo"> <p>Artículo no encontrado</p> <p> </p> </div> </div> </div> </div> </div> </body> </html> '; } if ($tipofile <> "article") { echo ' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" dir="ltr"> <head> <title>404 - Error: 404</title> <link rel="stylesheet" href="/templates/system/css/error.css" type="text/css" /> <meta http-equiv="REFRESH" content="15;url=http://www.linuxparty.es"> </head> <body> <div class="error"> <div id="outline"> <div id="errorboxoutline"> <div id="errorboxheader">404 - Artículo no encontrado</div> <div id="errorboxbody"> <p><strong>Es posible que no pueda visitar esta página por: tipofile </strong></p> <ol> <li>un marcador/favorito <strong>fuera de fecha</strong></li> <li>un motor de búsqueda que tiene una lista <strong>fuera de fecha para este sitio</strong></li> <li>una <strong>dirección mal escrita</strong></li> <li>usted <strong>no tiene acceso</strong> a esta página</li> <li>El recurso solicitado no fue encontrado.</li> <li>Se produjo un error al procesar su solicitud.</li> </ol> <p><strong>Por favor, intente una de las páginas siguientes:</strong></p> <ul> <li><a href="/index.php" title="Ir a la página de Inicio">Página de inicio</a></li> <li><a href="/index.php?option=com_search" title="Buscador del sitio">Buscador del sitio</a></li> </ul> <p>Si las dificultades persisten, póngase en contacto con el administrador de este sitio..</p> <div id="techinfo"> <p>Artículo no encontrado</p> <p> </p> </div> </div> </div> </div> </div> </body> </html> '; } // echo "$tiponame -> $tipofile -> $ticodigo"; if ($tiponame == "news") { if ($tipofile == "article") { $string = $ticodigo; $pattern = '/(\d+)\/(\w+)/i'; $replacement = '${1}-$2'; $ticodigo=preg_replace($pattern, $replacement, $string); $ticodigo = str_replace(":","-",$ticodigo); // echo "<hr>"; // echo "Tras Zona preformato sin replace"; // echo "string: $string <br>"; // echo "pattern: $pattern <br>"; // echo "tipotopic: $tipotopic <br>"; // echo "ticodigo: $ticodigo <br>"; // echo "replacement: $replacement <br>"; $title = strtolower ($ticodigo); $titulo = str_replace(" ","-",htmlspecialchars($title)); $titulo = str_replace("(","",$titulo); $titulo = str_replace("'","",$titulo); $titulo = str_replace('"',"",$titulo); $titulo = str_replace(".","-",$titulo); $titulo = str_replace(",","",$titulo); $titulo = str_replace("%","porciento",$titulo); $titulo = str_replace(")","",$titulo); $titulo = str_replace("?","",$titulo); $titulo = str_replace("¿","",$titulo); $titulo = str_replace("/","-",$titulo); $titulo = str_replace("¡","",$titulo); $titulo = str_replace(chr(161),"",$titulo); // caracter ¡ $titulo = str_replace(chr(171),"",$titulo); // caracter « $titulo = str_replace(chr(187),"",$titulo); // caracter » $titulo = str_replace(chr(225),"a",$titulo); // caracter á $titulo = str_replace(chr(233),"e",$titulo); // caracter é $titulo = str_replace(chr(237),"i",$titulo); // caracter í $titulo = str_replace(chr(241),"n",$titulo); // caracter ñ $titulo = str_replace(chr(243),"o",$titulo); // caracter ó $titulo = str_replace(chr(250),"u",$titulo); // caracter ú $titulo = str_replace(chr(191),"",$titulo); // caracter ¿ $titulo = str_replace(chr(193),"a",$titulo); // caracter Á $titulo = str_replace(chr(201),"e",$titulo); // caracter É $titulo = str_replace(chr(205),"i",$titulo); // caracter Í $titulo = str_replace(chr(209),"n",$titulo); // caracter Ñ $titulo = str_replace(chr(211),"o",$titulo); // caracter Ó $titulo = str_replace(chr(218),"u",$titulo); // caracter Ú $ticodico = $titulo; ?> <meta http-equiv="REFRESH" content="0;url=http://www.linuxparty.es/<?php echo "index.php/$ticodico"; ?>"> <?php } // endif if ($tipofile == "article") } // endif if ($tiponame == "News") ?>
Este documento está enlazado por su referencia con este artículo:
Migrar de PHPNuke a Joomla 2.5.X, paso a paso.
La tan esperada versión de PHP 5.5.0, finalmente ha sido publicada, con muchas nuevas características e integrando Zend OPcache ahora de código abierto. Con el nuevo framework Laravel PHP gana a RoRs y CodeIgnitor que se convertirán por miles, Google anunció recientemente el soporte para PHP en su App Engine y la corriente renacentista de PHP está en marcha. Esto es una gran noticia para el lenguaje de programación más popular de la web. "La lista completa de las nuevas características está disponible en el registro de cambios, y el código fuente está en la página de descarga.
Con la versión 3.1, el sistema de gestión de contenido de código abierto (CMS) Joomla introduce la posibilidad de adjuntar varias etiquetas a los contenidos en todos los componentes principales. Los desarrolladores también han incorporado el MediaWiki y los plugins de OpenStreetMap en la distribución del núcleo y ha añadido una serie de nuevas características menores. El plugin GeSHi para la sintaxis fue retirado de la instalación por omisión ya que los desarrolladores lo consideran útil para sólo un pequeño subconjunto de sus usuarios.
5 Construir PHP 5.4.12 (FastCGI)
Descargar y extraer PHP 5.4.12:
mkdir /opt/phpfcgi-5.4.12
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://de.php.net/get/php-5.4.12.tar.bz2/from/this/mirror -O php-5.4.12.tar.bz2
tar jxf php-5.4.12.tar.bz2
cd php-5.4.12/
Instalar los requisitos previos para la construcción de PHP5:
yum groupinstall 'Development Tools'
yum install libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel
Configurar y compilar PHP 5.4.12 como sigue: para mas ayuda mire:
./Configure --help
para ver todas las opciones disponibles. Si se utiliza un comando ./configure diferente, es posible que se necesitan bibliotecas adicionales, o el proceso de construcción se producirá un error):
./configure \
--prefix=/opt/phpfcgi-5.4.12 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable-calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with-pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-openssl \
--with-fpm-user=apache \
--with-fpm-group=apache \
--with-libdir=lib64 \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--with-gettext \
--enable-cgi
La última opción ( --enable-cgi ) se asegura de esta versión PHP funciona con FastCGI.
make
make install
Copie php.ini a la ubicación correcta:
cp /usr/local/src/php5-build/php-5.4.12/php.ini-production /opt/phpfcgi-5.4.12/lib/php.ini
Eso es todo - si lo desea, ahora puede instalar algunos módulos adicionales como APC, memcache, memcached e ionCube.
La APC, memcache y módulos memcached se pueden instalar a través de PEAR que hay que instalar e inicializar primero:
yum install php-pear
cd /opt/phpfcgi-5.4.12/etc
pecl -C ./pear.conf update-channels
APC ahora se puede instalar de la siguiente manera:
pecl -C ./pear.conf install apc
Acepte todos los valores predeterminados. Después, abierto / opt/phpfcgi-5.4.12/lib/php.ini ...
vi /opt/phpfcgi-5.4.12/lib/php.ini
... y agregue la línea extension = apc.so al final del archivo (también se puede configurar algunas opciones adicionales APC):
[...] extension=apc.so apc.enabled=1 apc.shm_size=128M apc.ttl=0 apc.user_ttl=600 apc.gc_ttl=600 apc.enable_cli=1 apc.mmap_file_mask=/tmp/apc.XXXXXX ;apc.mmap_file_mask=/dev/zero ;apc.shm_segments = 5 |
La extensión memcache se puede instalar de la siguiente manera:
pecl -C ./pear.conf install memcache
Abrir / opt/phpfcgi-5.4.12/lib/php.ini ...
vi /opt/phpfcgi-5.4.12/lib/php.ini
... y agregue la línea extension = memcache.so al final del archivo:
[...] extension = memcache.so |
La extensión memcached se puede instalar de la siguiente manera:
yum install libmemcached-devel
pecl -C ./pear.conf install memcached
Abrir/opt/phpfcgi-5.4.12/lib/php.ini...
vi /opt/phpfcgi-5.4.12/lib/php.ini
... y agregue la línea extension = memcached.so al final del archivo:
[...] extension = memcached.so |
El cargador ionCube se puede instalar de la siguiente manera:
cd /tmp
Siguiente descarga y descomprimir el paquete de cargador ionCube correcto para su arquitectura (x86 o x86_64).
Para x86_64:
wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xfvz ioncube_loaders_lin_x86-64.tar.gz
Para x86:
wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xfvz ioncube_loaders_lin_x86.tar.gz
Proceda de la siguiente manera:
cp ioncube/ioncube_loader_lin_5.4.so /opt/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so
vi /opt/phpfcgi-5.4.12/lib/php.ini
Agregue la líneazend_extension = /opt/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.sojusto al principio del archivo (antes de la línea[PHP]):
zzend_extension = /opt/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so
[PHP]
[...]
|
En ISPConfig 3.0.5, puede configurar la nueva versión PHP bajo Sistema> Otras versiones de PHP . En la ficha Nombre, por favor introduzca un nombre para la versión de PHP (por ejemplo PHP 5.4.12 ) - esta versión PHP aparecerá con este nombre en la configuración del sitio web en ISPConfig:
Ir a lapestaña configuración FastCGI (la pestaña configuración de PHP-FPM se puede dejar vacía) y rellena todos los campos de la siguiente manera:
[ < Anterior ] || [ Siguiente > ]
phpGrid ofrece grids (rejillas) con Ajax habilitado de aspecto profesional, pudiendo crear, leer, actualizar y eliminar las operaciones (CRUD) para desarrolladores Web en tan sólo dos líneas de código. Cuenta con características de edición cross-browser (a través del navegador) y online, soporte para todos los controles de formulario HTML, barra de herramientas de búsqueda integrada, un datagrid maestro, visualización de imágenes, exportación de datos a MS Excel y HTML, control de permiso, un rodillo de tema, registro incorporado para ordenar por cualquier columna, soporte para las principales bases de datos incluyendo MySQL, SQL Server y Oracle, soporte para sistemas de registro para grandes bases de datos. WYSIWYG y Ajax upload de archivos.
PHPLOT es una clase PHP para la creación de gráficos y diagramas. Funciona con PHP5 (pero versiones también soporta versiones más antiguas como PHP4). PHPlot utiliza la extensión PHP GD para producir PNG, GIF o JPEG. Las Fuentes TrueType (TTF) son opcionales, o una función de fuentes de GD se pueden utilizar. Los tipos de gráficos disponibles son: área, barras, líneas / puntos, líneas, pastel, puntos, cuadrados, barra apilados, bar y delgadas-line. Etiquetas, marcas de graduación, leyenda parcela, ejes X / Y, y todos configurables. Las imágenes pueden ser importadas como fondo, varios gráficos se pueden dibujar en una imagen, y las imágenes se pueden guardar en el disco o devueltos a un navegador.
MongoDB (de la palabra en inglés “humongous” que significa enorme) es un sistema de base de datos NoSQL orientado a documentos, desarrollado bajo el concepto de código abierto.
MongoDB forma parte de la nueva familia de sistemas de base de datos NoSQL. En vez de guardar los datos en tablas como se hace en las base de datos relacionales, MongoDB guarda estructuras de datos en documentos tipo JSON con un esquema dinámico (MongoDB llama ese formato BSON), haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida.
-
PHP
- Eliminar el mensaje «Hemos detectado que su servidor está usando PHP el cual está obsoleto» en Joomla
- FacturaScripts 2015.046 ya disponible
- FacturaScripts 2018.03 ya disponible (y presencia en OpenExpo)
- Los puntos de referencia de rendimiento de PHP 7.3 se ven buenos, días antes de su lanzamiento
- 12 Usos útil de PHP desde la línea de comandos que todo usuario de Linux debería conocer
- Como migrar de Blogger a WordPress
- Cómo instalar Composer, el gestor de paquetes de PHP globalmente
- Instalar una versión vieja (downgrade) de PHP en CentOS
- Migrar de PHPNuke a Joomla 2.5.X, paso a paso.
- Pasos para actualizar Joomla 2.5 a Joomla 3.3
- Cómo tener varias versiones de PHP en un mismo servidor
- Generar documentos Word con PHP a través de PHPDocX, biblioteca PHP para dicho fin.
- 10 formas de hacer PHP más seguro.
- Introducción a PHPUnit, la herramienta para desglosar, probar y documentar el código
- VideoTutoriales: Curso de MongoDB con PHP en Español