Error message: "Attempt to write a readonly database"

ls -l /var/run/lighttpd.pid

-rw-r--r-- 1 root root 6 Mai 29 11:02 /var/run/lighttpd.pid

ls -l /etc/lighttpd
total 16

drwxr-xr-x 2 www-data www-data 4096 Mai 27 14:27 conf-available
drwxr-xr-x 2 www-data www-data 4096 Mai 27 14:40 conf-enabled
-rw-r--r-- 1 www-data www-data 0 Mai 25 12:43 external.conf
-rw-r--r-- 1 www-data www-data 4176 Mai 29 10:46 lighttpd.conf

You might want to file an issue on github. There was once a similar one.

Issue here might be due to no queries have been imported from the long-term database

nanopi@nanopi:~$ ls -la /var/www/html/
total 20
drwxrwxr-x 4 www-data www-data 4096 Mai 12 21:45 .
drwxr-xr-x 3 root     root     4096 Okt 13  2019 ..
drwxr-xr-x 7 root     root     4096 Mai 28 20:35 admin
-rw-r--r-- 1 root     root     3388 Okt 13  2019 index.lighttpd.orig
drwxr-xr-x 2 root     root     4096 Mai 29 09:45 pihole

@ yubiuser:

please:
ls -la /etc/lighttpd
and
ls -l /var/run/lighttpd.pid

thanks!

at me:

ls -la /var/www/html/
total 16

drwxrwsr-x 4 www-data www-data 4096 Mai 26 18:22 .
drwxr-sr-x 4 root root 4096 Mai 27 16:49 ..
drwxr-sr-x 7 www-data www-data 4096 Mai 26 18:22 admin
drwxr-sr-x 2 www-data www-data 4096 Mai 26 18:22 pihole

drwxr-sr-x 4 root root 4096 Mai 27 16:49 /var/www

need change to the right permissions of:
(sees that they are wrong.)

my:

drwxrwsr-x 4 www-data www-data 4096 Mai 26 18:22 .
drwxr-sr-x 4 root root 4096 Mai 27 16:49 ..
drwxr-sr-x 7 www-data www-data 4096 Mai 26 18:22 admin
drwxr-sr-x 2 www-data www-data 4096 Mai 26 18:22 pihole

Need all correct file+folder permissions of:

/var/www
/var/www/html
/var/www/html/admin
/var/www/html/pihole

chmod + chown commands please, thanks!

nanopi@nanopi:~$ ls -la /etc/lighttpd
total 24
drwxr-xr-x  4 root root 4096 Mai 29 09:45 .
drwxr-xr-x 94 root root 4096 Mai 29 09:45 ..
drwxr-xr-x  2 root root 4096 Okt 13  2019 conf-available
drwxr-xr-x  2 root root 4096 Okt 13  2019 conf-enabled
-rw-r--r--  1 root root    0 Mai 29 09:45 external.conf
-rw-r--r--  1 root root 3510 Mai 29 09:45 lighttpd.conf
-rw-r--r--  1 root root 3510 Mai 28 20:36 lighttpd.conf.orig
nanopi@nanopi:~$ ls -l /var/run/lighttpd.pid
-rw-r--r-- 1 root root 6 Mai 29 09:45 /var/run/lighttpd.pid

ok, changed to: (me)

ls -la /etc/lighttpd

total 36
drwxr-xr-x 4 root root 4096 Mai 28 11:59 .
drwxr-xr-x 145 root root 16384 Mai 28 10:56 ..
drwxr-xr-x 2 root root 4096 Mai 27 14:27 conf-available
drwxr-xr-x 2 root root 4096 Mai 27 14:40 conf-enabled
-rw-r--r-- 1 root root 0 Mai 25 12:43 external.conf
-rw-r--r-- 1 root root 4176 Mai 29 10:46 lighttpd.conf

can't change from "drwxr-sr-x" to "drwxr-xr-x"

I did:
sudo chmod 755 -R /var/www/html/admin
sudo chmod 755 -R /var/www/html/pihole

As you can see:
ls -la /var/www/html/
total 16

drwxrwsr-x 4 www-data www-data 4096 Mai 26 18:22 .
drwxr-sr-x 4 root root 4096 Mai 27 16:49 ..
drwxr-sr-x 7 root root 4096 Mai 26 18:22 admin
drwxr-sr-x 2 www-data www-data 4096 Mai 26 18:22 pihole

yours @ yubiuser:

drwxrwxr-x 4 www-data www-data 4096 Mai 12 21:45 .
drwxr-xr-x 3 root     root     4096 Okt 13  2019 ..
drwxr-xr-x 7 root     root     4096 Mai 28 20:35 admin
-rw-r--r-- 1 root     root     3388 Okt 13  2019 index.lighttpd.orig
drwxr-xr-x 2 root     root     4096 Mai 29 09:45 pihole

ls -la /var/www/html/
total 16

drwxrwsr-x 4 www-data www-data 4096 Mai 26 18:22 .
drw-r-Sr-- 4 root root 4096 Mai 27 16:49 ..
drwxr-sr-x 7 root root 4096 Mai 26 18:22 admin
drwxr-sr-x 2 root root 4096 Mai 26 18:22 pihole

hmm :-/

ls -la /var/www/html
total 16

drwxrwsr-x 4 www-data www-data 4096 Mai 26 18:22 .
drwxr-sr-x 4 root root 4096 Mai 27 16:49 ..
drwxr-sr-x 7 root root 4096 Mai 26 18:22 admin
drwxr-sr-x 2 root root 4096 Mai 26 18:22 pihole

Can't change from drwxrwsr-x to drwxrwxr-x

Can't change from drwxr-sr-x to drwxr-xr-x

getfacl /var/www/
getfacl: Removing leading '/' from absolute path names

file: var/www/

owner: root

group: root

flags: -s-

user::rwx
group::r-x
other::r-x

getfacl /var/www/html

getfacl: Removing leading '/' from absolute path names

file: var/www/html

owner: www-data

group: www-data

flags: -s-

user::rwx
group::rwx
other::r-x

getfacl /var/www/html/admin
getfacl: Removing leading '/' from absolute path names

file: var/www/html/admin

owner: root

group: root

flags: -s-

user::rwx
group::r-x
other::r-x

getfacl /var/www/html/pihole
getfacl: Removing leading '/' from absolute path names

file: var/www/html/pihole

owner: root

group: root

flags: -s-

user::rwx
group::r-x
other::r-x

what am I doing wrong?

http://linuxg.net/how-to-set-the-setuid-and-setgid-bit-for-files-in-linux-and-unix/

I did:

cd /var/
chmod g-s ./www

cd /var/www/
chmod g-s ./html

cd /var/www/html/
chmod g-s ./admin
chmod g-s ./pihole

> drwxrwxr-x 4 www-data www-data 4096 Mai 26 18:22 .
> drwxr-xr-x 4 root root 4096 Mai 27 16:49 ..
> drwxr-xr-x 7 root root 4096 Mai 26 18:22 admin
> drwxr-xr-x 2 root root 4096 Mai 26 18:22 pihole

Lighttpd access.log:

1590742939|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742940|pi.hole|GET /admin/api.php?summaryRaw&topItems HTTP/1.1|200|496
1590742940|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742941|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742942|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742943|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742944|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742945|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742946|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742947|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742948|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742950|pi.hole|GET /admin/api.php?summaryRaw&getQuerySources&topClientsBlocked HTTP/1.1|200|508
1590742950|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742951|pi.hole|GET /admin/api.php?summaryRaw&topItems HTTP/1.1|200|496
1590742951|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742952|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742953|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742954|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742955|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742956|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742957|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742958|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742959|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742967|pi.hole|GET /admin/api.php?getQueryTypes HTTP/1.1|200|102
1590742968|pi.hole|GET /admin/api.php?getForwardDestinations HTTP/1.1|200|99
1590742975|pi.hole|GET / HTTP/1.1|302|0
1590742975|pi.hole|GET /admin HTTP/1.1|301|0
1590742975|pi.hole|GET /admin/ HTTP/1.1|200|27684
1590742975|pi.hole|GET /admin/img/donate.gif HTTP/1.1|200|3592
1590742975|pi.hole|GET /admin/style/vendor/font-awesome-5.11.2/webfonts/fa-solid-900.woff2 HTTP/1.1|200|75760
1590742975|pi.hole|GET /admin/style/vendor/font-awesome-5.11.2/webfonts/fa-brands-400.woff2 HTTP/1.1|200|75368
1590742975|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742975|pi.hole|GET /admin/api.php?overTimeData10mins HTTP/1.1|200|356
1590742975|pi.hole|GET /admin/api.php?overTimeDataClients&getClientNames HTTP/1.1|200|29
1590742975|pi.hole|GET /admin/api.php?summaryRaw&topItems HTTP/1.1|200|496
1590742975|pi.hole|GET /admin/api.php?summaryRaw&getQuerySources&topClientsBlocked HTTP/1.1|200|508
1590742975|pi.hole|GET /admin/api.php?getQueryTypes HTTP/1.1|200|102
1590742975|pi.hole|GET /admin/api.php?getForwardDestinations HTTP/1.1|200|99
1590742976|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742977|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742978|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742980|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742981|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742982|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742983|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742984|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742985|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742985|pi.hole|GET /admin/api.php?summaryRaw&topItems HTTP/1.1|200|496
1590742985|pi.hole|GET /admin/api.php?summaryRaw&getQuerySources&topClientsBlocked HTTP/1.1|200|508
1590742986|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742987|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742988|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|492
1590742988|pi.hole|GET /admin/groups-domains.php HTTP/1.1|200|26276
1590742988|pi.hole|GET /admin/style/vendor/bootstrap/js/bootstrap-select.min.js HTTP/1.1|200|15353
1590742989|pi.hole|GET /admin/scripts/pi-hole/js/groups-common.js HTTP/1.1|200|1407
1590742989|pi.hole|GET /admin/style/vendor/bootstrap/css/bootstrap-select.min.css HTTP/1.1|200|2232
1590742989|pi.hole|GET /admin/style/vendor/bootstrap/js/bootstrap-toggle.min.js HTTP/1.1|200|1327
1590742989|pi.hole|GET /admin/style/vendor/bootstrap/css/bootstrap-toggle.min.css HTTP/1.1|200|543
1590742989|pi.hole|GET /admin/scripts/vendor/moment.min.js HTTP/1.1|200|21227
1590742989|pi.hole|GET /admin/scripts/pi-hole/js/groups-domains.js HTTP/1.1|200|4322
1590742989|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|133
1590742989|pi.hole|GET /admin/style/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2 HTTP/1.1|200|18028
1590742989|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|957
1590742992|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|144
1590743000|pi.hole|GET /admin/groups-domains.php?type=black HTTP/1.1|200|26055
1590743000|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|133
1590743000|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|693
1590743002|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|144
1590743009|pi.hole|GET /admin/debug.php HTTP/1.1|200|20389
1590743009|pi.hole|GET /admin/scripts/pi-hole/js/debug.js HTTP/1.1|200|880
1590743016|pi.hole|GET /admin/scripts/pi-hole/php/debug.php?&token=gbbmfg%2BZUUxD9zANvTQZEzl0OanntIU%2BblxB2bdiCKs%3D& HTTP/1.1|200|71565
1590750042|pi.hole|GET / HTTP/1.1|302|0
1590750042|pi.hole|GET /admin HTTP/1.1|301|0
1590750042|pi.hole|GET /admin/ HTTP/1.1|200|27684
1590750042|pi.hole|GET /admin/img/donate.gif HTTP/1.1|200|3592
1590750042|pi.hole|GET /admin/style/vendor/font-awesome-5.11.2/webfonts/fa-solid-900.woff2 HTTP/1.1|200|75760
1590750042|pi.hole|GET /admin/style/vendor/font-awesome-5.11.2/webfonts/fa-brands-400.woff2 HTTP/1.1|200|75368
1590750042|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|502
1590750042|pi.hole|GET /admin/api.php?overTimeData10mins HTTP/1.1|200|738
1590750042|pi.hole|GET /admin/api.php?overTimeDataClients&getClientNames HTTP/1.1|200|29
1590750042|pi.hole|GET /admin/api.php?summaryRaw&topItems HTTP/1.1|200|502
1590750042|pi.hole|GET /admin/api.php?summaryRaw&getQuerySources&topClientsBlocked HTTP/1.1|200|514
1590750042|pi.hole|GET /admin/api.php?getQueryTypes HTTP/1.1|200|102
1590750042|pi.hole|GET /admin/api.php?getForwardDestinations HTTP/1.1|200|99
1590750043|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|502
1590750044|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|502
1590750045|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|502
1590750046|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|502
1590750047|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|502
1590750048|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|502
1590750049|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|502
1590750051|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|502
1590750052|pi.hole|GET /admin/api.php?summary HTTP/1.1|200|502
1590750052|pi.hole|GET /admin/debug.php HTTP/1.1|200|20387
1590750052|pi.hole|GET /admin/scripts/pi-hole/js/debug.js HTTP/1.1|200|880
1590750064|pi.hole|GET /admin/scripts/pi-hole/php/debug.php?&token=IF%2Bxu6i47o1x5RmhsuIpPJem8LtH%2BdJ3PI38e0PHRz8%3D& HTTP/1.1|200|71921
1590750128|pi.hole|GET /admin/groups-domains.php?type=black HTTP/1.1|200|26053
1590750129|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|133
1590750129|pi.hole|GET /admin/style/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2 HTTP/1.1|200|18028
1590750129|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|693
1590750132|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|144
1590750298|pi.hole|GET /admin/groups-domains.php HTTP/1.1|200|26276
1590750298|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|133
1590750298|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|957
1590750300|pi.hole|GET /admin/groups-domains.php?type=black HTTP/1.1|200|26055
1590750301|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|133
1590750301|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|693
1590750305|pi.hole|GET /admin/groups-clients.php HTTP/1.1|200|22877
1590750305|pi.hole|GET /admin/scripts/pi-hole/js/groups-clients.js HTTP/1.1|200|3375
1590750306|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|62
1590750306|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|133
1590750306|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|11
1590750311|pi.hole|POST /admin/scripts/pi-hole/php/groups.php HTTP/1.1|200|157

Lighttpd error.log:

2020-05-29 13:05:11: (mod_fastcgi.c.421) FastCGI-stderr: PHP Warning: SQLite3Stmt::execute(): Unable to execute statement: attempt to write a readonly database in /var/www/html/admin/scripts/pi-hole/php/groups.php on line 265

:-/

Maybee can't communicate the "10-fastcgi.conf" and "15-fastcgi-php.conf"
with the Pi-Hole database?

Maybee wrong php version?

Could you check what user lighttpd is running under ?

pi@ph5:~ $ ps -o uid,user,gid,group,pid,cmd -C lighttpd
  UID USER       GID GROUP      PID CMD
   33 www-data    33 www-data   400 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
ps -o uid,user,gid,group,pid,cmd -C lighttpd

33 www-data 33 www-data 25820 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf

Try change privacy level to default 0 "Show everything and record everything" for diagnosing:

@ deHaakelaar,

After that, Lighttpd shows me:

2020-05-29 15:57:03: (mod_fastcgi.c.421) FastCGI-stderr: PHP Notice: Undefined offset: 2 in /var/www/html/admin/api_FTL.php on line 107
2020-05-29 15:57:03: (mod_fastcgi.c.421) FastCGI-stderr: PHP Notice: Undefined offset: 1 in /var/www/html/admin/api_FTL.php on line 108
2020-05-29 15:57:18: (mod_fastcgi.c.421) FastCGI-stderr: PHP Warning: SQLite3Stmt::execute(): Unable to execute statement: attempt to write a readonly database in /var/www/html/admin/scripts/pi-hole/php/groups.php on line 507

My Pi-Hole is blocking.

May 29 15:59:30: gravity blocked fls-eu.amazon.de is 0.0.0.0
May 29 15:59:30: query[A] fls-eu.amazon.de from 127.0.0.1
May 29 15:59:30: gravity blocked fls-eu.amazon.de is 0.0.0.0
May 29 15:59:30: query[A] fls-eu.amazon.de from 127.0.0.1
May 29 15:59:30: gravity blocked fls-eu.amazon.de is 0.0.0.0
May 29 15:59:30: query[A] fls-eu.amazon.de from 127.0.0.1
May 29 15:59:30: gravity blocked fls-eu.amazon.de is 0.0.0.0
May 29 15:59:30: query[A] fls-eu.amazon.de from 127.0.0.1
May 29 15:59:30: gravity blocked fls-eu.amazon.de is 0.0.0.0
May 29 15:59:30: query[A] fls-eu.amazon.de from 127.0.0.1
May 29 15:59:30: gravity blocked fls-eu.amazon.de is 0.0.0.0
May 29 15:59:30: query[A] fls-eu.amazon.de from 127.0.0.1
May 29 15:59:30: gravity blocked fls-eu.amazon.de is 0.0.0.0
May 29 15:59:30: query[A] fls-eu.amazon.de from 127.0.0.1
May 29 15:59:30: gravity blocked fls-eu.amazon.de is 0.0.0.0
May 29 15:59:30: query[A] fls-eu.amazon.de from 127.0.0.1
May 29 15:59:30: gravity blocked fls-eu.amazon.de is 0.0.0.0
May 29 15:59:30: query[A] fls-eu.amazon.de from 127.0.0.1
May 29 15:59:30: gravity blocked fls-eu.amazon.de is 0.0.0.0
May 29 15:59:30: query[A] fls-eu.amazon.de from 127.0.0.1

Yeah I believe is ongoing issue:

No more ideas for the " readonly database".