iPad: Servidor Web, PHP y MySQL (XAMPP)

Antes de nada GRACIAS a Cydia, y a todos los que desarrollan y adaptan el jailbreak y aplicaciones para los dispositivos con iOS

Servidor WEB en un iPad (jailbreak)

Hace ya tiempo que los paquetes oficiales de Cydia incluyen los componentes esenciales de un XAMPP:

  • Servidor WEB: Lighttpd (en lugar de Apache)
  • PHP
  • MySQL
  • PERL

Todos se pueden obtener fácillmente desde los repositorios de Cydia y funcionan…

Hasta hace poco, el problema era la integración de MySQL con PHP, que permitía usarlos por separado pero impedía usarlos conjuntamente (faltaba algo como el módulo php-mysql). Pero esto ya es algo del pasado gracias al proyecto iOS-WebStack,los detalles en los enlaces siguientes:

Página principal: http://ios-webstack.tk/

Detalles y guías: http://code.google.com/p/cydia-ios-lighttpd-php-mysql-web-stack/

 Detallo ahora los pasos que he realizado para instalar esto, y algunos problemillas, quizás causados por lo que ya tenía en mi ipad y posibles conflictos:

Material y Configuración de Partida

Esto es de lo que yo he partido:

  • iPad 1 (el primer iPad que salió al mercado).
  • Jailbreak con iOS 4.2.1 (no lo he actualizado desde entonces)
  • Instalado desde Cydia (siguiendo varios tutoriales y foros en la web y desde los repositorios oficiales y por defecto)
    • Lighttpd y el “toggle” SBSettintgs para éste.
    • PHP
    • Perl
  • PC (windows 7) conectado por WiFi al iPad, mediante una consola (putty) por SSH y también mediante WinSCP para facilitar la transferencia y copia de archivos

Todo me funcionaba perfectamente, pero no era posible ejecutar aplicaciones web basadas en php-mysql (CMS’s del tipo WordPress, etc)

1-Instalando el iOS-Webstack: ERROR

Siguiendo los pasos de la web http://ios-webstack.tk/, añado el repositorio al Cydia de mi iPad y descargo la aplicación aconsejada en esa web:  ios-lighttpd-php-mysql

Pero no sé por qué, no funciona el servidor Web. Lo intento varias veces, desinstalando lo que tenía, volviendo a instalar… Hasta que al final restauré lo que tenía de partida y fui paso a paso.

2- INSTALANDO EL SERVIDOR WEB Lighttpd y el toggle sbsettings

Una vez desinstalado todo (desde Cydia uno a uno los paquetes del nuevo repositorio), vuelvo a mi configuración inicial, instalando Lighttpd y su botón (toggle) en el SBSettings.

Al instalar el toggle de SBSettings además se crea un archivo de configuración para que Lighttp funcione correctamente, el archivo lo pone en la carpeta /etc/lighttpd2.conf , y la raíz para el servidor web se encuentra en la carpeta: /var/www/ .

Lighttpd SBSettingsEl servidor web funciona perfectamente: (muestro una captura del localhost en Safari):

Lighttpd ejecutandoseAntes de seguir, como ya lo tuve que hacer antes, es necesario cambiar el archivo de configuración de Lighttpd para indicar correctamente el path donde se instalará el PHP, así que lo hacemos ahora:

El archivo de configuración del Lighttpd que crea SBSettings asocia los archivos php y perl a los correspondientes ejecutables en la carpeta /usr/bin, sin embargo la instalación desde Cydia de ambas aplicaciones se hacen en /usr/local/bin, por lo que hay que modificarlo:

lighttpd2.conf original:

cgi.assign = ( ".pl"  => "/usr/bin/perl", ".py" => "/usr/bin/python", ".rb" => "/usr/bin/ruby", ".cgi" => "", ".sh" => "", ".php" => "/usr/bin/php-cgi" )

lighttpd2.conf modificado:

cgi.assign = ( ".pl"  => "/usr/local/bin/perl", ".py" => "/usr/bin/python", ".rb" => "/usr/local/bin/ruby", ".cgi" => "", ".sh" => "", ".php" => "/usr/local/bin/php-cgi" )

Con eso pasamos al siguiente paso:

3 Instalando PHP y MySQL

Desde Cydia y el repositorio de ios-webstack, instalo por separado los paquetes:

  • PHP 5.3 (podía haber instalado el 5.4)
  • MySQL-atv
  • PHPmyAdmin (para controlar el MySQL)

Pero vuelven a aparecer problemas…

4 Corrigiendo la instalacion de php

Al instalar el paquete por separado, no se han creado los archivos de configuración, por lo que los creo “a mano”, copiando los archivos literalmente indicados en la web de ios-webstack:

http://code.google.com/p/cydia-ios-lighttpd-php-mysql-web-stack/wiki/IosLighttpdPhpMysql#PHP_Configuration

5 Corrigiendo la instalación de mysql

No se ha creado el directorio /var/mysql/, por lo que lo creo “a mano” y vuelvo a reinstalar el paquete.

Con esto el phpmyadmin funciona!

phpmyadmin en el ipad6 Iniciando mysql

MySQL aún no se ha iniciado y hay que hacerlo. Para ello hay que seguir estrictamente los pasos que se indica en la Web de ios-WebStack ( y teniendo en cuenta también los detalles de Cydia para esta aplicación)

http://code.google.com/p/cydia-ios-lighttpd-php-mysql-web-stack/wiki/IosLighttpdPhpMysql#Setup_MySQL

Setup MySQL
After the installation you have to do two steps
    clean up your MySQL database
    set a fresh MySQL root user password
Para ello, desde la consola (putty desde el PC o desde el propio iPad con iSSH u otro terminal) ejecutamos el comando:

/usr/local/bin/mysql_install_db –user=daemon

Mi-Ipad:~ root#
Mi-Ipad:~ root# /usr/local/bin/mysql_install_db --user=daemon
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/local/bin/mysqladmin -u root password 'new-password'
/usr/local/bin/mysqladmin -u root -h Unknown password 'new-password'

Alternatively you can run:
/usr/local/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr/local ; /usr/local/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/local/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/local/scripts/mysqlbug script!

Arrancamos mySQL tal como nos dice, dejando de momento el cambiar el password, que no lo haré, pues usaré mi iPad para mis pruebas, ejecutamos en la consola el comando:

/usr/local/bin/mysqld_safe &

y ya está, si iniciamos de nuevo el servidor lighttp (con el botón desl SBSettings) ya tenemos PHP+MySQL:

PHP+mySQL

 Para terminar, podemos usar phpMyAdmin cambiando la directiva que no permite password vacios para el root:

editamos el archivo: /var/phpmyadmin/libraries/config.default.php

/**
 * whether to allow login of any user without a password
 *
 * @global boolean $cfg['Servers'][$i]['AllowNoPassword']
 */
$cfg['Servers'][$i]['AllowNoPassword'] = false;

Cambiamos false por true y ya está:

phpMyAdmin

DETENER mysql

Esto de momento es un pequeño hándicap, es necesario usar el terminal y matar (kill) los 2 procesos que se crean (uno el mysql_safe y otro el mysqld en /usr/libexec). La instalación de ios-web.stack creaba un “interruptor” en los Ajustes de iPad, pero no lo hace en la instalción por separado…

Acabo de probar a instalar un típico CMS tipo WordPress y Joomla, y se ha realizado con éxito!!. WordPress 3.5 y Joomla 2.5.8 perfectamente instalados y funcionando!! Lo mostraré en breve con las capturas y fotos que he ido haciendo en el proceso, ver próximo post…

1 Comment

Leave a Reply

Tu dirección de correo electrónico no será publicada.