Zdecydowałem się rozpocząć kodowanie przy użyciu OOP i frameworka PHP. Pomyślnie zainstalowałem Yii na serwerze deweloperskim i stworzyłem aplikację internetową. Teraz chciałbym przenieść chroniony folder na poziom poza katalogiem głównym dokumentu ze względów bezpieczeństwa. Moje pytanie brzmi, jak to zrobić, gdy istnieje wiele subdomen, z którymi będę również korzystał z Yii.

Mam doświadczenie z PHP, ale nie w stylu OOP i to jest mój pierwszy krok w kierunku OOP i frameworków. Ponadto mam zainstalowany system LAMP na Ubuntu do rozwoju.

Poniżej znajduje się moja struktura ścieżki, która pasuje do serwera produkcyjnego. Mam witrynę najwyższego poziomu i wiele innych witryn najwyższego poziomu oraz witryn poddomen dla jednej z witryn najwyższego poziomu.

Witryna najwyższego poziomu - /home/mark/public_html/{website one files}
witryna najwyższego poziomu - /home/mark/public_html/website-two.com/{website-two files}
witryna najwyższego poziomu - /home/mark/public_html/website-three.com/{website-three files}
moje subdomeny - /home/mark/public_html/sub1.website-three.com/{subfiles}
moje subdomeny - /home/mark/public_html/sub2.website-three.com/{sub2 files}
moje subdomeny - /home/mark/public_html/sub3.website-three.com/{pliki sub3}

Mam zainstalowane Yii w: /home/mark/Yii

Stworzyłem aplikację internetową pod adresem: /home/mark/public_html/sub1.website-three.com i uzyskuję dostęp do aplikacji internetowej Yii lokalnie pod adresem http://sub1.website-three/....Nie używam http://localhost od Posiadam wirtualne hosty i subdomeny. Wszystko to działa i będzie tworzyć więcej aplikacji internetowych w innych subdomenach w ramach witryny trzeciej.

Czy mogę zmienić nazwę chronionego folderu na sub_protected i umieścić go w /home/mark, a następnie dla mojej następnej aplikacji internetowej nazwać chroniony folder sub2_protected i tak dalej? Czy powinienem użyć innej struktury ścieżki??? Uważam również, że będę musiał edytować plik protected/config/main.php dla każdej witryny, aby odzwierciedlić zmiany???

Każda pomoc byłaby bardzo mile widziana. Nie mogę się doczekać, aż to skonfiguruję, abym mógł głębiej zagłębić się w Yii ...jak na razie wygląda bardzo intrygująco.

0
Mark 7 czerwiec 2011, 09:39

2 odpowiedzi

Najlepsza odpowiedź

Możesz nazwać chroniony folder, jak chcesz i umieścić go w dowolnym miejscu w systemie plików, do którego ma dostęp Twój użytkownik serwera WWW, więc schemat /home/mark/sub*n*_protected będzie działał.

Jednakże, szczególnie jeśli twoje witryny są podobne i mają wspólny kod, bardziej efektywne może być użycie jednego chronionego folderu i skonfigurowanie tablicy reguł urlManager w głównym pliku konfiguracyjnym i załadowanie odpowiednich reguł opartych na nazwie hosta. Możesz wtedy mieć dedykowane kontrolery dla każdego hosta, a także katalogi widoków. Często robiłem to dla wersji mobilnych, w których można również dodać wykrywanie urządzeń mobilnych do miksu.

Jeśli witryny są różne, sensowne może być również używanie oddzielnych katalogów chronionych. Na przykład użyję oddzielnego chronionego katalogu dla narzędzi administracyjnych opartych na rusztowaniu generowanym przez Gii.

Jeśli witryny są bardzo podobne, możesz również sprawdzić Motywy: http://www.yiiframework.com/doc/guide/1.1/en /topics.theming

2
ldg 8 czerwiec 2011, 01:03
Dzięki, udało mi się przenieść chroniony folder i zmienić jego nazwę, ale teraz myślę o tym, co powiedziałeś. Witryny są bardzo podobne ... ta sama struktura danych, ten sam układ, tylko różne nazwy i różne kolory/obrazy itp. Jeśli uda mi się zmusić je do udostępnienia tego samego chronionego folderu, a następnie użyć motywów, brzmi to jak droga . A co z udostępnianiem tego samego db? Czy to powoduje problemy z udostępnianiem chronionego folderu lub z motywami?
 – 
Mark
8 czerwiec 2011, 03:44
Nie, nie widzę żadnych problemów z udostępnianiem tej samej bazy danych. Jeśli z jakiegoś powodu nie chcesz, zawsze możesz użyć tej samej techniki opisanej powyżej, aby załadować różne reguły dla urlManagera i załadować różne ustawienia bazy danych, a nawet użyć różnych przedrostków tabeli dla różnych witryn/hostów.
 – 
ldg
8 czerwiec 2011, 07:51

Jasne, że możesz umieścić chroniony folder w katalogu głównym dokumentu. Po prostu użyj dla strony internetowej jednego następnego kodu w swojej konfiguracji:

return array(
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..',

A twój folder protected zostanie przejrzany

/home/mark/protected
1
RusAlex 7 czerwiec 2011, 10:44
Dzięki, udało mi się przenieść chroniony folder i zmienić jego nazwę, a konfiguracja została zmieniona, aby reprezentować zmianę. Wszystko działa ... ale teraz pomyśl o motywach i db, i najlepszym sposobie radzenia sobie z nimi. Ta strona również pomogła...yiiframework.com/wiki/116/…
 – 
Mark
8 czerwiec 2011, 03:40