Indywidualne ustawienia php dla każdej witryny na serwerze IIS i Windows 2008
Problem jak najbardziej z życia wzięty. Na serwerze znajdują się strony kilku użytkowników. Żaden z nich nie chciałby aby ktokolwiek oprócz niego i administratora miał dostęp do plików jego witryny. Gdyby problem powstał w środowisku działającym pod kontrolą Linuxa problem rozwiązałby się w kilka chwil, poprzez odpowiednie ustawienie właścicieli katalogów i praw dostępu. Jednak wspomniana sytuacja zaistniała pod Windows 2008.
Na pierwszy ogień poszło ustawienie parametru open_basedir w pliku konfiguracyjnym PHP. Ograniczyło to możliwość odczytu includowania i innych tego typu operacji tylko do wymienionych katalogów. Nadal jednak pozostał problem odczytu plików nawzajem przez użytkowników. Ze strony należącej do uzytkownia A np.: c:\Sites\A\1.php bez problemy można odczycztać czy zaincludowac sobie stronę użytkownika B c:\Sites\B\tajne.txt co oczywiście jest nie do przyjęcia. Z pomocą przyszła możliwość ustawienia parametrów PHP dla każdego folderu niezależenie. Aby z tego skorzystać należy utworzyć w rejestrze nowy klucz w gałęzi HKLM/Software/PHP/Per Directory Values/c/Sites/

Od tego momentu właściciel strony c:\Sites\A jest ograniczony tylko do własnego katalogu. Wadą tego rozwiązanie jest niestety konieczność utworzenia takich wpisów dla wszystkich stron znajdujących się na serwerze. Jednak (1) w tym wypadku można sobie było na to pozwolić (2) rozwiązanie jest łatwe we wdrożeniu a żadne inne nie przyszło mi do głowy. Chętnie poznam inne metody, może bardziej eleganckie, na osiągnięcie podobnego rezultatu.
| Drukuj artykuł | Ten wpis został napisany przez pejotr na 14-07-2010 o 19:25, i jest w kategorii IIS, Windows 2008. Podążaj za odpowiedziami do tego wpisu przez RSS 2.0. Możesz napisać komentarz, lub trackbacka z Twojej własnej strony. |
około 1 miesięcy temu
kto by tam windowsa uzywal… no chyba ze mobile
jak widac juz proste rzeczy wymagaja kombinacji, ale w koncu lubimy wyzwania.