PHP / Apache PDFTK diyoruz ama değil doğrudan PHP / CLI veya neden ben bir segfault alıyorum

0 Cevap php

I /usr/local/bin/pdftk Apache PHP çağırdığınızda (shell_exec() aracılığıyla, exec(), system(), etc.), bu beklendiği gibi ÖZET mesajı döndürür.

I /usr/local/bin/pdftk input.pdf fill_form input.fdf output output.pdf flatten aracılığıyla çağırdığınızda shell_exec(), hiçbir şey döndürür.

Ben kopyalayıp (apache kullanıcı olarak) kabukta aynı yolu aynı dize yapıştırın beklendiği gibi, output.pdf dosyası oluşturulur.

Bir PHP kabuk içine pdftk komutunu Hareketli (shebang olan #!/usr/bin/php) ve ile yürütme php script.php mükemmel çalışıyor.

: Bu satırda sonuçları (shell_exec(script.php); aracılığıyla) Apache PHP (stdout yönlendiriliyorsunuz onun stderr'e ile) o kabuk dosyası arayarak

sh: line 1: 32547 Segmentation fault      /usr/local/bin/pdftk input.pdf fill_form input.fdf output output.pdf flatten 2>&1

Ben komut satırı (PHP aracılığıyla veya doğrudan) gelen komut dosyasını çalıştırın zaman, iyi çalışıyor. Ben Apache üzerinden PHP ile komut dosyasını çalıştırın zaman, herhangi bir bildirim olmaksızın başarısız veya yukarıda listelenen segfault verir ya.

Bu RHEL4 PHP 4.3.9 bulunuyor. Bana ateş etmeyin. Ben ini_set ile 512M bellek set () ve apache kullanıcı (fopen () ile) tüm yollara okuma / yazma ve apache olarak giriş yaparak emindim yaptık ...

Sadece gitti ve bu bulmak için / var / log / mesajları kontrol:

Oct  4 21:17:58 discovery kernel: audit(1286241478.692:1764638):  
    avc:  denied  { read } for  pid=32627 comm="pdftk" name="zero"
    dev=tmpfs ino=2161 scontext=root:system_r:httpd_sys_script_t
    tcontext=system_u:object_r:zero_device_t tclass=chr_file

NOTE: devre dışı bırakılması SELinux sorunu "sabit". Bu bir ServerFault soru taşındı? Herkes astar burada bana 30 saniye SELinux erişim kontrolleri verebilir misiniz?

0 Cevap