Website hosten op smartphone met Servers for Android

Een website hosten op je smartphone kan onder andere met Servers for Android. Handig voor erbij, of als je onderweg wat code wilt testen. Zelfs een cms als WordPress draait prima. Zo gaat dat in zijn werk.

Bij een webserver denk je meestal aan een webserver als Apache, Nginx of Lighttpd, een databaseserver zoals MySQL of MariaDB (dat hetzelfde werkt) en een programmeeromgeving zoals php. Veel meer heb je niet nodig voor een gemiddelde website. Android blijkt ook heel geschikt voor al deze toepassingen.

We gaan aan de slag met twee apps genaamd Server for PHP en MariaDB Server. Deze apps behoren tot het project Servers for Android, dat overigens ook de app moNERIngAo Server (MongoDB) omvat. Al deze apps zijn gratis, open-source, advertentievrij en zo stabiel en puur mogelijk.

We beginnen met Server for PHP. Na de installatie krijg je direct de keuze welke versie van php je wilt gebruiken. Die wordt dan gedownload en geactiveerd. Zelfs de laatste versie (7.1.3) blijkt al beschikbaar. Als je voor je project een oudere 5.x versie nodig hebt (vanaf 5.4.0) kun je makkelijk wisselen. Dat is op een ‘echte’ server een veel grotere uitdaging.

Server starten en site online zetten

Tik op Start server om de server te starten. Die is vervolgens actief op 0.0.0.0:8080, wat betekent dat de server naar alle interfaces luistert op poort 8080, waaronder wifi. In het menu naast Server address kun je kijken welk adres dat is (bij wlan0). Blader nu vanaf een andere pc in hetzelfde netwerk naar dat ip-adres met poort 8080 (http://ipadres:8080) voor de (eenvoudige) informatiepagina met onder meer een link naar PHP Info.

Daarin zie je dat php’s interne http-server wordt gebruikt met veel actieve extensies. De php-extensies kun je desgewenst via de instellingen van de app individueel aan- of uitzetten. De http-server is heel geschikt voor ontwikkeling, maar kan wat performance en features betreft niet een volwaardige webserver vervangen.

Sluit je smartphone aan op de pc en blader naar de onder Data directory ingestelde map. Standaard is dat www in het telefoongeheugen. In public zet je je eigen php-bestanden. De configuratie van php kun je aanpassen via het bestand php.ini dat in config staat. Je kunt bestanden op de smartphone meestal niet direct bewerken vanaf de pc. Kopieer ze naar de pc, bewerk ze en zet de gewijzigde bestanden weer terug. Het is handiger om een ftp-verbinding op te zetten. Server for PHP bevat geen ftp-server, maar een app als WiFi FTP Server werkt prima.

Website hosten op smartphone

© PXimport

MariaDB Server en HeidiSQL

MariaDB Server heeft dezelfde gebruiksvriendelijke opzet als Server for PHP. Ook hier kun je kiezen welke versie je wilt gebruiken. Wij kiezen de laatste versie 10.2.4. Heb je een voorkeur voor een stabiele release, kies dan 10.1.21.

Nadat je met Start server de server hebt gestart openen we onder Windows het programma HeidiSQL waarmee je MySQL-databases kunt beheren. Voor het verbinden gebruik je het ip-adres van de smartphone, de standaard serverpoort (3306), gebruikersnaam root en een leeg wachtwoord.

Desgewenst maak je dit veiliger met bijvoorbeeld een wachtwoord voor root of beperkingen voor ‘hosts’. Dit soort aanpassingen maak je niet via de app maar via queries op de database van mysql zelf. Om te laten zien hoe MariaDB Server met de hierboven besproken php-server kan samenwerken, maken we een simpele database. Ga naar het tabje query en geef de onderstaande serie opdrachten.

create database demo; use demo; create table `person` ( `id` int(11) not null auto_increment, `name` varchar(100) not null, primary key (`id`) ); insert into person (name) values (‘gertjan’);

Er is nu een nieuwe database met de naam demo gemaakt, die met use demo; in gebruik wordt genomen. Daarna wordt een tabel person met de velden id en name gemaakt, waarin we één gebruiker zetten. Druk na de opdrachten op F5 (Vernieuwen). Het venster links toont dan de database demo. Vouw deze uit en klik op de tabelnaam person en daarna rechts op de tab Data om de inhoud te zien: de aangemaakte gebruiker gertjan met als id de via auto_increment automatisch gekozen waarde 1. Bewaar het als php-script en voer het uit in de browser. Je hebt nu een heel eenvoudig fundament om aan verder te werken.

<?php $conn = mysqli_connect(‘10.0.0.117’, ‘root’, ‘‘, ‘demo’); $sql = “SELECT name FROM person WHERE id=1”; $result = $conn->query($sql); $row = mysqli_fetch_array($result); $naam = $row[‘name’]; echo “Hallo $naam”; ?&gt;

Zoals je ziet kun je prima verschillende servers naast elkaar draaien die ook goed samenwerken. Ideaal voor ontwikkeldoeleinden, al biedt het niet de performance van een volwaardige webserver. Wel blijkt ook bijvoorbeeld WordPress moeiteloos te werken (zie kader). Er zijn natuurlijk meer apps die ongeveer hetzelfde doen.

Heb je liever allerlei servers in één app, dan losse apps? Dat kan met bijvoorbeeld Bit Web Server (€3,39) dat naast een webserver met php ook MySQL en een smtp-client bevat. Ook phpMyAdmin zit erbij voor het eenvoudig beheren van MySQL-databases via een browser, als alternatief voor HeidiSQL. Bit Web Server is na de installatie ook offline te gebruiken.

Wordpress op smartphone

Zelfs een geavanceerdere toepassing zoals WordPress heeft geen moeite met de apps uit deze workshops. Let op dat je een iets oudere versie van php kiest zoals 7.0.15, want de allerlaatste versie is meestal niet compatibel. Om WordPress te installeren download je eerst het zip-bestand, eventueel in het Nederlands. Pak het op je pc uit. Kopieer daarna alle bestanden naar de smartphone. Zet ze in public/wordpress en open de locatie (http://ipadres:8080/wordpress) in je browser.

Doorloop de installatiestappen. Vul bij de databaseverbinding als gebruikersnaam root in met leeg wachtwoord. Als hostname vul je het volledige ip-adres van de smartphone in en niet localhost, dat werkt namelijk niet. Maak daarna, bijvoorbeeld met HeidiSQL, een database aan speciaal voor WordPress en geef de naam op of gebruik demo die we in de workshop hebben gemaakt. Loop je toch tegen problemen aan? Zowel Server for PHP als MariaDB Server geeft bij eventuele problemen met een druk op de knop toegang tot een logbestand.

Tekst: Gertjan Groen

Deel dit artikel
Voeg toe aan favorieten