Sunucuya yazmak için PHP güvenli modda dolaşmakta.

3 Cevap php

Sunucusu güvenli modu açık beri ben şu sorunu var, ve dizinleri farklı kullanıcılar altında oluşturulur ediliyor:

  1. Ben sunucuya benim komut dosyası yükleme, 'user1' ait olarak gösterir. Bunun dosyaları saklayabilirsiniz böylece yeni bir kullanıcı oluşturulduğunda yapıyor hepsi yeni bir dizin yapıyor.
  2. Yeni dizin oluşturulur, ancak bu 'apache' kullanıcı aittir.
  3. 'User1' ve 'apache' farklı kullanıcıların; ve güvenli mod açık. Yani php script bu yeni oluşturulan dizine yazamaz.
  4. Şimdi bir sorun var!

Bir çözüm güvenli modunu kapatmak için. Ayrıca, bir iş arkadaşınız dizinleri dosyası olarak aynı kullanıcı altında olmasını sağlamak için değiştirilebilir ayarlar vardır önerdi. Yani ikinci yapılabilir görmek için arıyorum.

Ama sormak zorundayım. Benim sorunum için bir programatical çözüm var mı?

Ben eğilerek am a, olarak güvenli mod php düzeyde çözmek için uygulanan 'hayır'. Ayrıca asıl sorun, farklı bir kullanıcı altında oluşturulan dizin gibi görünebilir, bu yüzden bir programatic düzeltme sadece bir yara bandı düzeltme olabilir.

3 Cevap

Bu geçici çözümü kullandım:

yerine php mkdir size uygun haklara sahip olan FTP dizinleri oluşturabilirsiniz.

    function FtpMkdir($path, $newDir) {
       $path = 'mainwebsite_html/'.$path;
       $server='ftp.myserver.com'; // ftp server
       $connection = ftp_connect($server); // connection


       // login to ftp server
       $user = "user@myserver.com";
       $pass = "password";
       $result = ftp_login($connection, $user, $pass);

       // check if connection was made
       if ((!$connection) || (!$result)) {
          return false;
          exit();
       } else {
         ftp_chdir($connection, $path); // go to destination dir
         if(ftp_mkdir($connection, $newDir)) { // create directory
             ftp_site($connection, "CHMOD 777 $newDir") or die("FTP SITE CMD failed.");
             return $newDir;
         } else {
           return false;
         }

         ftp_close($connection); // close connection
      }

  }

Bir. Htaccess dosyası (Apache üzerinde ise) üzerinden belirli bir dizin için güvenli modunu kapatmak mümkün olabilir.

php_value safe_mode = Off

Siz httpd.conf olsa sizin için bu değişikliği yapmak için barındırma sağlayıcı almak gerekebilir.

I have had some success with setting the group bit of the upload directory to sticky. PHP can then create directories inside it and write to it.

http://en.wikipedia.org/wiki/Setuid#setuid_and_setgid_on_directories

chmod g+ s directory