Wpis z mikrobloga

#php #programowanie #linux

Zrobiłem prostą aplikację w PHP która konwertuje strony z PDF na JPGi.
Fajnie i przyjemnie działało aż do czasu przeniesienia na nowy serwer.
No nie działa i tyle.
PDF się na serwer wrzuca ale polecenie:

gs -dNOPAUSE -sDEVICE=jpeg -dFirstPage=1 -dLastPage=2 -sOutputFile=/var/www/html/konwertuj_pdf/f/output%d.jpg -dJPEGQ=90 -r500 -q '/var/www/html/konwertuj_pdf/f/lista_rozkazow.pdf' -c quit
już chyba nie działa, bo JPGów nie robi. Co ciekawe z konsoli wydanie tego polecenia działa pięknie.
WTF?

Kod (kilka linijek) do zerknięcia na: http://pastebin.com/pyb9Uf66
Weźcie mnie oświećcie, bo nie ogarniam o co chodzi. Coś z uprawnieniami nie tak?
  • 32
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@defoxe: Spróbuj ogarnąć bibliotekę imagemagick, zawsze lepiej działa i tak dalej
$image = new Imagick('foto/' . $nowanazwa);
$image->setImageCompressionQuality(70);
$image->setImageFormat('jpeg');
$image->writeImage("foto/$nowanazwa.jpg");
$image->scaleImage(320,
  • Odpowiedz
Spróbuj ogarnąć bibliotekę imagemagick

@fervi: Jasne, są różne drogi. To było tak naprawdę na szybko napisane i działało. Nie rozumiem dlaczego na nowym systemie zupełnie leży...
  • Odpowiedz
Spróbuj ogarnąć bibliotekę imagemagick

@fervi: Jasne, są różne drogi. To było tak naprawdę na szybko napisane i działało. Nie rozumiem dlaczego na nowym systemie zupełnie leży...

nie pozwala na shell_exec


@blues: Tak mi dałeś do myślenia, jednak pozostałe polecenia jak np. "zip",
  • Odpowiedz
Może brak uprawnień


@fervi: W tej ścieżce jest ok, dodatkowo jeszcze mu na złość strzeliłem:

shell_exec ("chmod 777 -R '".UPLOAD_PATH."'");
  • Odpowiedz
@defoxe: envy/sciezki sprawdz, moze po prostu proces webowy nie ma dostepu/ nie widzi gv.
Mi nie chodzi o kod, tylko o pomysl. Za kazdym razem jak php uzywa shell_exec gdzies na swiecie ginie kotek ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@defoxe: Ale jak mu dasz chmod 777 w shell_exec a proces nie ma uprawnień, to co Ci to da? ;). Stwórz folder, daj na folder prawa 777, wrzuć tam plik z prawami na 777 i spróbuj z poziomu php na sztywno go skonwertować, zapisując output do stworzonego folderu. Jak pójdzie, to będziesz wiedział gdzie szukać ;). Jeszcze bym spróbował dać w poleceniu pełną ścieżkę do gs.
  • Odpowiedz
na większości shared hostingów nie odpalisz shell_exec, a imagick to popularne rozszerzenie


@KacperOo: Ja to odpalam tylko na lokalnym serwerze dla sieci LAN.
  • Odpowiedz
: Ale jak mu dasz chmod 777 w shell_exec a proces nie ma uprawnień, to co Ci to da? ;)


@adrael: Proces ładnie zmienił uprawnienia dla wgranego pliku pdf.
  • Odpowiedz
@KacperOo: dzięki ;-) Ja to sobie obadam potem, teraz zastanawiam się co tu nie gra... Coś mi dziwnie prawa do folderu wyglądają.

Btw:

$im->writeImage('jotpeg.jpg');

zapisuje cały pdf do jednego jpg?
  • Odpowiedz
@KacperOo: Właśnie sobie sprawdzam twój kod. Co ciekawe również zero reakcji.

Mam coś źle z uprawnieniami prawda?

ls -ld
drwxrwxrwx 3 moje_konto www-data 4096 lut 27 12:35
  • Odpowiedz