forum.netbsd.se - NetBSD Sweden

You are not logged in.

  • Index
  •  » Hjälp
  •  » Problem med shell_exec (php) på LightTPD - Blir galen!

#1 2007-10-05 14:15:12

mikli485
Member
From: Linköping
Registered: 2006-03-27
Posts: 41
Website

Problem med shell_exec (php) på LightTPD - Blir galen!

Hej gott folk!

Jag har ett irriterande jobbigt problem som har stört mig i utvecklingen av en webbplats i över en månad nu!

Det gäller php-funktionen shell_exec som jag inte kan få att fungera med LightTPD. Jag har frågat i flera php-forum och i LightTPDs forum, men det är dött som i graven överallt. Antagligen har ingen en aning om vad det kan bero på (tillhör själv den skaran).


Vad gör jag? Jo, jag vänder mig hit så klart, för här brukar folk ha koll på det mesta!


Servern kör NetBSD, LightTPD (1.4.8nb1) i chroot och php (5.1.1nb2).

- - -

Jag har ett enkelt php-skript, dummy.php, med följande innehåll:

<?php
error_reporting(E_ALL);
$res = shell_exec("pwd 2>&1");
echo $res;
?>


När jag anropar filen via webbläsaren (testat Opera och IE) får jag inte ut någonting:

http://min.url/dummy.php resulterar i en blank sida som laddar på nolltid! Inga felmeddelanden, varken i webbläsaren eller i någon av loggfilerna (php.log och LightTPDs error.log).


Om jag kör filen från terminalen på servern så funkar allt fint:

php /path/to/wwwroot/dummy.php skriver ut aktuell katalog, precis som det ska. Det spelar ingen roll varifrån jag kör kommandot eller med vilken användare (har även provat som LightTPD-användaren). Det fungerar varje gång!


safe_mode är avstängt i php.ini och det finns inga disabled_functions!



Jättetacksam för all hjälp jag kan få!

Hoppas ni har mer koll på php än folket på php-forum, om det nu är en php-grej (det är den enda upplysningen jag har fått, givetvis från LightTPD-forum).


/ Mikael

Offline

 

#2 2007-10-05 15:25:00

z999
Member
Registered: 2006-02-19
Posts: 116

Re: Problem med shell_exec (php) på LightTPD - Blir galen!

Jag misstänker att LightTPD inte kommer åt shell-et (swenglish rules :-))

På den här raden-
<b>$res = shell_exec("pwd 2>&1");</b>
...så exekverar du shell, eller hur? I den chrootade arean så kommer inte LightTPD åt shellet, du kan förhoppningsvis göra det åtkomligt på samma sätt som med thttpd.

För att lösa detta, kopiera filen
plus allt den behöver till din chrootade directory. Ett enkelt (nåja...)
sätt att göra det är såhär:

# cd /din-chrootade area
# mkdir bin
# cp /bin/sh bin
# ldd bin/sh
bin/sh:
-ledit.2 => /lib/libedit.so.2
-ltermcap.0 => /lib/libtermcap.so.0
-lc.12 => /lib/libc.so.12
# mkdir lib
# cp /lib/libedit.so.2 lib
# cp /lib/libtermcap.so.0 lib
# cp /lib/libc.so.12 lib
# mkdir libexec
# cp /libexec/ld.elf_so libexec
# chown -R root:wheel bin lib libexec

Du kan ju först testa om det går att exekvera shellscript som cgi, typ det här
i en fil som heter något fantasifullt som hello.cgi
#!/bin/sh

echo "Content-type: text/html"
echo
echo "Hello, world!"

Gör filen körbar med -
chmod +x hello.cgi

/MvH z999

Offline

 

#3 2007-10-05 20:24:32

mikli485
Member
From: Linköping
Registered: 2006-03-27
Posts: 41
Website

Re: Problem med shell_exec (php) på LightTPD - Blir galen!

Du löste problemet!!


Hjärtligt tacksam smile

Att jag inte tänkte på det... Jag har ju fått kopiera in allt annat jag behöver i min chroot, varför missade jag sh... tack än en gång!


Nästa gång ska jag vända mig hit direkt!



En fråga bara... vad används /libexec/ld.elf_so till?
Denna listas ju inte av ldd, men behövs uppenbarligen (provade utan först)!



/ Mikael

Offline

 

#4 2007-10-05 20:49:00

z999
Member
Registered: 2006-02-19
Posts: 116

Re: Problem med shell_exec (php) på LightTPD - Blir galen!

"Du löste problemet!!"

Kul :-)

"Hjärtligt tacksam"

Varsegod.

"Att jag inte tänkte på det... Jag har ju fått kopiera in allt annat jag behöver i min chroot, varför missade jag sh... tack än en gång!"

Man ska tänka på att om det hade fungerat utan den lösning jag skrev så hade det varit underbetyg till NetBSD. En del program kan tyckas bökiga och till och med dåligt funktionella i NetBSD, saker som har fungerat lätt i FreeBSD fungerar plötsligt inte alls i NetBSD med samma inställningar. Oftast beror det på skillnader i attityden till säkerhet. Procmail är ett exempel.

"Nästa gång ska jag vända mig hit direkt!"

Ja, det tycker jag. Det kan verka lite livlöst här ibland men det finns många som läser här.

"En fråga bara... vad används /libexec/ld.elf_so till?
Denna listas ju inte av ldd, men behövs uppenbarligen (provade utan först)!"

Jo, den behövs. Klicka på nedanstående länk.
http://www.daemon-systems.org/man/ld.elf_so.1.html

Offline

 

#5 2007-10-08 15:33:27

rAWTAZ
Administrator
Registered: 2007-02-02
Posts: 16

Re: Problem med shell_exec (php) på LightTPD - Blir galen!

Nu är jag inte nån NetBSD-guru, men i NetBSD finns det liksom i FreeBSD en /rescue, vilket innehåller binärer som används när man har ett ytterst minimalt system. Dessa brukar om jag inte misstar mig vara statiskt bombilerade, vilket alltså innebär att de inte beror på lib X och Y som, utan har dessa lib inkompilerade i sig. Ett enklare sätt man kunde testa är att kopiera /rescue/sh till ditt chroot, och inte behöva kopiera in de andra sakerna som du får fram via `ldd`, jag gissar att det fungerar också.

Gissar att det inte gör så stor skillnad i sammanhanget dock, jag ville mest bara nämna möjligheten smile

Offline

 

#6 2007-10-11 05:36:05

mikli485
Member
From: Linköping
Registered: 2006-03-27
Posts: 41
Website

Re: Problem med shell_exec (php) på LightTPD - Blir galen!

"bombilerade"?


Det hade jag ingen aning om... Tack för tipset! smile

Offline

 

#7 2007-11-25 10:24:33

rAWTAZ
Administrator
Registered: 2007-02-02
Posts: 16

Re: Problem med shell_exec (php) på LightTPD - Blir galen!

"bombilera" är high-tech-språk för "kompilera" ;P

Offline

 

#8 2007-12-04 08:11:01

mikli485
Member
From: Linköping
Registered: 2006-03-27
Posts: 41
Website

Re: Problem med shell_exec (php) på LightTPD - Blir galen!

Nu har jag problem igen... med shell_exec!


z999, din lösning fungerade utmärkt, ända tills nu! Kommandot jag försöker köra är inget mindre än php, och då protesterar den!

Betrakta mitt ursprungliga meddelande. Med vanliga kommandon i shell_exec fungerar allt som det ska, men om jag istället stoppar in shell_exec("php -v") så är felet tillbaka...


Vad är skillnaden på php och andra kommandon?

Offline

 

#9 2008-08-18 21:49:25

rAWTAZ
Administrator
Registered: 2007-02-02
Posts: 16

Re: Problem med shell_exec (php) på LightTPD - Blir galen!

Är det inte samma problem nu då? Alltså att du inte har lyft in sakerna som binären php använder i chrooten? Eller har du gjort det?

Offline

 

#10 2008-08-19 20:13:49

rAWTAZ
Administrator
Registered: 2007-02-02
Posts: 16

Re: Problem med shell_exec (php) på LightTPD - Blir galen!

Folk mobbar mig för att jag svarat sent på detta inlägg. Men det struntar jag i :-P~

Offline

 

#11 2008-10-15 07:35:00

mikli485
Member
From: Linköping
Registered: 2006-03-27
Posts: 41
Website

Re: Problem med shell_exec (php) på LightTPD - Blir galen!

Tack för ditt svar, även om det är sent! wink

Jag är nästintill säker på att jag hade fått med alla saker i chrooten den gången. Dessvärre (eller lyckligtvis) bytte jag approach för att slippa problemet, så frågan är inte längre relevant.

Visserligen undrar jag fortfarande varför det inte fungerade, men jag har varken kvar servern eller testskripten så jag tänker inte gräva mer i det, åtminstone inte nu...

Offline

 
  • Index
  •  » Hjälp
  •  » Problem med shell_exec (php) på LightTPD - Blir galen!

Board footer

Powered by PunBB
© Copyright 2002–2008 PunBB