Soru IIS'yi PHP komut dosyaları için ağ kaynaklarına erişime izin verecek şekilde nasıl yapılandırabilirim?


Şu anda ayrı sunucularda çalışan bir dizi uygulamayı birleştiren bir PHP ön uç üzerinde çalışıyorum; Bu uygulamaların birçoğu, erişime ihtiyacım olan dosyaları oluşturur, ancak bu dosyalar (çeşitli nedenlerle) kendi ana sunucularında bulunur.

Komut satırından ben gibi bir komut dosyası verirseniz:

<?php
var_dump(glob("\\\\machine-name\\some\\share\\*"));

PHP'nin UNC paylaşımının içeriğini okuyarak programsal olarak sorun olmadığını kanıtlayan bu dizinin tüm içeriğini alacağım. Ancak, aynı betiği web sunucusundan çalıştırmayı denediğimde boş bir dizi alıyorum - özellikle, bir dosya gibi bir dizini "açmak" için tasarlanmış daha açık işlevler kullanırsam, erişim hataları alıyorum.

Bunun bir izin sorunu olduğuna inanıyorum, ama ben bir sunucu / ağ yönetici türü değilim, bu yüzden bunu düzeltmek için ne yapmam gerektiğinden emin değilim ve komut dosyasını çalıştırıyorum ve kontrol ettiğim bağlantılar belki de arka planımdan dolayı ya da IIS ile ilgili eksikliklerinden dolayı, aslında bunun için .NET'i kullanmadığımız gerçeğiyle birleştiğinde, korkunç bir miktar yardım görmekteyim.

İlgili İstatistikler: Windows Server 2008 Standard SP2 IIS 7.0 PHP 5.2.9

İki tür sunucuya bağlanacağım: birkaç tane neredeyse aynı Server 2008 makinesi ve yerleşik XP çalıştıran bir makine.

Özellikle yararlı olmayan linkler olabilir, fakat belki de sadece yanlış okuma yaşıyorum:


5
2017-08-05 00:27


Menşei




Cevaplar:


Tahmin ettiğiniz gibi bu bir izin problemidir ... IIS çalışan işleminin çalıştığı kullanıcı makinede yerel bir hesaptır (büyük olasılıkla IUSER_)<MACHINENAME>) ve bu kullanıcı UNC yoluyla taramaya çalıştığınız diğer makinelerde kimliği doğrulanmadı (hatta acocunt bile yok!)

Bir sınama olarak, IIS yöneticisine girebilir ve IIS hizmetinin bu web sitesinde olduğu gibi değiştirebilirsin ... Sunucu 2008 / IIS 6'dan gelen bir terminoloji kullanıyorum, çünkü bir Server 2008 kutucuğu elimde değil. şimdi. IIS 7 yöneticisinde gezinirseniz, kullanıcıyı çalışan işleminin çalıştığı şekilde ayarlayabileceğiniz yeri bulabilmeniz gerekir.


1
2017-08-28 16:35





PHP uygulamanız bir hizmet hesabı kullanarak çalışır ve bu, kimlik bilgilerini ağ kaynaklarına erişmek için kullanılan kullanıcı hesabıdır. IIS için varsayılan, bunun için web sunucusunun yerel bir hesabını kullanmaktır ve bu hesabın ağ kaynaklarına erişim izni yoktur (çünkü yerel bir hesaptır).

Web sitesi için IIS uygulama havuzunu etki alanı kullanıcı hesabı kullanarak çalışacak şekilde yapılandırmalı ve sonra bu kullanıcı hesabına ağ paylaşımında uygun izinleri vermelisiniz.

Bir Active Directory etki alanınız yoksa veya bu iki sunucunun üyesi değilseniz, işler biraz daha zorlaşır, ancak her iki sunucuda aynı kullanıcı adlarını ve parolaları olan iki kullanıcı hesabı oluşturarak yine de yapılabilir.


2
2017-08-28 16:50





"Windows Server 2008 Standard SP2 IIS 7.0" kullanıyorsanız, Niçin önceki binyıldan Windows-es / IIS-es makalelerini okuyorsunuz?
IIS3.0-5.0 (temelde IIS 4.0), klasik ASP (1999'da kullanımdan kaldırılmıştır) gibi FrontPage Extensions, ASP.NET.0-1.1 (C # .NET) kullanımdan kaldırılan "APLLIES TO:" başlıklı makalelerin hiçbirine sahip olamazsınız. /VB.NET 2002) ve çalışma grubundaki iş istasyonlarının içeriği!

AD / DC var mı?

Plz cevabımı oku Kimliğe bürünme çalışmıyor - ağ paylaşımı


-1
2017-08-28 03:23