Вы здесь

Installare LuCI Web Interface su Ubuntu 18.04

Аватар пользователя tito.brasolin
Опубликовано сб, 11/28/2020 - 10:46 пользователем tito.brasolin

Può essere utile ed interessante, a scopo di valutazione o per esigenze di sviluppo, installare su Ubuntu l'interfaccia web LuCI nata in modo specifico per OpenWrt. In precedenza abbiamo visto come usare libubox e UCI su Ubuntu, oggi installeremo LuCI prendendo spunto dagli articoli che trovate qui e qui.

Per prima cosa recuperiamo e compiliamo i sorgenti:

$> git clone https://github.com/openwrt/luci.git
$> cd luci
$> git checkout luci-0.12
# La rimozione della seguente cartella evita errori di compilazione.
$> rm -fr contrib/uhttpd
# Compilazione.
$> make runshell

Se viene contestata la mancanza del file iwinfo.h i seguenti comandi dovrebbero risolvere il problema:

$> git checkout 89678917~1 contrib/package/luci/Makefile
$> git checkout 89678917~1 modules/admin-full/src/luci-bwc.c

Supponendo di aver già installato il pacchetto apache2 e di aver abilitato gli script CGI con sudo a2enmod cgi procediamo con la copia e l'impostazione dei permessi dei seguenti file:

$> sudo cp <LUCI>/host/www/cgi-bin/luci /usr/lib/cgi-bin/
$> sudo cp -r <LUCI>/host/www/luci-static /var/www/html
$> sudo chown -R www-data:www-data /var/www/html/luci-static
$> sudo chmod 755 /usr/lib/cgi-bin/luci

Qui e nel seguito si intende che <LUCI> sia la cartella contenente i nostri sorgenti.

A questo punto potremmo già provare ad aprire la pagina http://127.0.0.1/cgi-bin/luci e tuttavia aspettiamoci un errore: dobbiamo ancora impostare alcune variabili d'ambiente modificando il file /etc/apache2/conf-enabled/serve-cgi-bin.conf:

<Directory "/usr/lib/cgi-bin">
SetEnvIf \
Request_URI ".*luci.*" \
LUA_PATH=<LUCI>/host/usr/lib/lua/?.lua;<LUCI>/host/usr/lib/lua/?/init.lua;$LUA_PATH; \
LUA_CPATH=<LUCI>/host/usr/lib/lua/?.so;$LUA_CPATH; \
LUCI_SYSROOT=<LUCI>/host \
LD_LIBRARY_PATH=<LUCI>/host/usr/lib:
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
</Directory>

Dopo aver riavviato il server web copiamo i file di configurazione predefiniti:

$> sudo cp -r <LUCI>/host/etc/config /etc

Se ci interessa poter salvare la configurazione dobbiamo impostare in modo opportuno i permessi sulla cartella /etc/config/ e sul suo contenuto, per esempio consentendo la scrittura ad utenti “altri” oppure cambiandone il gruppo in www-data e dando permessi di scrittura al gruppo.

A questo punto la pagina http://127.0.0.1/cgi-bin/luci dovrebbe aprirsi senza problemi.