Nasıl PHP yazacaktı bir dizine erişim veriyorsunuz?

5 Cevap php

I'm trying to use PHP to create a file, but it isn't working. I am assuming this is because it doesn't have write access (it's always been the problem before). I tried to test if this was the problem by making the folder chmod 0777, but that just ended up making every script in that directory return a 500 error message until I changed it back. How do I give PHP write access to my file system so it can a create a file?

Edit: Bu Hostgator üzerinde barındırılan Apache kullanarak barındırma paylaştı.

Edit 2: Someone asked for the code: The code is a GD image script. I know the rest of it works as previously I was creating the image every ime it was called. Now I am trying to create them when new text is added and save them to a folder. The write line I have is: imagejpeg(null,$file,85);

I also created a test file to check if it was just a broken script (mainly copied from tizag): http://gearboxshow.info/rkr/lesig.jpg/testfile.txt (I don't know if/how to post the code here properly. Here is the contents of the PHP script, minus PHP tags.)

Bu 13,13,1 (ayrı hatlar) döndürür, bu yüzden bir şey yazdı düşünüyor gibi görünüyor, ama testfile.txt (bunu silerseniz) (boş bir tane yükledi) boş, ya da varolmayan.

3 Düzenleme: Sunucu CentOS çalışır.

5 Cevap

Bir çok kolay bir yolu PHP ilk etapta dizinin kendisini oluşturmak izin vermektir.

<?php
 $dir = 'myDir';

 // create new directory with 744 permissions if it does not exist yet
 // owner will be the user/group the PHP script is run under
 if ( !file_exists($dir) ) {
  mkdir ($dir, 0744);
 }

 file_put_contents ($dir.'/test.txt', 'Hello File');

Bu size izinlerine sahip güçlük kaydeder.

Kullanıcı çalışan apache dizinin sahibini ayarlayın. Linux üzerinde Genellikle kimse

chown kimse: kimse

Bu şekilde klasör dünya yazılabilir, ama apache hala yazılabilir değil :)

PHP'nin chmod () ile bir klasörün izinlerini değiştirebilirsiniz. Komutunu nasıl kullanılacağı hakkında daha fazla bilgi burada: http://php.net/manual/en/function.chmod.php

777 (dünya yazılabilir) için izinleri ayarlarken bir 500 hatası alırsanız, o zaman sunucu gibi dosyaları yürütme önlemek için kurulum anlamına gelir. Bu güvenlik nedenleriyle yapılır. Bu durumda, bir dosya üzerinde yüksek izinleri olarak 755 kullanmak isteyeceksiniz.

Eğer PHP belgeyi yürütme klasöründe oluşturulan bir hatalar.log dosyası varsa, size son birkaç girişlerini görüntülemek isteyeceksiniz. Bu size komut başarısız bir fikir verecektir.

PHP dosyası manipülasyon ile yardım için bir kaynak olarak http://www.tizag.com/phpT/filewrite.php kullanın.

Ben HostGator ile 755 CMOD 644 ve Klasörler dosyaları ayarlamak zorunda olduğunu öğrendim. Ben bu onların teknik destek o HostGator ile çalışır tabanlı vermedi beri

chmod Bir dosyanın sahipliğini ayarlamak için izin vermez. Dosyanın sahipliğini ayarlamak için chown komutunu kullanmanız gerekir.