Realizaremos la instalación de PHP en Linux mediante la terminal de Linux, específicamente usando la distribución Ubuntu.
Instalación en Ubuntu
Ubuntu es un sistema operativo que se encuentra dentro del entorno Linux y está basado en Debian, por tanto, los siguientes pasos pueden no ser los mismos si estás usando otra distribución que no sea basada en Debian como Fedora o Arch Linux.
Abrir la terminal en Linux
Lo podemos hacer con la combinación de teclas Ctrl + Alt + T o en el buscador del sistema lo buscamos escribiendo la palabra ""Terminal"".
Añadir el repositorio de PHP
Ejecuta el siguiente comando:
sudo add-apt-repository ppa:ondrej/php
Muy probablemente te pida tu contraseña para este proceso, además de pedirte que presiones Enter para continuar con la instalación.
Actualización de los repositorios de Ubuntu
Esto es para que nos reconozca los nuevos repositorios que agregamos:
sudoapt update
Después de esto, debemos instalar los paquetes de los nuevos repositorios agregados:
sudoapt upgrade
Seguramente te pedirá una confirmación, solo confirma utilizando la tecla S (Sí) o Y (yes).
Instalando PHP y Apache
Podemos instalar cualquier versión, por ejemplo:
sudoaptinstall php7.4
sudoaptinstall php7.1
Para este caso instalaremos la 8.0 junto con Apache:
sudoaptinstall php8.0 apache2
¿Qué versiones tenemos instalados?
Si quieres ver las versiones de PHP instaladas en tu computadora, puedes ejecutar el siguiente comando:
sudo dpkg --get-selections |grep php
Si deseas saber algunos detalles de la versión de PHP que estás usando ahora, ejecuta:
php --version
Activando y Desactivando versiones de PHP
Apache solo puede tener una versión de PHP corriendo, de lo contrario esto ocasionaría problemas. Para ello, podemos habilitar y deshabilitar alguna versión instalada de PHP. Por ejemplo, para activar una versión:
sudo a2enmod php8.0
Y para desactivar:
sudo a2dismod php8.0
Finalmente, para que se guarden los cambios debes ejecutar lo siguiente:
systemctl restart apache2
Accediendo a nuestros archivos PHP
Para acceder a la ruta donde se están guardando nuestros archivos PHP, ejecutamos en la terminal:
cd /var/www/html
Podemos visualizar nuestros archivos desde el navegador colocando localhost en la barra de dirección:
Se mostrará por defecto la ejecución del código del archivo que tenga de nombre index.php.
Si por alguna razón no ejecuta y te sale el código de tu archivo PHP en pantalla, es probable que te falte instalar un paquete para que Apache pueda interpretarlo. Ejecuta lo siguiente en tu terminal:
sudoaptinstall libapache2-mod-php8.0
Ten en cuenta la versión de PHP que tienes instalado para esta instalación, en este caso especificamos para la 8.0.
Configurando PHP
Existe un archivo llamado php.ini el cual tiene toda la configuración que necesitamos. Con el siguiente comando vamos a abrir dicho archivo para realizar algunas modificaciones:
sudonano /etc/php/8.0/apache2/php.ini
Mostrar errores en archivos PHP
Una vez dentro de la interfaz, haremos una búsqueda dentro del archivo. Para ello haremos la combinación de teclas Ctrl + W. Luego escribimos [display_errors].
Le damos a la tecla Enter y nos aparecerá lo siguiente:
Editamos esa línea de texto remplazando el Off por On. Después, para guardar los cambios, hacemos Ctrl + O, luego Enter y finalmente damos Ctrl + X para salir del archivo php.ini.
Podemos revisar que versiones de php tenemos instaladas con
sudo dpkg --get-selections | grep php
Para saver que versión de php tenemos ejecutando podemos utilizar el comando
php --version
Que buen resumen. Gracias
muchas gracias parce, haces del mundo algo mejor.
. Can't operate.
Failed to connect to bus: Host is down"
Usé este comando: "sudo service apache2 --full-restart", lo que hace es detener e iniciar el servidor.
Muchas gracias, me pasaba lo mismo y me sirvió tu comando.
te amo <3
Min 10:19 sudo touch index.php
Solucionaste una consulta en el grupo sin que la realice, esta es la magia de la comunidad de Platzi. Gracias.
Soy programador de PHP desde ya hace bastante tiempo y pase a echarle un vistazo al curso y la manera de manejar versiones de php y como habilitarlas con Apache no en cualquier lado esta tan claro como en esta clase.
Para aquellos a los que no se les haya iniciado el servidor de apache correctamente pueden ingresar el siguiente comando:
systemctl start apache2.service
pueden verificar el estado del servidor con el siguiente comando
systemctl status apache2
Muchas gracias por tu aporte me funciono.
Gracias por el dato bro
Hola 😓, cuando abro localhost o localhost:8080 no me abre el index.php. Cuando intento revisar el status de apache en la terminal me aparece lo siguiente, agradecería mucho si alguien pudiese ayudarme con esto:
(Resuelto) Ya conseguí resolver el error, al parecer por tener ubuntu en WSL tengo que usar el comando service en lugar de systemctl y listo. Se los dejo por si le sirve a alguien :P
¡Hola, Daniel! Me alegro de que lo hayas resuelto, efectivamente en WSL el comando systemctl no está disponible y en su lugar usamos service, a coninuar aprendiendo 💪
Si usan WSL y optienen el siguiente error "System has not been booted with systemd as init system (PID 1). Can't operate". Sepan que "systemctl" no servirá en WSL, deben usar "service", p.ej. para iniciar el servidor:
sudo service apache2 start
Exacto con esto ya funciona para WSL . Gracias
justo la respuesta que buscaba para ejecutarlo en wsl. muchas gracias
La mejor explicación que vi en todo internet sobre gestión de múltiples versiones de php en linux. Es excelente!!
touch: no se puede efectuar `touch' sobre 'index.php': Permiso denegado
Eso me dice al intentar seguir el paso de "touch" ¿Cómo puedo resolverlo?
Intenta usar "sudo" al inicio del comando
sudo touch index.html
Muy buena clase, yo utilizo Fedora Workstation y existe una guía para instalar php aquí, aunque si van a instalar Valet Linux, les recomiendo primero leer los requerimientos para ese paquete en este enlace primero.
Que buena información de igual manera soy usuario de Fedora .
Muy buena explicación ... En Linux es más fácil ...
xD it was about 17 minutes I don't think it's the definition of easier.
It is not easy, but if everything works without errors it is beautiful
Gracias Juan, con ese comando si me funcionó, saludos.
Muchas gracias
MI LOCALHOST ME SALE EN BLANCO ! :(
COMO LO SOLUCIONO ?
Te falta hacer el paso de editar tu index php con nano.
nano index.php
y luego colocar <?php
pchinfo();
guardar ctrl + O
y ya debe salir
Pasos para intalar php en ubutu.
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt upgrade
sudo apt install php8.0 apache2
sudo apt install php7.4sudo dpkg --get-selections | grep php
php7.4--version
php8.0--version
// esto hace que apache nos habilite que version de php estamos utilizandosudo a2enmod php8.0// Esto hace que apache deshabilite la version de apachesudo a2dismod php8.0// una vez deshabilitado php tenemos que reiniciar el servidor de apache de la siguiente forma.systemctl restart apache2
sudo a2enmod php7.4
asi llegamos a una la ruta donde se guardan nuestros archivos php
cd /var/www/html
Yo no pensaba aprender PHP, siempre me reuse, pero CON RetaxMax está genial, me salió todo bien el proceso. 👏 🙌
Estoy en el curso de terminal y línea de comandos, pero me pasé un rato para instalar PHP. ;) I'll see u all later. Kepp enjoying the course, looks amazing.
Jajjaja Estaba en las mismas xd
Muy buena la clase, todos los días se aprende algo nuevo