Instalar PHP 7 en IIS

Una vez instalado IIS (Internet Information Server de Microsoft) lo primero que nos damos cuenta es que el PHP lenguaje de script, más utilizado en Internet no funciona.

Ok, tenemos pues que añadirlo nosotros al IIS, tenemos dos posibilidades o bien utilizarlo en modo CGI o bien itegrado:

Non Thread Safe: Apache + FastCGI / IIS + FastCGI . Si elegimos correr PHP como CGI binary, no necesitamos el Hilo Seguro (thread safety), porque el ejecutable es llamado para cada consulta. Es el sistema más seguro y rápido para ejecutar apliaciones PHP, aunque consume más recursos.

Thread Safe: Apache + LoadModule / IIS . Hilo seguro (Thread Safety) indica que el ejecutable puede trabajar en modo multithreaded webserver, esto ocurre con Apache 2 sobre Windows. Para multithreaded webservers, como son las antiguas versiones de IIS también se puede usar la versión threaded de PHP. Es decir se crea una copia de almacenamiento para cada hilo (thread) de forma que los datos no colisionan nunca. Si queremos que PHP trabaje de esta forma es decir CGI binario.

Thread Safety significa que el binario puede funcionar en un servidor multi-hilo como por ejemplo bajo Apache 2 para windows. Thread Safety funciona creando una copia local de almacenamiento para cada hilo, de manera que los datos no colisionarán con otros hilos.

Entonces ¿que necesito? Si se elige ejecutar PHP como binario CGI, entonces no se necesita thread safety, por que el binario es invocado en cada petición. Para servidores multi-hilo, como IIS5 y IIS6 se debe utilizar la versión threaded de PHP.

Proteger un directorio web con contraseña

Se pueden proteger directorios y subdirectorios de nuestro hosting a través de los archivos .htaccess y .htpasswd.

Para crear los archivos .htaccess y .htpasswd se utiliza un editor de texto plano, notepad, vi, nano… Es probable que dispongas de un archivo .htaccess en el servidor si ya tienes instalado algún CMS como WordPress. En caso de no disponer de ningún archivo .htaccess en el servidor simplemente tendremos que crear un nuevo archivo de texto y renombrarlo a .htaccess.

El archivo .htpasswd contiene los nombres de usuario y contraseña, por lo que mejor guardarlo en la raíz del alojamiento (fuera de la carpeta “public”).

AuthName "Restricted Area"
AuthType Basic
AuthUserFile /var/www/dominio_que_sea.com/.htpasswd
AuthGroupFile /dev/null
require valid-user

Para crear el archivo .htpasswd utilizaremos la siguiente herramienta: http://www.htaccesstools.com/htpasswd-generator/

Crear un servidor https en IIS

Crear un servidor https en IIS

Las firmas digitales sirven para encriptar información, por un lado tenemos la firma pública que junto con una clave privada nos permite firmar digitalmente un documento. Ese documento o información viajará por la red de forma encriptada y únicamente el receptor a partir de su clave privada podrá descifrar el mensaje.

Cuando montamos un servidor https, estamos intentando hacer algo parecido queremos que nuestros datos (dni, tarjetas, claves, etc.) viajen por la red cifrados, es decir entre la capa TCP y la HTTP vamos a insertar la capa SSL.

Un CSR  (Certificate Signing Request) es un bloque de texto cifrado que se puede generar en el servidor donde el certificado SSL será utilizado, aunque también existe la posibilidad de generarlo online o a través de aplicaciones.

El CSR incluirá entre otras cosas:

  1. Datos de la empresa de la empresa (organization)
  2. Dominios para los que han sido generados (common name)
  3. La clave pública (que será generada automáticamente)

Luego por otro lado necesitas CA (Certificate Authority) o Autoridad Certificadora que es la empresa que debe generar tu SSL a partir del CSR. Hay varias empresas empresas que hacen esta labor, pero casi todas son de pago excepto algunas gratuitas que te proporcionan un certificado con una caducidad rápida de 30 a 90 días.

  1. Certbot, es una empresa que nos proporciona certificados de forma gratuita para sistemas linux.
  2. Sino queremos liarnos mucho Certify the Web, nos proporciona una herramienta de pago para la gestión de nuestros certificados en sistemas windows (la versión gratuita tiene un límite de 5 dominios)

 

 

 

 

 



Instalación de VestaCP sobre Ubuntu

VestaCP Panel de ControlVestaCP es un panel de control para servidores Web.

Página web para generar el comando de instalación: https://vestacp.com/install/

En nuestro caso solicitaremos los siguientes servicios:

  • nginx + apache
  • proftpd
  • iptables + fail2ban
  • BD: MySQL
  • Repositorio remi
  1. # Conectarse a nuestro servidor via SSH ssh [email protected]
  2. # Descargar el script script curl -O http://vestacp.com/pub/vst-install.sh
  3. # Ejecutar  sudo bash vst-install.sh –nginx yes –apache yes –phpfpm no –named no –remi yes –vsftpd no –proftpd yes –iptables yes –fail2ban yes –quota no –exim no –dovecot no –spamassassin no –clamav no –mysql yes –postgresql no –hostname ri-gata.lared.com.es –email [email protected] –password LaClaveQueSea

Pantalla Instalación VestaCP

 

Luego de la instalación porbaríamos a entrar al panel de control:

https://200.200.200.32:8083/login/

VestaCP

La versión de PHP instalada es la 7

juanjo@ri-gata:~$ php -v
PHP 7.0.18-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
 with Zend OPcache v7.0.18-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies
juanjo@ri-gata:~$

Para añadir ciertos módulos del PHP como son php-zip

sudo apt-get install php-zip

vjh



Instalación de un Servidor Ubuntu

En este ejemplo vamos a instalar un Ubuntu Server 16.

Previamente hemos descargado la ISO básica que vienen a ser unos 800 Mb.

1.- Instalación Ubuntu

Arrancamos la máquina con la ISO y después de pedirnos que seleccionemos el idioma tenemos nuestra primera parada en la configuración de red, sin decirnos nada el intenta encontrar un DHCP y si lo encuentra pues no da la opción de continuar con la configuración automática, no obstante en nuestro caso ya que se trata de un servidor vamos a obligarle a tener una IP fija de nuestra red por lo que le diremos “NO” nos vale esa configuración automática y pasaremos a una manual:

Configura tarjeta red linux ubuntu

Configura red manualmente

En nuestro caso utilizando la notación CIDR será la 200.200.200.32/26 (que se corresponde con la máscara 255.255.255.192) el Gateway y servidor DNS será el propio router: 200.200.200.1

Poniendo la IP en Ubuntu

Hay que indcar también un nombre de máquina: loquesea.com por ejemplo.

Luego nos pide un usuario, a diferencia de otros sistemas como  CentoOS que nos permite trabajar sólo como root, Ubuntu nos obliga a crear un usuario:

usuario en ubuntu

Luego nos pedirá dos veces el password.

Poniendo el password

Luego le decimos que no queremos cifrar nuestra carpeta personal, que la zona horaria es la Península, y que queremos utilizar el disco completo:

Particionado de disco

Escribir cambios en discoConfoirmación particionado disco

Empieza la instalación básica del sistema Ubuntu:

Instalando Sistema Linux Ubuntu

A mitad instalación … nos pregunta si estamos trabajando con algún proxy, en nuestro caso lo dejamos en blanco porque trabajamos directamente con el Router:

proxy

Casi finalizando nos pregunta si queremos que se instalen actualizaciones automáticas, a lo cual diremos que sí.

Actualizaciones automáticas

Casi último le indicamos que paquetes queremos instalar, en nuestro caso son las utilidades standard y el openSSH Server para conectarnos en remoto:

Paquetes de instalación

Se terminan de instalar los programas:

INstalación de programas

Para finalizar le indicamos si tiene que instalar el GRUB, en nuestro caso como se trata de un servidor con un único sistema podemos insertarlo sin miedo, si la máquina tuviera distintos sistemas instalados hay que tener cuidado al instalar el GRUB porque puede que luego no sea accesible alguno de los sistemas:

Instalación GRUB

Antes de reiniciar el equipo hay que asegurarse que no se encuentre la ISO montada o el CD de instalción para que no vuelva a intentar instalarse.

Fin de la Instalación

2.- Comprobación del correcto funcionamiento del sistema

Normalmente la tarjeta de red no suele estar activa al arrancar o bien se puede quedar mal configurada, vemos como debería activarse manualmente y/o configurarla manualmente:

Editamos el archivo interfaces:

sudo nano /etc/network/interfaces

interfaces

Luego para reiniciar la tarjeta:

sudo /etc/init.d/networking restart

Ahora podemos arrancar en remoto con un ssh como bitvise:

bitvise

ssh - bitvise

Para comprobar si tenemos bien configurada la tarjeta de red y la salida a internet instalamos un pequeño paquete como es el nmap que nos servirá para ver que puertos tiene abiertos nuestro servidor.

sudo apt-get install nmap

Si ejecutamos la la instruccion sudo nmap 127.0.0.1:

juanjo@ri-gata:~$ sudo nmap 127.0.0.1

Starting Nmap 7.01 ( https://nmap.org ) at 2017-05-27 20:23 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000018s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh

Nmap done: 1 IP address (1 host up) scanned in 1.64 seconds

Vemos que sólo está abierto el puerto del SSH

3.- Actualización del sistema.

Al arrancar el sistema por primera vez ya nos avisa de que hay paquetes por actualizar y actualizaciones de seguridad:

terminal ubuntu

una actualización del mismo:

sudo apt-get update
sudo apt-get upgrade

En nuestro caso se descargará unos 70 Mb de actualizaciones.

upgrade ubuntu