Jak dodać katalog niestandardowy np. Phpmyadmin?

11

Ponieważ moja wiedza na ten temat apachejest minimalna. Chciałbym, żeby rosła, więc miałbym więcej doświadczenia z LAMP. Moje gorące pytanie na dziś brzmi:

Jak dodać katalog niestandardowy do serwera WWW? (np. phpmyadmin)?

Moim celem jest możliwość tworzenia niestandardowych adresów w niestandardowych witrynach. Załóżmy, że mam swój katalog niestandardowy w: /media/my/web/portal1i chciałbym go załadować, gdy klient zadzwoni

http://localhost/myportal1 at webbrowser. 

Czy możesz podać mi listę kroków z kilkoma wyjaśnieniami?

Adrian K.
źródło

Odpowiedzi:

26

Zmodyfikuj plik konfiguracyjny Apache i dodaj dyrektywę Alias . Na przykład użyjmy domyślnego pliku.

sudo -e /etc/apache2/sites-available/default

Utwórz swój alias, dodając sekcję w ramach dyrektywy VirtualHost :

Alias /database/ "/usr/share/php5/phpmyadmin/"
<Directory "/usr/share/php5/phpmyadmin/">
    Order allow,deny
    Allow from all
    # New directive needed in Apache 2.4.3: 
    Require all granted
</Directory>

Zapisz i uruchom ponownie: sudo /etc/init.d/apache2 restart

Lub dla innego odniesienia:

sudo -e /etc/apache2/sites-available/default

A zawartość ...

Alias /myportal1/ "/media/my/web/portal1/"
<Directory "/media/my/web/portal1/">
    Order allow,deny
    Allow from all
    # New directive needed in Apache 2.4.3: 
    Require all granted
</Directory>

Zapisz i uruchom ponownie: sudo /etc/init.d/apache2 restart

Dodaj więcej dyrektyw w obrębie dyrektyw katalogu , takich jak

Options Indexes FollowSymLinks 

Zobacz http://httpd.apache.org/docs/2.2/mod/core.html#directory

Tego właśnie szukałeś?

Richard
źródło
Myślę, że wystarczy ponownie załadować apache po wprowadzeniu tych zmian?
Jo-Erlend Schinstad
och - tak ... dziękuję Jo-Erland Schinstad
Dzięki Cristopher! Właśnie tego szukałem! :)
Adrian K.
Dodałem ten wiersz do sekcji <Directory>, aby zapobiec błędom zabronionym, mam nadzieję, że edycja zostanie wkrótce zaakceptowana: Wymagaj wszystkich przyznanych
Richard
3
Nie ma potrzeby dodawania końcowego ukośnika w nazwie aliasu. Zmusza użytkownika do ścisłego wpisania go do adresu URL. W takim przypadku Alias ​​/ myportal1 inny niż Alias ​​/ myportal1 /. Zwróć uwagę na brak ukośnika końcowego.
Gilberto Albino
6

Prostszą alternatywą jest utworzenie miękkiego łącza z katalogu głównego dokumentu. Na przykład jeśli katalog główny to „/ var / www” (domyślny w większości systemów Linux), następująca komenda załatwi sprawę:

sudo ln -s /media/my/web/portal1 /var/www/myportal1

Działa to natychmiast - nie trzeba nawet ponownie ładować serwera Apache.

Erel Segal-Halevi
źródło
1

Apache jest użytkownikiem w twoim systemie, tak jak ty, tyle że nie może się zalogować. Oznacza to, że dostęp do pliku jest dokładnie taki sam dla Apache, jak i dla ciebie. Po pierwsze, jeśli Apache powinien udostępnić katalog w / media / coś, to Apache musi mieć dostęp do odczytu i jego plików.

Po drugie, aby skonfigurować witrynę, która używa tego katalogu jako jej strony domowej, tworzysz pliki witryn, takie jak / etc / apache2 / sites-available / your-site. Jest to część tego, co nazywa się vhosting. Istnieją dwa różne typy; jeden oparty na nazwie (nazwa domeny) i jeden oparty na adresie IP. Najczęstszą konfiguracją jest używanie vhostów opartych na nazwach. Możesz przeczytać więcej na ten temat tutaj: http://httpd.apache.org/docs/2.2/vhosts/

Jo-Erlend Schinstad
źródło
Dzięki za referencje. Zdecydowanie się w to zagłębię! :)
Adrian K.
0

Tak prosty w dwóch wierszach:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf

Po

po prostu edytuj plik „phpmyadmin.conf”

pico /etc/apache2/conf.d/phpmyadmin.conf

i zmień go na „loool” lub cokolwiek innego :)

Alias /loooool /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>

SetEnvIfNoCase User-Agent "^ZmEu" bad_bot
SetEnvIfNoCase User-Agent "^BackDoorBot" bad_bot
SetEnvIfNoCase user-agent "^BlackWidow" bad_bot 
SetEnvIfNoCase User-Agent "^BotALot" bad_bot

po tym wszystkim przeładuj apache: D

service apache2 reload

tadaaa: D ciao :)

ucefkh
źródło