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/php8.2.conf.
sudo nano /etc/apache2/mods-enabled/php8.2.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.