Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tworzenie plików powyżej katalogu public_html
Forum PHP.pl > Forum > Przedszkole
jacobmaster
Witam!
Czy istnieje możliwość tworzenia plików z poziomu php powyżej katalogu public_html?
Czy jest to w jakiś sposób uzależnione od ustawień apache?
phpion
Jest. Po prostu podajesz ścieżkę bezwzględną czyli pełną, np. /home/user/
jacobmaster
no jaużywam ścieżki bezwzględnej "uniwersalnej"
CODE
$_SERVER['DOCUMENT_ROOT'].'/../password.dat'

czyli w wyniku mam np.
/home/users/grupa1/podgrupa2/user1/public_html/../plik.dat

kiedy ręcznie wgram na server
plik.dat to za pomoca tej ścieżki to php odczytuje i zapisuje bez problemu
ale jak nie ma pliku i chce go otworzyc z atrybutem w albo a albo nawet x to niestety nie tworzy pliku

l0ud
Nie tworzy pliku, bo PHP nie ma uprawnień zapisu dla tego folderu.

Mój pomysł: w katalogu nadrzędnym utwórz (obok public_html) inny folder, np. 'data', nastaw mu chmody 777.
Później już możesz łatwo tworzyć pliki używając ścieżki:
Kod
$_SERVER['DOCUMENT_ROOT'].'/../data/password.dat'
jacobmaster
to niestety dla mnie nie jest rozwiązanie...
szukam rozwiązania które nie będzie wymagało od użytkownika ręcznego wgrywania plików czy tworzenia katalogów

rozumiem że php nie ma uprawnień żeby tworzyć pliki czy katalogi powyżej public_html?
to dlaczego w takim razie może zapisywać do tych plików?
.radex
Słuchaj, właśnie rada l0ud rozwiązuje problem.

Kiedy stworzysz drugi katalog (brat public_html), np. właśnie data. Kiedy nadasz mu odpowiednie uprawnienia, php będzie mógł tam zapisywać. I nie user nie musi robić przesyłu ręcznie.
jacobmaster
źle mnie rozumiesz: pisze tu nie o jakimś konkretnym przypadku na jednym serwerze - nie byłoby w ogóle tematu - chodzi o funkcjonalność systemu który instalować będą użytkownicy na różnych serwerach (tak jak np cms) przy jednoczesnym zminimalizowaniu ręcznej ingerencji w pliki na serwerze.
mls
Wszystko zależy od konfiguracji serwera (a konkretniej struktury i uprawnień plików/katalogów). Jeśli katalog nadrzędny od np. "public_html" będzie miał prawa zapisu dla wszystkich użytkowników lub ustawi się jego właściciela na użytkownika pod którym działa serwer www (+php) to wtedy i php będzie mogło tworzyć w nim nowe pliki...
l0ud
Jeżeli chcesz zrobić uniwersalny skrypt który będzie działał na (prawie) każdym serwerze, wiec że na wielu [słabszych] nie ma dostępu ponad katalog public_html. Po prostu umieść pliki konfiguracyjne bezpośrednio w public_html, w jakimś folderze, np. data i odpowiednio je zabezpiecz, aby nie dało się ich odczytać przez bezpośrednie wczytanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.