Bu yüzden RHEL6'da Apache altında dokuwiki kullanıyorum ve bir php betiğinde proc_open adında bir eklenti üzerinde çalışıyorum. Benim sorunum yerel olarak apache (under ~/.local/bin) için kurulmuş bir uygulamayı çağırmaya çalışıyorum , ancak php'den çağrılan program farklı bir uygulama. Bu muhtemelen şu şekilde anlaşılıyor:
Kullanıcı olarak giriş yaptığımda apache:
$ sudo su - user
Ve uygulama sürümümü kontrol ediyorum:
$ /var/www/.local/bin/rst2html.py --version
Alırım:
rst2html.py (Docutils 0.12 [release], Python 2.6.6, on linux2)
Ancak, apache altında çalışan php uygulamamda (proc_open ile) aynı çağrıyı yaptığımda şunu alıyorum:
rst2html.py (Docutils 0.6 [release], Python 2.6.6, on linux2)
Genel olarak kurulu olan sürüm, yani tüm kullanıcılar tarafından kullanılabilir.
Peki bu farklılığa neden olan şey, çevrede kurmam gereken bir şey var mı?
Not: python uygulaması kullanılarak kuruldu. pip
echo \$USER'root' döndürdüm.
APACHE_RUN_USER, değil USER. Bir dosya oluşturursanız, dosyanın sahibi kimdir? Ya idda ya whoamigeçitinizde ya da geçidinizde? Apache kullanarak bahsettiniz, ama hangi yöntem? Modül veya fcgi, cgi veya başka bir şey?
id, etkili kullanıcıyı göstermek için kullanmayı deneyin .
whomaidoğru apachekullanıcıyı alıyorum . Sanırım bu sorumu değiştiriyor. Güncelleyeceğim.