için
fopen($file_to_make) or die('could not open/create file');
değiştirmeyi deneyin , PHP süreç dizinine yazma izinleriniz olmalıdır. Genellikle (ama her zaman değil) PHP, web sunucusunun çalıştırdığı aynı kullanıcı olarak çalışır. Bu kullanıcının adı farklı sistemlere göre değişecektir. Ubuntu ve Debian'da, kullanıcı www-data
olarak adlandırılır, diğer sistemlerde sadece www
veya apache
veya apache2
olabilir. Bazı sistemlerde, root
olabilir.
PHP'nizin hangi kullanıcı üzerinde çalıştığını, sunucu süper küresel kodunun değerini inceleyerek öğrenebilirsiniz: $_SERVER['USER']
. phpinfo()
, bu gibi şeylere kolay bir şekilde bakış sağlar. Genellikle, PHP kullanıcısı web sunucusu kullanıcısı ile aynıdır (ancak her zaman değil).
dizin sahipliğini ve izinlerini belirleme tamamen başka bir konudur - hangi işletim sistemini kullandığınıza, sunucu için hangi erişim ve izinlere ve diğer birçok şeye bağlıdır. Bu konuda işaretçiler gerekiyorsa, start at serverfault.com.
İyi şanslar.
[değiştir] Eğer apache
olarak koşuyoruz yapıyor ve ardından ... /var/www/blah/mydomain.com/htdocs/
içinde yeni bir dizin oluşturmak çalışıyorsanız Tamam, çalıştırın:
> ls -splad /var/www/blah/mydomain.com/htdocs
şimdi etsen
:
4 drwxr-xr-x 2 apache apache 4096 2010-07-22 20:54 /var/www/blah/mydomain.com/htdocs/
iki ilginç parçalar var: Bir şey gibi görmeyi beklediğinizdrwxr-xr-x
, anlamına gelir: d
= dizin; rwx
= Kullanıcı Oku, Yaz, eXecute; r-x
= grup yalnızca Oku ve eXecute; r-x
= Herkesin yalnızca Oku ve eXecute var.
ve apache apache
- ilki dosya/dizinin sahibi olan kullanıcının adı, ikincisi ise dosyanın/dizinin sahibi olan grubun adıdır.o apache
göre gruplandırılmış oluyor rağmen
4 drwxr-xr-x 2 root apache 4096 2010-07-22 20:54 /var/www/blah/mydomain.com/htdocs/
it would dizin (apache değil) root
ait olduğundan değil eser ve, dizin değil:
yüzden böyle bir şey gördüyse Grup yazılabilir böylece kesmez. Bu senaryoda, yalnızca grup yazma izinleri ekleyebilirsiniz (chmod g+w /var/www/blah/mydomain.com/htdocs
) ve gitmekte fayda var.
Bu durumda
4 drw-r-xr-x 2 apache apache 4096 2010-07-22 20:54 /var/www/blah/mydomain.com/htdocs/
, mülkiyet Tamam, ama dizin sahibi tarafından yazılabilir değil: görebileceğiniz başka
şey olduğunu. Bunu, chmod u+w /var/www/blah/mydomain.com/htdocs
sahibi için yazma izni ekleyerek düzeltebilirsiniz.
başka varyasyonlar var, ama belki bu yardımcı olacaktır.
php'nin oluşturduğu hata iletisi nedir? html akışına yazdırmıyorsa, sunucu günlüğünde olur. – Lee
PHP Uyarı: mkdir() [function.mkdir]: /var/www/blah/websitename.com/httpdocs/aaa.php adresindeki izin 13 – matthewpavkov
adresinde reddedildi. Aynı sunucuda bu hesabı da eklemeliyim. iyi çalışıyor (dosya yükleme, eklentileri güncelleme, vb) tam bir Wordpress kurulumu. – matthewpavkov