Kirjoittaja Aihe: Ratkaistu: Apache, php ei pysty tallettamaan levylle  (Luettu 63 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 697
    • Profiili
Ubuntu serverin asennuksen jälkeen php ei ole kyennyt kirjoittamaan serverin levyille.
Samat scriptit toimivat edellisellä Ubuntu serveri asennuksella ongelmitta.
Uudelleenasennus johtui levyrikosta, jossa hävisi osan conf-tiedostoista

/var/log/apache2/error.log:
PHP Warning:  fopen(/home/www/GPS_tracker/Ulista.txt): Failed to open stream: Read-only file system in /home/www/GPS_tracker/test.php on line 5

PHP Fatal error:  Uncaught TypeError: fwrite(): Argument #1 ($stream) must be of type resource, false given in /home/www/GPS_tracker/test.php:7\nStack trace:\n#0 /home/www/GPS_tracker/test.php(7): fwrite()\n#1 {main}\n  thrown in /home/www/GPS_tracker/test.php on line 7

HTML-hakemisto on tarkoituksella siirretty /var/www/html -> /home/www jo pari vuosikymmentä sitten
Testattu myös alkuperäisessä /var/www/html -hakemistossa samoin tuloksin

Ongelman testausta varten laadittu scripti:
Koodia: [Valitse]
<?php
echo "Levylle kirjoitus<br>";
echo 
date("h:i:s<br>");
$file="/home/www/GPS_tracker/Ulista.txt";
$lista=fopen($file,&#39;w&#39;);
$tmp="Hello"."\n"
fwrite($lista,$tmp); //** 
fclose($lista);
?>


Sama ongelma koskee kaikkia php-tiedostoja kaikissa nettihakemistoissa
Jos saman scriptin ajaa komentoriviltä, se kirjoittaa aivan normaalisti

Apachen ja php:n uudelleenasennukset on tehty jo pariin kertaan
Suojaukset (tilapäisesti):
777 root:root /home
777 www-data:www-data /home/www
777 www-data:www-data /home/www/GPStracker
777 www-data:www-data /home/www/GPStracker/test.php
777 www-data:www-data /home/www/GPStracker/

Ubuntu server DISTRIB_DESCRIPTION="Ubuntu 26.04.1 LTS" täysin puhdas uusasennus tyhjille levyille.
Apache2 2.4.66-2ubuntu2.4 asennus Ubuntun distroista
php-gd                                  2:8.5+99ubuntu1
php8.5                                  8.5.4-0ubuntu1.2
php8.5-cli                             8.5.4-0ubuntu1.2
php8.5-common                   8.5.4-0ubuntu1.2
php8.5-gd                             8.5.4-0ubuntu1.2
php8.5-readline   

Netistä ei ole viielä löytynyt mitään apua.
« Viimeksi muokattu: tänään kello 12:53 kirjoittanut Mistofelees »

Mistofelees

  • Käyttäjä
  • Viestejä: 697
    • Profiili
RATKESI: Apache, php ei pysty tallettamaan levylle
« Vastaus #1 : 07.09.26 - klo:15.11 »
Annoin lopulta periksi ja kysyin Kuuklen mukaälyltä, jolta löytyi osa ratkaisusta:

Lyhyesti:
systemctl edit apache2
- Lisätään: (kantahakemiston lisäys riittää)
    [Service]
    ReadWritePaths=/home/www
- Potkaistaan Apachea:
    service apache2 restart
- Tarkistetaan:
    service apache2 status

Tämän jälkeen vielä permissiot järkeviksi ja  pöydän siivous,

-"Starting with Ubuntu 26.04, the Apache2 service defaults to a sandboxed systemd configuration (ProtectSystem=full).
This security restriction blocks Apache and PHP from writing to system directories such as /usr, /boot, /etc, and potentially custom application directories outside of standard paths. (https://vufind.org/wiki/installation:ubuntu), (https://www.securecoding.com/blog/how-to-secure-ubuntu-based-web-server/)
To resolve this issue, you must configure a systemd override to explicitly grant Apache permission to write to your desired storage paths, or double-check standard file system permissions.  (https://vufind.org/wiki/installation:ubuntu)"
« Viimeksi muokattu: 07.09.26 - klo:15.14 kirjoittanut Mistofelees »