Mostrando las entradas con la etiqueta PHP. Mostrar todas las entradas
Mostrando las entradas con la etiqueta PHP. Mostrar todas las entradas

01 abril 2020

Instalar PHP sobre IIS en Windows 10

Opción 1: Web Platform Installer


Si la extensión no se encuentra instalada en el Administrador de Internet Information Services (IIS), clic en la acción Obtener nuevos componentes de plataforma web. Esta acción abrirá el navegador en la siguiente dirección:

https://www.iis.net/downloads/microsoft/web-platform-installer

Descargar el archivo correspondiente a nuestra plataforma (x86 o x64) y ejecutar el archivo MSI para agregar la extensión al Administrador IIS

Luego de abrir el Instalador de plataforma web se agregan los componentes que se desean instalar. En este caso PHP 7.3 y presiona el botón Instalar

Opción 2: Instalacion Manual


Descargar el archivo desde la página:

https://windows.php.net/download

La versión del archivo ZIP que se descarga es la correspondiente a Non Thread Safe debido a que se utilizará PHP con el controlador FastCGI

Descomprimir el contenido del archivo ZIP a la carpeta destinada a los archivos de PHP, por ejemplo:


C:\PHP\


La ruta a esta carpeta se debe agregar a la variable Path en las variables de entorno de Windows

En el Administrador IIS, Asignaciones de controlador, clic en la acción Agregar asignación de módulo, con los siguientes parámetros y valores:

Ruta de acceso de solicitudes: *.php
Módulo: FastCgiModule
Ejecutable: C:\PHP\php-cgi.exe
Nombre: PHP_FastCGI

En esta misma ventana, clic el botón Restricciones de solicitudes para cambiar la opción seleccionada en la pestaña Asignación al valor Archivo o Carpeta

En el Administrador IIS, Documento predeterminado, agregar un documento con el valor index.php

En la carpeta C:\PHP\ copiar y renombrar el archivo php.ini-development o php.ini-production a php.ini

Crear la subcarpeta C:\PHP\temp y asignar permisos al grupo IIS_IUSRS y al usuario IUSR

En el Administrador IIS, Configuración de FastCGI, modificar los siguientes parámetros para PHP:
En la propiedad Supervisar cambios en el archivo, el valor debe ser C:\PHP\php.ini
En la propiedad Variables de entorno agregamos las variables

PHP_FCGI_MAX_REQUESTS con valor 200
PHPRC con valor C:\PHP\
Modificar el archivo INI para los siguientes parámetros:


error_log = C:\PHP\temp\PHP_FastCGI_errors.log
session.save_path = C:\PHP\temp\
upload_tmp_dir = C:\PHP\temp\
extension_dir = C:\PHP\ext\
open_basedir = C:\inetpub\wwwroot
cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1
date.timezone = America/Guatemala

Opcional

Descargar PHP Manager for IIS, instalar archivo MSI y reiniciar el Servicio de publicación World Wide Web

Descargar la librería WinCache correspondiente a la version de PHP instalada desde:

https://sourceforge.net/projects/wincache/files/development/

Desempaquetar el archivo descargado y copiar archivo php_wincache.dll a la carpeta C:\PHP\ext\

Finalmente

Habilitar las extensiónes necesarias usando PHP Manager o directamente modificando el archivo INI

06 febrero 2014

Purgar / borrar todos los mensajes de un servidor POP3 en PHP

Debido a una configuración incorrecta de la cuenta de correo predeterminada en un dominio, dicho buzón se encontraba con más de 150 mil mensajes la mayoría siendo correo basura.

Borrarlos manualmente desde la interfaz webmail no era una opción, tampoco descargarlos al cliente de correo debido a que eso representaba además del tiempo más de 1GB de tráfico. De igual forma no era posible hacerlo con un shell script por las restricciones del proveedor del alojamiento.

Luego de cierto tiempo de búsqueda encontré una página donde tienen un ejemplo de cómo hacerlo en PHP.

El código se muestra abajo, y lo único que hay que tomar en consideración es que dicho código no está completo y esto es a propósito, haciendo falta asignar los valores para las variables para usuario, contraseña y servidor de correo.

<?php 
    // *** ASIGNAR VARIABLES ***

    $cmd = array();
    $cmd[]  = "USER $username\r\n";
    $cmd[]  = "PASS $password\r\n";
    $cmd[]  = "STAT\r\n";
    $cmd[]  = "QUIT\r\n";

    $port = 110;

    $fp  = fsockopen($server, $port);
    if(!$fp) {
        print("Error connecting to server $server");
    }
    else {
        $ret = fgets($fp, 1024);
        foreach($cmd as $ret) {
            fputs($fp,$ret);
            $line = fgets($fp, 1024);
            print($line."<br>");
            if($ret=="STAT\r\n") {
                $fields = explode(" ",$line);
                $num_mails = $fields[1];
                for($i=1;$i<=$num_mails;$i++) {
                    fputs($fp,"DELE $i\r\n");
                    $line = fgets($fp, 1024);
                }
            }
        }
    }
?>

El resultado sería como se ve a continuación:

Enlace al ejemplo original (en inglés):
Purge / delete all emails from a POP server in PHP

16 noviembre 2006

Deshabilitar la tecla ENTER en los formularios

El día de hoy debía continuar con la implementación de una página en PHP, y me topé con el problema de siempre:

¿Cómo validar los datos de un formulario antes de enviarlos?

Pues bien. La respuesta ya era conocida -JavaScript. Debí cambiar el botón de tipo submit por uno de tipo button y asignarle la función de validación en el evento onClick.

Todo bien. Excepto por un pequeño detalle. Al navegador le importa poco si existe o no un botón submit, cuando se presiona la tecla enter en una casilla de tipo text el formulario envía los datos de manera automática.

La solución: más simple de lo que yo esperaba. Al principio pensé en una función encargada de filtrar las pulsasiones y lamarla en en el evento onKeypress de cada casilla de texto. Sin embargo navegando por la red me encontré con algo más simple.

<input type="text" name="nombre" onkeypress="return event.keyCode!=13">

...el único problema será cuando el navegador no tenga habilitado el JavaScript.