Servidor PHP

¿Qué es PHP y para que se puede utilizar?

PHP es un lenguaje de programación de código abierto muy usado en el ámbito web. A diferencia de otros lenguajes como Javascript, HTML, etc., que funcionan del lado del cliente, PHP funciona del lado del servidor, es decir al código insertado en la página que se encuentra en el servidor web, el usuario no tiene acceso, solo ve el resultado que genera dicho código en el navegador. O sea, las funciones que usamos en nuestras páginas, nadie podrá conocerlas ni copiarlas, a menos que nosotros se las ofrezcamos.


Con PHP se pueden hacer muchas cosas, pero su uso más practico es el de crear paginas dinámicas y script que realizan funciones a petición, es un lenguaje complejo y potente, pero podemos aprovechar sus funciones de forma elemental para agregarle funcionalidad a nuestras páginas. Solo es necesario el navegador, un servidor que de soporte para PHP y el propio PHP que podemos descargar gratis de internet. Uno de los lenguajes de programación que vamos a necesitar en el montaje de este servidor Web en Linux Debian es sin duda PHP.


Instalación Debian/Ubuntu

Lo instalamos con el siguiente comando:

sudo apt-get install php libapache2-mod-php 

Adicionales:

sudo apt-get install php-cgi php-cli php-common lighttpd libapache2-mod-perl2 php-curl php-dev php-gd php-imap php-ldap php-odbc php-sqlite3 

Habilitamos los siguiente módulos:

sudo a2enmod cgi cgid

Luego vamos a agregar la siguiente linea al archivo de configuración del Apache llamado apache2.conf para que nuestro Web server sea compatible con los siguientes tipos de extensiones.

sudo echo "DirectoryIndex index.html index.cgi index.py index.pl index.php index.xhtml index.shtml" >> /etc/apache2/apache2.conf

Instalación Raspberry

curl https://packages.sury.org/php/apt.gpg | sudo tee /usr/share/keyrings/suryphp-archive-keyring.gpg >/dev/null

echo "deb [signed-by=/usr/share/keyrings/suryphp-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/sury-php.list

sudo apt update && sudo apt full-upgrade -y

sudo apt install php php-sqlite3 php-fpm

sudo a2enmod proxy_fcgi setenvif && sudo a2enconf php8.2-fpm

sudo systemctl reload apache2

Recuerda cambiar 8.2 por la versión instalada

Probando PHP

Podrán verificar si lo ha hecho bien con el comando tail que nos muestra en pantalla el contenido de un archivo. Ahora vamos a comprobar que todo ha ido bien editando un archivo en el directorio raíz de nuestro servidor Web.


Anteriormente configuramos a conciencia donde iba a estar situada la raíz de el servidor Web, o sea el directorio que es visible desde otros exploradores, ~/public_html/ (o uno de los dominio) o ~/web/.


Creamos un archivo llamado por ejemplo compatible.php con el siguiente comando. 

echo '<?php phpinfo(); ?>' > ~/public_html/compatible.php

Habilitar PHP para configuración de multiples usuarios

Si por algún motivo no funciona PHP en tu directorio personalizado, es porque tu distribución trae el userdirs en PHP desactivado por defecto, una distribución que hace esto es Debian.  Para solucionarlo debemos abrir el archivo /etc/apache2/mods-enabled/php7.0.conf.

sudo nano /etc/apache2/mods-enabled/php7.4.conf


Buscar el siguiente mensaje (casi al final del archivo).

<IfModule mod_userdir.c>

      <Directory /home/*/public_html>

          php_admin_value engine Off

      </Directory>

    </IfModule>

y deshabilitar esas lineas, ya sea borrandolas o comentandolas (anteponer un # al comienzo de cada línea).


Reiniciamos apache con:

sudo /etc/init.d/apache2 restart

Ahora tan solo nos queda abrir ese archivo en el navegador introduciendo la dirección el IP o dominio (en el caso que haya decidido almacenar el archivo ahí) de tu servidor seguido del archivo compatible.php http://IPServer/~USUARIO/compatible.php.


Debería aparecer una ventana como la siguiente

Esto es todo, ya tenemos nuestro servidor web con PHP y Apache funcionando.

Aumentar Memoria en PHP

Si alguna vez te aparece un aviso de que la memoria de PHP es demasiado baja, puedes aumentarla siguiendo los siguientes pasos:

Abrimos una terminal y tecleamos:

sudo nano /etc/php/7.0/apache2/php.ini

buscamos la línea que diga:

memory_limit = 16M

Luego en esa casilla le cambiamos el valor de 16M (valor por defecto) por uno mas adecuado por ejemplo 64M en mi caso pero otros le dan hasta 128M.

Quedando así por ejemplo:

memory_limit = 128M

Guardamos y cerramos el archivo y Listo, ya no nos dará mas problemas de memoria.