PHP exec pgp komut

2 Cevap php

Ben 'exec' bir PGP şifreleme komutu PHP kullanmak istiyorum duyuyorum. Ne olursa olsun komut satırı I (bir kodlama sırasında tam bir başarısızlık) bir yanıl 64 (ayrıştırıcı hatası) veya 162 ya olsun. Yani hareketsiz dışarı errs bu basit parmak izi ekrana PHP program dahilinde komut satırı azalttı:

exec("/opt/pgp/bin/pgp --fingerprint", $results);

Ben "/ opt / pgp / bin / pgp - parmak izi" çalıştırırsanız bir komut satırında I "2 bulundu tuşları" ve beklenen ekranı olsun. Ama PHP altında aynı exec. Bana çözümleyici hata 64 veriyor ben dize komutuna "\ n" denedim ve bir fark yapmaz. Kullanıcı pgp çalıştıracak izinleri var mı tarayıcıda 'kimse' olarak çalışır. (Pgp en azından başlarken değilse ben bile ondan 'ayrıştırıcı hatası' olmaz.)

PHP altında PGP çalışabilmesi için yapmam gereken özel bir şey var mı?


Ben geri aslında bir veri dosyasını şifrelemek için çalışıyor gitti. İşte pgp oluşturur 'statü-dosyası' çıktı. Açıkça ben 'metin.txt' şifrelemek için çalışıyorum dosya üzerinde 'reddedildi' son satırında bir hata gösterir. Bu sahte. Ben bütün dünya r / w dosyaya verilen ve durum bu içerikleri şifreli diyor becuase bunu açıkça erişir. Yani, gerçekten soru izni reddedildi ediliyor nedir?

Diğer bazı bilgi: Ben gayet iyi çalışıyor pgp çağırır Bu PHP script karşı PHP'nin komut satırından çalıştırırsanız - dosya şifreli alır. Tarayıcıdan çağrıldığında da, PERL () (SİSTEMİ kullanarak) aynı komutları çalıştırır. ANCAK, tarayıcı başarısız Bu PHP script çağırmak için kullanılır zaman. Açıkçası, 'kimse' olarak çalışan bazı izni sorun var.

/export/home/pgphome/.pgp/pubring.pkr:open keyrings (1006:public keyring) /export/home/pgphome/.pgp/secring.skr:open keyrings (1007:private keyring) 0x221DC947:encrypt (1030:key added to recipient list) /export/home/eckankar/dev/www/info/test.txt:encrypt (3048:data encrypted with cipher AES-128) /export/home/eckankar/dev/www/info/test.txt:encrypt (3124:permission denied)

As background here is the argument of the PHP exec() command: /opt/pgp/bin/pgp --encrypt /export/home/eckankar/dev/inc/test.txt --output /export/home/eckankar/dev/www/info/test.xxx -r membership --overwrite remove --home-dir /export/home/pgphome/.pgp -v --status-file /export/home/eckankar/dev/inc/test.txt.err

Bu komutta tüm klasör / dizinleri dünyaya 'RWX' vermiştir.

İşte durum çıktı dosyası bir komut satırı yerine tarayıcı aracılığıyla daha (/ opt/csw/php5/bin/php dnm.php) çalıştırırsanız yapar gibi şifrelemek başarılı zaman gibi görünüyor:

pgp:encrypt (3157:current local time 2009-06-30T11:51:17-05:00) /export/home/pgphome/.pgp/pubring.pkr:open keyrings (1006:public keyring) /export/home/pgphome/.pgp/secring.skr:open keyrings (1007:private keyring) 0x221DC947:encrypt (1030:key added to recipient list) /export/home/eckankar/dev/inc/test.txt:encrypt (3048:data encrypted with cipher AES-128) /export/home/eckankar/dev/inc/test.txt:encrypt (0:output file /export/home/eckankar/dev/inc/test.txt.pgp)

2 Cevap

Cevap: Bir belirtmek için ihtiyaç - komut satırında geçici-dir.

Bu PHP komut nedir yürütme içeriği çalışıyor? Etkileşimli komut satırı, Cron, Web sunucusu (umarım olmaz mı)?

Buna cevap bağlı olarak, ben PGP bu komut çalıştırıldığında ayarlanan değil hangi bağlıdır ortam değişkenleri bakarak başlayabilir.