![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 573 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Uruchamiam aplikacje (autorski framework testowany na localhost) pierwszy raz w domenie i pojawia się błąd: Warning: require(): open_basedir restriction in effect!
Aplikacja jest w katalogu głównym /, natomiast domena jest skierowana na folder /public/ - na serwerze jest domyślnie włączona separacja stron stąd ten błąd, można wyłączyć i jest Ok. Nie bez powodu domyślnie jest jednak włączona, a ze względu na bezpieczeństwo rozprzestrzenienia wirusa, to chyba taka przypadłość po Covid. Pytanie, czy uruchamiając framework Symfony, który ma podobną strukturę katalogów, itp. też trzeba wyłączyć open_basedir, czy jakoś można to obejść? Logicznie trzeba wyłączyć, aby uruchomić Symfony. Wolę jednak dopytać jak to jest z tym open_basedir? Ten post edytował Malinaa 28.08.2024, 22:54:46 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 403 Pomógł: 72 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Symfonowy index.php w katalogu /public/:
A my nie wiemy co Ty masz w swoim idex.php, bo nie wrzuciłeś go tutaj. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 573 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
U mnie jest tak:
i już na require() krzyczy wyłącz ograniczenie open_basedir. ... potem jest Super. Tylko, czy bezpiecznie. Ten post edytował Malinaa 29.08.2024, 12:49:14 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
moze zamiast wylaczac to poprostu okresl jakies katalogi sa dostepne dla open_basedir
cos ala: open_basedir = /twoj/katalog/1;/tmp;itditd |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 573 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
moze zamiast wylaczac to poprostu okresl jakies katalogi sa dostepne dla open_basedir cos ala: open_basedir = /twoj/katalog/1;/tmp;itditd Nie za bardzo tak mogę, tzn. wolę bez podobnych kombinacji, poza tym czy Symfony przy instalacji wymaga takich zabiegów na serwerze. Nie, działa "z automatu" i tu też bym tak chciał, ale na ten czas działa z automatu po wyłączeniu. |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
a jaka to kombinacja dac dostep do folderu twojej aplikacji? Czyli lepiej wg ciebie jest dac dostep do calego serwera? (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 403 Pomógł: 72 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
A jaką masz strukturę katalogów na serwerze?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 573 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Teoretycznie wyłączenie jest tylko dla domeny (strony), ale dziura powstaje i Matrix może się przebić (IMG:style_emoticons/default/wink.gif)
Nie w tym kłopot, a dobrze byłoby poprawić kod tak, aby działał bez wyłączania open_basedir. Struktura katalogów jest taka (w katalogu głównym domeny): / application public (public folders) src ... Całość jest tutaj: https://github.com/artimman/dbmframework Domena jest skierowana na /public/ i kłopot jest taki, że nie można dostać się do katalogów niżej bez wyłączenia. Chciałbym, aby wystarczyło zrobić jakiś drobny zabieg kosmetyczny, np. z define('BASE_DIRECTORY', dirname(__DIR__) . DS) ? Co ciekawe, sprawdziłem domenę na której mam stronę w Symfony i dla tej strony też mam Separacje stron "Wyłączoną", czyli musiałem ją wyłączyć, aby zainstalować Symfony w domenie. Być może frameworki, które są skierowane na katalog /public/ wszystkie tak już mają i nie da się tego ominąć (też w moim autorskim frameworku). A miało byc mega bezpiecznie dzieki zastosowaniu struktury /public/, a tu wychodzi, że mamy coś za coś. No chyba, że jest coś jeszcze do odkrycia, kto wie. Bo teraz to nie wiem, czy muszę z tym walczyć w moim frameworku, czy tak ma być? To taki frameworkowy standard (IMG:style_emoticons/default/smile.gif) Ten post edytował Malinaa 29.08.2024, 18:04:12 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 403 Pomógł: 72 Dołączył: 15.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Do /public/ na hostingu wrzuć zawartość swojej aplikacji, a domenę spointuj na /public/public/
Powinno zadziałać i rozwiązać twój problem. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 573 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Możliwe, że zadziała, ale chciałbym to zrobić jak najbardziej naturalnie. Naturka się liczy.
Alternatywne rozwiązanie z .htaccess, które teoretycznie też może zadziałać ( tylko, czy obędzie się bez kopiowania, resetowania, klonowania.... ; ) 1. Skierowanie domeny + instalacji frameworka (Symfony, itp.) do katalogu nadrzędnego [folder_nadrzedny] z aktywną separacją, 2. Umieszczenie instalacji Symfony (publicznej) wewnątrz katalogu [folder_podrzedny] 3. Skierowanie poprzez plik .htaccess ruchu aplikacji bezpośrednio z nazwy domeny do katalogu [folder_podrzedny], w którym mieści się instalacja publiczna, dostępna dla użytkowników. Framework jest na hostingu, gdzie można włączyć lub wyłączyć separacje i tyle, dlatego pewnie powinien być na jakimś serwerze deweloperskim, vps, vpn, itp. ? Wystarczyłoby wówczas jak nospor napisał określić dostęp do katalogu dla open_basedir. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.08.2025 - 10:29 |