Toon posts:

[PHP] Na eerste functie geen output meer

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een scriptje aan het schrijven om het disk-gebruik per object (web, mail, database en logfiles) bij te houden, maar ik krijg geen output meer nadat de eerste functie is uitgevoerd (web)...

Als ik de functies los op m'n server test, werkt het wel (de commandlines) :?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php

class FetchData
{
        function WebSize($user)
        {
                exec("du -bs /home/$user/public_html/", $results);
                $res = explode("/home", $results[0]);
                return $res[0];
        }

        function MailSize($user)
        {
                exec("du -bs /home/$user/.maildir/", $results);
                $res = explode("/home", $results[0]);
                return $res[0];
        }

        function DatabaseSize($user)
        {
                exec("du -bs /var/lib/mysql/$user/", $results);
                $res = explode("/home", $results[0]);
                return $res[0];
        }

        function LogSize($user)
        {
                exec("du -bs /home/$user/logs/", $results);
                $res = explode("/home", $results[0]);
                return $res[0];
        }
}


$web = FetchData::WebSize("michiel");
$mail = FetchData::MailSize("michiel");
$database = FetchData::DatabaseSize("michiel");
$logfiles = FetchData::LogSize("michiel");

echo "web: ".$web."<br>";
echo "mail: ".$mail."<br>";
echo "database: ".$database."<br>";
echo "logfiles: ".$logfiles."<br>";

?>


PS. Let niet op de rare stijl, maar dit script moet nog veel groter worden en dit is pas het begin :Y)

[ Voor 0% gewijzigd door Verwijderd op 01-09-2002 23:57 . Reden: # in code weggehaald ]


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

* drm vindt je gebruik van classes alleraardigst :)

Maar je gebruikt ze alsof ze namespaces zijn. Dat is imo niet echt de bedoeling van classes in PHP. Deze functies kun je prima als gewone globale procedures implementeren. Een class FetchData is dan imo ook redelijk overbodig, nutteloos, eigenlijk .... klinkklare onzin ;)

PHP:
1
2
3
4
5
6
7
function readDiskUsage ( $of ) {
   switch ( $of ) {
       case 'database':
           // read db size
       // etcetera
   }
}


Lijkt mij een iets betere manier.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 01 september 2002 @ 23:52:
Als ik de functies los op m'n server test, werkt het wel (de commandlines) :?

Doe je dat toevallig met de user 'root' ?
Zoja, dan zou ik denken dat je problemen met de permissies hebt, lang niet alle directories zijn toegankelijk voor de webserver-user (apache/www/www-data/nobody/etc)

Verwijderd

Topicstarter
drm schreef op 02 september 2002 @ 00:53:
* drm vindt je gebruik van classes alleraardigst :)

Maar je gebruikt ze alsof ze namespaces zijn. Dat is imo niet echt de bedoeling van classes in PHP. Deze functies kun je prima als gewone globale procedures implementeren. Een class FetchData is dan imo ook redelijk overbodig, nutteloos, eigenlijk .... klinkklare onzin ;)

PHP:
1
2
3
4
5
6
7
function readDiskUsage ( $of ) {
   switch ( $of ) {
       case 'database':
           // read db size
       // etcetera
   }
}


Lijkt mij een iets betere manier.
Dat begrijp ik, maar dit script wordt nog veel en veel groter, waardoor ik het dus in een class wil hebben: per onderdeel een class, werkt fijner (vind ik :P)...

Ik ga dat van ACM eens bekijken: volgens mij heeft ie wel gelijk :+ En als dat zo zou zijn, hoe zou ik het anders moeten oplossen ?

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Setuid lijkt me geen optie... Misschien een shelscriptje scrijven dat al het werk voor je doet, en dat sudo-en?

Localhost, sweet localhost


Verwijderd

Topicstarter
Het klopte idd wat ACM zei: apache heeft geen toegang tot die dirs...

Dus ik laat wel ff een shell-scriptje via een cron-job draaien die alles in een file gooit, en dan vervolgens includen en uitlezen :)
Pagina: 1