Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CMS][PHP]Dostęp do plików na innej domenie.
Forum PHP.pl > Forum > Kontrola i zarządzanie projektami
milons
Witam.

Projektuję swój własny system CMS. Chciałbym aby klienci mojej firmy logowali się do niego przez adres cms.(mojafirma).pl.
Przewiduję dodawanie aktualności, opinie, galerie zdjęć itd - jak w większości CMS-ów.
Moje pytanie brzmi:w jaki sposób mam dostać się do plików na domenie (domenaklienta).pl z cms.(mojafirma).pl ?

Większość komponentów na stronie (jak na przykład opinie o produktach) są obsługiwane w pełni z bazy danych, jednak problem pojawia się np przy uploaderze plików do galerii zdjęć.

Jak obsłużyć coś takiego bez użycia FTP?


Jeżeli zły dział - proszę o przeniesienie wink.gif
mstraczkowski
Rozumiem że serwisy klientów będą na ich serwerach a CMS na serwerze twojej firmy questionmark.gif

Jeżeli tak to moim zdaniem to bardzo złe podejście.
Co w sytuacji kiedy twoimi klientami będą powiedzmy firmy, które zatrudniają pracowników do obsługi CMS i wiadomo - płacą im
A pewnego dnia twój serwer ma awarię przez co nie można korzystać z CMS - pracownicy tych firm nie mają co robić, a trzeba im płacić

Wszystkie firmy, którym stworzyła stronę twoja firma będą unieruchomione ponieważ twój serwer (serwer CMS) padł.
Zaczną się telefony, maile, skargi (w przypadku np źle skonstruowanych umów - kary finansowe)
milons
Wszystko stoi na jednym hostingu.

Chcę w ten sposób "uzależnić" trochę klienta od siebie.

Z resztą nie przewiduję na tym większej liczby użytkowników - raczej proste strony-wizytówki wink.gif
mstraczkowski
Ok, to już trochę lepiej wygląda.

Więc teraz, skoro wiemy, że wszystko będzie stało na jednym hostingu to:

Nie widzę problemu, aby dostawać się do plików odpowiedniego serwisu - bez używania FTP
Skoro i strona klienta i CMS są na tym samym serwerze to lokalny system plików zapewni ci dostęp do plików serwisu.

Chyba że mówimy tutaj o jakiś hostingach z limitami:
Gdzie przykładowo katalog /cms nie ma dostępu do /klienci/strona-pana-macka

Pomijam tutaj fakt, że wszyscy klienci nawzajem będą zjadać sobie dostępny transfer smile.gif
I każda strona klienta będzie obciążać innych twoich klientów - ale ciągle nawiązuje do większych projektów (bo warto myśleć przyszłościowo)
PrinceOfPersia
Cytat
Jak obsłużyć coś takiego bez użycia FTP?

nie wiem, fopen?
milons
Prawa dostępu mogę chyba ustawić sam.

W jaki sposób mogę się więc tam dostać?
Chyba zwykłe "../../../strona_pana_macka/index.php" nie wystarczy. Nie wycofa mnie do katalogu "domains" czy "public_html"
mstraczkowski
Dlatego pytam czy mowa o hostingach z limitami.

Gdyż przykładowo gdy posiadasz swój dedyk czy VPS możesz się dowolnie przemieszczać po serwerze stosując właśnie znaki wyjścia "../"
Wszystko zależy od konfiguracji maszyny na którym to stoi

Wyobraźmy sobie strukturę:

Kod
/var/www
    /cms/
        index.php
    /klienci/
        /strona-pana-macka
            maciek.php


Z poziomu /cms/index.php możemy dobrać się do pliku maciek.php przykładowo:

  1. include_once(__DIR__.'/../klienci/strona-pana-macka/maciek.php');
milons
Nie jest to dedykowany.

Jest to zwykły hosting z nieograniczoną liczbą domen i portali na jednym koncie

mstraczkowski
Jeżeli nie masz dostępu z katalogu CMS do katalogów wyżej to chyba nie zostaje nic innego niż FTP (co w praktyce będzie bardzo przymulaste)

Dlatego na start zasugerowałem, że to niezbyt dobre podejście

Pozdrawiam serdecznie
milons
Przetestowałem __DIR__ i działa w ten sposób includowanie plików z katalogu wyżej (katalogu wszystkich domen).

Czy w ten sam sposób mogę operować innymi funkcjami w PHP? (rename, mkdir, itd itd).

I jak w ten sposób dodać np. obrazki czy css? (to już tak z czystej ciekawości, aż tak zawiły ten projekt nie jest wink.gif )
mstraczkowski
Tak, możesz - znak "/../" jest normalnym znakiem wyjścia z katalogu w systemie plików.

Jeżeli nie podoba ci się taka ścieżka zawsze możesz ją sobie sformatować za pomocą realpath
Ta funkcja usunie te mało estetyczna znaki ze ścieżki i poda ci ścieżkę w postaci normalnej

Przykładowo: /var/www/cms/../klienci zamieni ci na /var/www/klienci

Rozwiń proszę o co dokładnie ci chodzi z obrazkami i CSS
milons
Cytat(mstraczkowski @ 6.05.2013, 21:48:53 ) *
Rozwiń proszę o co dokładnie ci chodzi z obrazkami i CSS


kod
  1.  
  2. <?php
  3. echo "<img src=\"" . __DIR__ . "../../(domenaklienta.pl)/img/obrazek.jpg\" />";
  4.  
  5. ?>
  6.  


raczej nie zadziała wink.gif
sazian
ale samo http://(domenaklienta.pl)/img/obrazek.jpg zadziała
matw
Alternatywnym sposobem, aby zaciągnąć odpowiednie dane jest wykorzystanie technologii AJAX.

Skoro jednak masz mieć wszystko na jednym serwerze to chyba najprościej będzie podpiąć wszystkie domeny pod katalog z CMS i w zależności od tego jaka jest domena wczytywać odpowiednie dane, szablony, css'y itp. wink.gif
sazian
tylko że technologia AJAX nie działa między domenami a przede wszystkim AJAX nie jest odpowiedzią na każde pytanie
matw
Cytat(sazian @ 18.05.2013, 16:39:58 ) *
tylko że technologia AJAX nie działa między domenami a przede wszystkim AJAX nie jest odpowiedzią na każde pytanie


AJAX jak najbardziej działa pomiędzy różnymi domenami wink.gif polecam przeczytać artykuł Cross-domain jQuery AJAX. Nie mówię, że to rozwiązanie jest idealne, ale w opisanym przypadku powinno wystarczyć. Choć lepsze i prostsze będzie podpięcie kilku domen do jednego CMSa i obsłużenie tego, tak jak pisałem wcześniej wink.gif
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.