Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP / Linux] Zmiana domyślnego katalogu ze skryptami .php, Jak zmienić domyślny katalog w Linuksie /var/www na inny?
MySQL
post 17.10.2008, 21:03:49
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


Mam Kubuntu. Po doinstalowaniu niezbędnych pakietów domyślną ścieżką do katalogu gdzie pliki .php są interpretowane przez serwer Apache jest /var/www.

Problem w tym, że katalog ten jest z prawami rwxr-xr-x czyli zwykły śmiertelnik nic do niego nie zapisze. Oczywiście mogę napisać sudo chmod 777 /var/www ale chodzi mi właśnie o to żeby tego nie robić. Chociażby dlatego, że pliki i tak tworzę w którymś podkatalogu swojego katalogu domowego i nie chce mi się co chwilę kopiować plików do tego /var/www, tym bardziej że jak się tworzy strony to co chwilę patrzy się na stronę jak tylko zmieniła się linijka w kodzie.

Dlatego moje pytanie jest właśnie takie: Czy można ten katalog jakoś zmienić na inny? np. /home/moj_login/Dokumenty/www ?

Szukałem w pliku /etc/php5/apache2/php.ini w nadziei, że tam może znajdę łańcuch znaków /var/www ale niestety nie znalazłem :(

Ten post edytował achaja 17.10.2008, 21:08:08


--------------------
Pozdrawiam serdecznie
Krzysiek
Go to the top of the page
+Quote Post
Virti
post 17.10.2008, 21:08:07
Post #2





Grupa: Zarejestrowani
Postów: 115
Pomógł: 12
Dołączył: 11.01.2005
Skąd: Zduńska Wola

Ostrzeżenie: (0%)
-----


Poszukaj w konfiguracji Apache [httpd.conf]
Pozdrawiam.
Go to the top of the page
+Quote Post
devnul
post 17.10.2008, 21:17:46
Post #3





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


/etc/apache2/sites-available/default - zmień /var/www na odpowiadający Ci katalog (wpis jest w 2 liniach - jako servername i directory)
następnie sudo apache2ctl restart i po sprawie, osobiście jednak proponuję przyjrzeć się wirtualnym hostom

//edit: jeśli zależy Ci tylko na lokalizacji to katalogu to nie koniecznie musisz zmieniać ustawienia - zmień właściciela (lub grupę) katalogu /var/www i utwórz dowiązanie symboliczne w zadowalającej Cię lokalizacji

Ten post edytował devnul 17.10.2008, 21:43:03


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
michalkjp
post 17.10.2008, 21:31:53
Post #4





Grupa: Zarejestrowani
Postów: 182
Pomógł: 14
Dołączył: 20.09.2008

Ostrzeżenie: (0%)
-----


TIP: W większości dystrybucji przy domyślnej konfiguracji Apache można utworzyć w katalogu domowym użytkownika katalog public_html, którego zawartość będzie widoczna pod adresem http://localhost/~twój_login .

Albo zmień konfiguracje Apache jak koledzy wcześniej pisali.
Go to the top of the page
+Quote Post
MySQL
post 17.10.2008, 23:00:05
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


Cytat(Virti @ 17.10.2008, 22:08:07 ) *
Poszukaj w konfiguracji Apache [httpd.conf]
Pod Linuksem to nie zadziała bo ten plik ma rozmiar 0 bajtów winksmiley.jpg

Cytat(michalkjp @ 17.10.2008, 22:31:53 ) *
W większości dystrybucji przy domyślnej konfiguracji Apache można utworzyć w katalogu domowym użytkownika katalog public_html, którego zawartość będzie widoczna pod adresem http://localhost/~twój_login .
Próbowałem to już wcześniej (bo tak mamy właśnie na uczelni) ale niestety nie działa ten sposób.

Cytat(devnul @ 17.10.2008, 22:17:46 ) *
//edit: jeśli zależy Ci tylko na lokalizacji to katalogu to nie koniecznie musisz zmieniać ustawienia - zmień właściciela (lub grupę) katalogu /var/www i utwórz dowiązanie symboliczne w zadowalającej Cię lokalizacji
Wybieram ten sposób winksmiley.jpg a konkretnie o jakie dowiązanie (tzn w jakim miejsu ma ono być)? Załóżmy, że chciałbym umieszczać swoje pliki skryptowe .php w katalogu /home/achaja/Dokumenty/www to wówczas gdzie mam utworzyć to dowiązanie?

Ten post edytował achaja 17.10.2008, 23:00:56


--------------------
Pozdrawiam serdecznie
Krzysiek
Go to the top of the page
+Quote Post
michalkjp
post 18.10.2008, 00:42:58
Post #6





Grupa: Zarejestrowani
Postów: 182
Pomógł: 14
Dołączył: 20.09.2008

Ostrzeżenie: (0%)
-----


Znajdź w httpd.conf

# User home directories

#Include conf/extra/httpd-userdir.conf

i odhashuj includa. Spróbuj czy działa, jak nie, to pokaż co jest w pliku httpd-userdir.conf – siedzę teraz na Windows i u mnie będzie inaczej, więc nie mogę Ci podać gotowej konfiguracji.
Go to the top of the page
+Quote Post
MySQL
post 18.10.2008, 10:41:17
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


Cytat(michalkjp @ 18.10.2008, 01:42:58 ) *
Znajdź w httpd.conf

# User home directories

#Include conf/extra/httpd-userdir.conf

i odhashuj includa.


Wcześniej napisałem:
Cytat(achaja @ 18.10.2008, 00:00:05 ) *
Pod Linuksem to nie zadziała bo ten plik ma rozmiar 0 bajtów
Od razu dodam, że w pliku apache2.conf widocznym na screenie również nie ma takiej linijki. Dodam jeszcze, że innego pliku httpd.conf nie ma. Jest tylko jeden i tylko w tym miejscu.

Jednakże bardzo by mi zależało na tym sposobie z dowiązaniami symbolicznymi napisanym przez devnul (ten sposób wydaje mi się najbardziej przyzwoity) tylko nie wiem gdzie miałoby to dowiązanie się znajdować przy założeniu że pliki .php chciałbym umieszczać np. w katalogu: /home/achaja/Dokumenty/www

Ten post edytował achaja 18.10.2008, 10:44:12


--------------------
Pozdrawiam serdecznie
Krzysiek
Go to the top of the page
+Quote Post
michalkjp
post 18.10.2008, 11:42:26
Post #8





Grupa: Zarejestrowani
Postów: 182
Pomógł: 14
Dołączył: 20.09.2008

Ostrzeżenie: (0%)
-----


Ok, widzę, że w Ubuntu używają starej nazwy (daemon od wersji 2.0 nazywa się httpd a nie apache), więc zamiast httpd.conf masz plik apache2.conf...

Co do rozwiązania zaproponowanego przez devnul to chodziło mu o katalog /etc/apache2/sites-available/default przeczytaj "man ln" i będziesz wiedział o co chodzi z dowiązaniami.
Go to the top of the page
+Quote Post
MySQL
post 18.10.2008, 13:04:22
Post #9





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


michalkjp jeszcze raz specjalnie dla Ciebie.

Po pierwsze. Ja nie zapytałem sie devnul'a jak się robi dowiązania tylko w jakim katalogu ma się znajdować to dowiązanie i na co ma wskazywać przy założeniu że swoje pliki .php chciałbym umieszczać np. w katalogu /home/achaja/Dokumenty/www.

Po drugie. Napisałem również, że "Od razu dodam, że w pliku apache2.conf widocznym na screenie również nie ma takiej linijki." Pisząc tej linijki miałem namyśli linijki którą podałeś wcześniej abym sprawdził czyli #Include conf/extra/httpd-userdir.conf.

Po trzecie. /etc/apache2/sites-available/default jest już plikiem. Katalogiem jest samo /etc/apache2/sites-available bez default.


--------------------
Pozdrawiam serdecznie
Krzysiek
Go to the top of the page
+Quote Post
michalkjp
post 18.10.2008, 13:31:11
Post #10





Grupa: Zarejestrowani
Postów: 182
Pomógł: 14
Dołączył: 20.09.2008

Ostrzeżenie: (0%)
-----


"Po pierwsze. Ja nie zapytałem sie devnul'a jak się robi dowiązania tylko w jakim katalogu ma się znajdować to dowiązanie i na co ma wskazywać przy założeniu że swoje pliki .php chciałbym umieszczać np. w katalogu /home/achaja/Dokumenty/www."
Przecież on Ci podał ten katalog – gdybyś użył /dev/brain i wiedział co to jest dowiązanie, to wiedziałbyś co wpisać, żeby mieć dowiązanie we wskazanym katalogu do /home/achaja/Dokumenty/www.


"Po drugie. Napisałem również, że "Od razu dodam, że w pliku apache2.conf widocznym na screenie również nie ma takiej linijki." Pisząc tej linijki miałem namyśli linijki którą podałeś wcześniej abym sprawdził czyli #Include conf/extra/httpd-userdir.conf."
Ok, tego nie zauważyłem – jest z boku przy screanie i umknęło mojej uwadze. Ale mógłbyś po prostu dodać takiego includa i po sprawie – use your /dev/brain dude


"Po trzecie. /etc/apache2/sites-available/default jest już plikiem. Katalogiem jest samo /etc/apache2/sites-available bez default."
use your /dev/brain dude

Konfig dla katalogów domowych użytkownika powinien wyglądać mniej więcej tak


UserDir "public_html"

#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

To tyle z mojej strony, bo widzę, że tracę czas – masz małe pojęcie o systemie, nie potrafisz użyć /dev/brain ani Google a próbujesz używać protekcyjnego tonu, tak jakbym to ja był idiotą nierozumiejącym prostych wskazówek...
Go to the top of the page
+Quote Post
pinochet
post 18.10.2008, 15:19:30
Post #11





Grupa: Zarejestrowani
Postów: 120
Pomógł: 12
Dołączył: 9.10.2008
Skąd: Tricity.Rumia()

Ostrzeżenie: (0%)
-----


hehe właśnie odpaliłem modul user dir pod ubuntu - w Kubuntu bedzie chyba tak samo ;-)
musisz zrobic dowiązania symboliczne w folderze /etc/apache2/mods-enabled :
Kod
lrwxrwxrwx 1 root root 30 2008-10-18 14:07 userdir.conf -> ../mods-available/userdir.conf
lrwxrwxrwx 1 root root 30 2008-10-18 14:06 userdir.load -> ../mods-available/userdir.load

dla odmiany w /etc/apache2/mods-available/userdir.conf
mosz cos takiego:
<Directory /home/*/public_html>
to Ci okresla ktory folder bedzie domyslnie "publiczny" dla wszystkich userow pod domena/~user

co do pierwszej metody wystarczy zrobic w /var/www symlinki na przyklad takie:
Kod
lrwxrwxrwx 1 root     root       39 2008-10-09 12:10 news -> /home/pinochet/public_html/news/public/
lrwxrwxrwx 1 root     root       32 2008-10-15 21:33 news2 -> /home/pinochet/public_html/news2

to daje ze pliki są dostepne pod: domena/news/

Ten post edytował pinochet 18.10.2008, 15:20:19
Go to the top of the page
+Quote Post
jarek_bolo
post 18.10.2008, 17:01:45
Post #12





Grupa: Zarejestrowani
Postów: 149
Pomógł: 12
Dołączył: 3.03.2008
Skąd: łódzkie

Ostrzeżenie: (0%)
-----


@achaja lepsze rozwiązanie jest z Virtual Hostami, więc użyj swojego braina winksmiley.jpg i poczytaj o tym. Konfiguracja Virtual Hostów na ubuntowatych jest prościutka!


--------------------
"Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! |
Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!!
Go to the top of the page
+Quote Post
MySQL
post 19.10.2008, 00:30:14
Post #13





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


Po tych wszystkich radach w zasadzie to działa. "W zasadzie" dlatego, że działa ale jeszcze nie tak jakbym chciał. Przede wszystkim poszedłem za radami abym użył Virtualnych Hostów i tego użyłem ale mam mimo to jedno pytanie ale zanim je zadam wkleję kilka linków aby zobrazować to w co poniektórzy nie chcą uwierzyća wręcz usilnie trwają w błędzie:

Oto struktura katalogów w katalodu /etc/apache2:



Nie jest to pełna struktura. W sites-enabled i mods-enabled są tylko linki do odpowiednich plików z katalogów sites-available i mods-available. W mods-available jest pełno plików w czego zawartość jednego pokazana jest na screenie poniżej.

Zawartość pliku (pliku a nie katalogu szanowny panie kolego!) /etc/apache2/sites-available/default:



Od razu dodam, że jest to plik zmieniony przeze mnie po dodaniu linii od nr 44 do 54. Po prostu poczytałem trochę o Virtualnych Hostach.

Zawartość pliku: /etc/apache2/mods-available/userdir.conf:



Rozumiem, że to właśnie o ten plik Wam chodziło kiedy pisaliście o tym: <Directory /home/*/public_html>


No właśnie, ale co z tego, że mam ten plik i nic nie jest w nim zakomentowane, skoro gdy napiszę w przeglądarce localhost/~achaja/ (bo taki mam akurat login w systemie) przeglądarka informuje mnie, że nie znalazła strony? I właśnie to jeszcze nie rozwiązuje mojego problemu do końca. Bo o ile kiedy jest tylko kilka użytkowników w systmienie to można każdemu napisać analogiczne linijki które ja dodałem do pliku /etc/apache2/mods-available/userdir.conf. Ale jeżeli jest już sporo więcej użytkowników albo jeżeli co jakiś czas dochodzą nowi użytkownicy to wolałbym raz coś zmienić, a nie za każdym razem pamiętać o dodaniu nowego wpisu.

Można to właśnie jakoś zrobić? Myślałem że wystarczy zmienić linijkę 48 w pliku /etc/apache2/mods-available/userdir.conf na:

DocumentRoot /home/*/public_html

ale to nic nie dało. A nawet zrobiło gorzej bo przeglądarka nie widziała plików zarówno kiedy wpisywałem localhost/~achaja/ jak i samo localhost/


W tej chwili wszystko mi działa jak wpiszę samo localhost/ a chciałbym właśnie, żeby działało to poprzez mój login czyli localhost/~achaja/ i co więcej chciałbym aby to działało dla wszystkich użytkowników, a nie tylko dla mnie. Cały czas czytam o tym jak to zrobić i wydaje mi się, że mam wszystko tak jak być powinno ale jednak nie jest skoro mi nie działa. Wie ktoś może jak zrobić to poprawnie?

Ten post edytował achaja 19.10.2008, 00:34:28


--------------------
Pozdrawiam serdecznie
Krzysiek
Go to the top of the page
+Quote Post
jang
post 19.10.2008, 09:11:48
Post #14





Grupa: Zarejestrowani
Postów: 101
Pomógł: 11
Dołączył: 2.02.2005

Ostrzeżenie: (0%)
-----


1. Otwórz "mc"
2. w lewym oknie otwórz katalog "/etc/apache2/mods-available/"
3. w prawym oknie otwórz katalog " /etc/apache2/mods-enabled/"
4. zaznacz plik (jak do kopiowania, usuwania) userdir.conf , w menu "plik" jest pozycja "Dowiązanie symb." kliknij i w prawym oknie utworzy się "plik" o nazwie "@userdir.conf"
5. to samo co w pkt 4. ale plik "userdir.load" => "@userdir.load"
6. restart Apache
7. http://localhost/~achaja/


--------------------
$email = filter_var(filter_var($email, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
if($email === false) {
// Houston, we have a problem....
}
Go to the top of the page
+Quote Post
jarek_bolo
post 19.10.2008, 11:16:41
Post #15





Grupa: Zarejestrowani
Postów: 149
Pomógł: 12
Dołączył: 3.03.2008
Skąd: łódzkie

Ostrzeżenie: (0%)
-----


Te linie które dodałeś do pliku default (44-54) powinieneś wpisać do całkiem nowego pliku o wybranej przez siebie nazwie (nazwa projektu np.).
Ten plik powinien wylądować w katalogu sites-available.
I raczej proponował bym skopiować to co w default jest zamieniając ścieżki na takie gdzie tam sobie trzymasz te swoje pliki.

Czyli: cp default mojanazwa

Potem: nano mojanazwa

Zmień to co trzeba, aby wskazywało na Twój /home/user/moje_dokumenty/www i zapisz plik.

Następnie: a2ensite mojanazwa (taka komenda apachowa)
Powyższe tworzy dowiązanie mojanazwa w katalogu sites-enabled.

Następnie /etc/.initd/apache reload (tutaj już nie pamiętam, a nie piszę teraz z linuxa i nie upewnie się).

Dodatkowo musisz dodać nazwę virtual hosta jaką wpisałeś w konfigu apache'a do pliku /etc/hosts

Wszystko co wyżej opisałem odnosi się tylko do VirtualHostów, według mnie są one bardziej praktyczne, bo możesz sobie stworzyć dowolną ilość niezależnych projektów na dysku (każdy będzie miał swoją domenę).
Userdir mod dla mnie jest mniej praktyczny, no chyba, że masz kilku userów w systemie.


--------------------
"Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! |
Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!!
Go to the top of the page
+Quote Post
pinochet
post 19.10.2008, 19:51:26
Post #16





Grupa: Zarejestrowani
Postów: 120
Pomógł: 12
Dołączył: 9.10.2008
Skąd: Tricity.Rumia()

Ostrzeżenie: (0%)
-----


@achja przeczytaj jeszcze raz mojego posta wyżej i zwórć uwagę gdzie jest napisane mods-enabled a gdzie mods-available ;P
przeczytaj i przemysl post jang-a ;-)
@jang zrób screena bo achja nie obsługuje trybu tekstowego ;-)
peace & pozdro

Ten post edytował pinochet 19.10.2008, 19:53:13
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 4.05.2025 - 07:08