Configurar e instalar Apache y PHP 7 en Android con Termux

Publicado por parzibyte en

PHP ejecutándose en Android

Instalar servidor web y procesar archivos de PHP: armar una pila LAMPP en Android

Sí, estás leyendo bien. Esto no es un post de esos que usan engaños para atraer visitas, realmente vamos a instalar un servidor apache en Android, configurarlo para que procese archivos de PHP y finalmente probar una aplicación real que se conecta a MySQL: todo corriendo desde nuestro teléfono móvil.

 

PHP ejecutándose en Android

PHP ejecutándose en Android

El sistema que montaremos en Android será el sistema de ventas en PHP con PDO y MySQL. Ya deberías saber que no necesitamos que nuestro teléfono esté rooteado. Dejo el post demostrativo al final (y bueno, si no quieres bajar míralo de una vez).

Resumen

Aprenderás a configurar Apache y PHP en Android sin que el teléfono esté rooteado y sin que mueras en el intento, gracias a la aplicación de Termux y unos paquetes.

Requisitos

Mira este tutorial para instalar y configurar Termux, así como para aprender sus conceptos básicos y sacar las teclas de ayuda.

También necesitarás tener instalado MySQL o MariaDB en Android. Aquí supondré que ya lo tienes instalado, configurado y corriendo.

Paso 1: actualizar paquetes

Cuando tengas instalado termux, ejecuta estos comandos:

apt update

Y luego:

apt upgrade

Si te pregunta elige que en ambos casos.

Paso 2: instalar apache y PHP 7

Ya hay un paquete que sirve para instalar a estas dos cosas juntas. Es decir, que a través de apache se procesen los archivos de PHP. Para instalar nuestro LAMPP en Android vamos a ejecutar:

apt install php-apache

Eso instalará apache, PHP y algunas librerías que nos permitirán combinar ambas cosas.

Instalar PHP y Apache en Android

Instalar PHP y Apache en Android

Con eso ya tenemos todo preparado, falta afinar las configuraciones.

Paso 3: instalar nano

Nano es un editor de textos que funciona en la terminal. Es importante instalarlo porque tendremos que modificar el archivo de configuración de apache. Para instalarlo simplemente corre este comando:

apt install nano

Los comandos básicos son presionar Ctrl + o para guardar cambios y Ctrl + x para salir. Ctrl + w sirve para buscar en el archivo; y si quieres aprender más busca su manual en Google.

Para que las teclas como TAB y CTRL aparezcan mira el link que dejé arriba para que configures Termux como se debe.

Paso 4: configurar apache para que procese los archivos PHP

Vamos a configurar el archivo httpd.conf; atención aquí, pues la ruta es importante. El archivo de configuración de apache está en:

/data/data/com.termux/files/usr/etc/apache2/httpd.conf

Puedes moverte al directorio con:

cd /data/data/com.termux/files/usr/etc/apache2/

Para que más tarde edites el archivo con nano:

nano httpd.conf

Aquí una captura de cómo se ve el directorio en donde está este importante archivo:

Ubicación de httpd conf en apache para android

Ubicación de httpd conf en apache para android

En este archivo vamos a modificar algunas cosas.

4.1 Cargar módulo de PHP

En el archivo que estamos editando vamos a buscar un apartado en donde se carguen los módulos, se debe ver algo así:

Lugar en donde cargar módulo de PHP 7

Lugar en donde cargar módulo de PHP 7

 

Justo ahí vamos a agregar una nueva línea con este contenido:

LoadModule php7_module /data/data/com.termux/files/usr/libexec/apache2/libphp7.so

Lo que estamos haciendo es cargar el módulo de PHP 7 que se encuentra en la ruta que se lee. Aunque en la imagen no se ve completo y se ve que hay un salto de línea ignóralo; pon el comando que puse tal y como está; y listo.

Cargar módulo de PHP 7 en httpd

Cargar módulo de PHP 7 en httpd

4.2 Establecer handler

Eso no es todo, ahora abajo de donde cargamos el módulo agregamos esto:

Le estamos indicando a Apache que los archivos que cumplan con una expresión regular (en donde el archivo sea uno de PHP) sean procesados por un manejador.

Establecer handler para archivos de PHP

Establecer handler para archivos de PHP

4.3 Cambiar index

Para terminar (y esto no es tan necesario) vamos a buscar el fragmento en donde esté un código como el siguiente:

Lo vamos a cambiar por PHP de modo que quede así:

Esto lo hacemos para que ponga como índice a index.php y no a index.html (esto es un ajuste y ya; no significa que no podremos servir HTML). Por ejemplo, si visitamos a sitio.com apache servirá por defecto el index.html, en cambio con este ajuste servirá a index.php.

Guardamos cambios, cerramos el archivo y listo.

Paso 5: escribir hola mundo de PHP y ver directorio público

Nuestra carpeta de htdocs está ubicada en (o mejor dicho, su ruta es):

/data/data/com.termux/files/usr/share/apache2/default-site/htdocs

Por lo que cualquier cosa que pongamos ahí será servida. Y si ponemos un archivo PHP será procesado. Navegamos ahí y creamos el index.php con:

nano index.php

Dentro de él ponemos el siguiente contenido:

Guardamos y listo.

Ruta de htdocs en termux

Ruta de htdocs en termux

Esa imagen es sólo para ilustrar en dónde está.

Paso 6: iniciar apache

Lo que queda es iniciar el demonio de apache. Para ello usamos el comando:

apachectl start

Si no marca errores (aparte del que dice que no se puede determinar el servidor de dominio como se ve en la imagen) entonces todo va bien.

Iniciar apache en android

Iniciar apache en android

Abrimos Chrome (o nuestro navegador) y vamos a:

localhost:8080/index.php

Verás algo así:

PHP ejecutándose en Android

PHP ejecutándose en Android

Lo hemos logrado; esa es la información de la versión de PHP que tenemos instalada en nuestro sistema Android.

Como ves, tenemos la versión 7.2.12; y el servidor de Apache obviamente funciona.

De hecho, desde otra computadora que esté en la misma red de tu Android puedes poner la dirección IP del mismo en el puerto 8080 y verás que se conecta:

Ver información de versión de PHP instalada en Android

Ver información de versión de PHP instalada en Android

¿Crees que esto es lo máximo que podemos hacer? lee el siguiente post para que veas cómo se implementa un sistema con MySQL que realiza un CRUD:

Sistema de ventas en PHP y MySQL corriendo sobre Android.

Conclusiones y apuntes que no debes ignorar

Recuerda que puedes ejecutar archivos de PHP desde la terminal así como lo hacemos en Windows. Igualmente puedes entrar al modo interactivo con php -a

Para trabajar con el demonio de apache puedes ejecutar apachectl start, apachectl stop y apachectl restart para iniciarlo, detenerlo y reiniciarlo respectivamente.

Cabe mencionar que en la carpeta de htdocs puedes poner cualquier archivo (imagen, vídeo, archivo de texto, uno de HTML, etcétera) y será servido como normalmente se hace.

Con esto ya tienes una pila LAMPP en Android: Linux, Apache, MySQL y PHP. Puedes montar cualquier aplicación que montarías en un servidor con Linux.

Si deseas saber cómo instalar el servidor de MariaDB en Android visita: instalar MySQL en Android.


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB.Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron.Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scriptsLa plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C.Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

13 Comments

Juan · enero 24, 2019 a las 5:52 pm

Buenas noches, me funciona todo, hasta que intento cargar el el index en el Google, 404 not found

    parzibyte · enero 25, 2019 a las 1:11 pm

    Tal vez no pusiste el archivo en la ruta adecuada, recuerda que se debe llamar index.php

Andrés · abril 9, 2019 a las 9:41 pm

Hola, muchas gracias por el esfuerzo ha servido bastante. Te animo a que sigas publicando más sobre estos contenidos, salvas vidas. Por último Como se podría hacer con Java , hay alguna posibilidad? Gracias.

    parzibyte · abril 10, 2019 a las 10:01 am

    Gracias por tus comentarios. A qué te refieres con Java? a instalar el compilador e intérprete de Java? si es así, pronto lo haré
    Te invito a seguirme en mis redes sociales y a suscribirte a mi blog para estar al tanto de mis aportes. Saludos

Emilio · mayo 2, 2019 a las 4:51 am

Buenas, muy útiles tus indicaciones.
Una vez instalados apache-php y mariadb, estoy intentando instalar PrestaShop pero me pide la siguiente extensión activada: intl extension.
He probado todo lo que he encontrado con apt-get, pkg, .. pero no consigo instalarla.
Necesitaría ayuda gracias!

    parzibyte · mayo 3, 2019 a las 4:23 pm

    Hola, si quieres instalar extensiones me parece que hay una forma compilando PHP por ti mismo; pero otra solución sería instalar PHP y MySQL (con prestashop) sobre Ubuntu; y claro que sí, Ubuntu puede ser instalado en Android con Termux. Mira este tutorial: https://parzibyte.me/blog/2019/04/16/instalar-ubuntu-android-sin-root/
    No aseguro que con eso instales prestashop, pero sí que sea más fácil instalar la extensión sobre Ubuntu que sobre Termux

Usuario · julio 3, 2019 a las 8:26 pm

Hola, Parzi. Muchas gracias por esta instructiva información, me ha servido bastante. Tengo una duda: cada que quiero parar apache2 con el comando o me sale el siguiente error:

(20014)Internal error (specific information not available): AH00058: Error retrieving pid file var/run/apache2/httpd.pid
AH00059: Remove it before continuing if it is corrupted.

Esto se soluciona borrando el archivo httpd.pid y volviendo a ingresar el comando $ apachectl -k stop., pero tendría que desconectar la conexión Wi-Fi. Y cada que quiero parar el servidor tengo que hacer el mismo proceso de borrado del archivo httpd.pid. Hay una forma de evitar esto?

Gracias por responder.

Saludos cordiales.

Montar aplicación web de PHP y MySQL sobre Android - Parzibyte's blog · noviembre 14, 2018 a las 10:51 pm

[…] post es la continuación de: Instalar XAMPP en Android sin root. Ahí hicimos un Hola mundo, aquí montaremos un sistema; el cual es un ejercicio de un sistema de […]

Búsqueda en MySQL con PHP y PDO: con like y coincidencia exacta - Parzibyte's blog · marzo 14, 2019 a las 10:24 pm

[…] o PHP mira aquí cómo se instalan. Oh, por cierto, igualmente puedes configurar MySQL en Android y Apache con PHP igualmente en […]

Configurar Termux en Android (Linux en nuestro bolsillo) - Parzibyte's blog · marzo 25, 2019 a las 9:08 am

[…] Instalar Apache y PHP en Android […]

Programar en ASP desde Android con Termux - Parzibyte's blog · junio 24, 2019 a las 11:03 pm

[…] otro post vimos cómo instalar PHP y Apache en Android; ahora veremos cómo programar en ASP desde […]

Configurar e instalar PHP 7, Apache server y MySQL en Windows 10 - Parzibyte's blog · julio 2, 2019 a las 6:43 pm

[…] ¿Usas Ubuntu? mira este tutorial. También es posible instalarlo en Android. […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: