Wie füge ich ein benutzerdefiniertes Verzeichnis hinzu, z. B. phpmyadmin?

11

Da ist mein Wissen über apacheminimal. Ich möchte es wachsen lassen, damit ich mehr Erfahrung mit LAMP habe. Meine heiße Frage für heute ist:

Wie füge ich ein benutzerdefiniertes Verzeichnis zum Webserver hinzu? (zB phpmyadmin)?

Mein Ziel ist es, benutzerdefinierte Adressen mit benutzerdefinierten Websites erstellen zu können. Nehmen wir an, ich habe mein benutzerdefiniertes Verzeichnis unter: /media/my/web/portal1und möchte es laden, wenn der Client aufruft

http://localhost/myportal1 at webbrowser. 

Können Sie mir eine Liste mit Schritten mit wenigen Worten geben?

Adrian K.
quelle

Antworten:

26

Bearbeiten Sie Ihre Apache-Konfigurationsdatei und fügen Sie eine Alias- Direktive hinzu. Verwenden wir zum Beispiel die Standarddatei .

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

Erstellen Sie Ihren Alias, indem Sie einen Abschnitt in der VirtualHost- Direktive hinzufügen :

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>

Speichern und neu starten: sudo /etc/init.d/apache2 restart

Oder für die andere Referenz:

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

Und der Inhalt ...

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>

Speichern und neu starten: sudo /etc/init.d/apache2 restart

Fügen Sie weitere Anweisungen innerhalb der Verzeichnisanweisungen hinzu , z

Options Indexes FollowSymLinks 

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

Das, wonach du gesucht hast?

Richard
quelle
Ich denke, es ist ausreichend, Apache nach diesen Änderungen neu zu laden?
Jo-Erlend Schinstad
oh - ja ... danke Jo-Erland Schinstad
Danke Cristopher! Genau das habe ich gesucht! :)
Adrian K.
Ich habe diese Zeile in den Abschnitt <Verzeichnis> eingefügt, um verbotene Fehler zu vermeiden. Hoffentlich wird die Bearbeitung bald akzeptiert: Erforderlich für alle
Richard
3
Es ist nicht erforderlich, einen abschließenden Schrägstrich im Aliasnamen anzuhängen. Es zwingt den Benutzer, es strikt in die URL einzugeben. In diesem Fall Alias ​​/ myportal1 außer Alias ​​/ myportal1 /. Beachten Sie den fehlenden Schrägstrich.
Gilberto Albino
5

Eine einfachere Alternative besteht darin, einen Softlink aus dem Dokumentenstamm zu erstellen. Wenn der Dokumentstamm beispielsweise "/ var / www" ist (die Standardeinstellung auf den meisten Linux-Systemen), führt der folgende Befehl den Trick aus:

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

Dies funktioniert sofort - Sie müssen den Apache-Server nicht einmal neu laden.

Erel Segal-Halevi
quelle
1

Apache ist ein Benutzer in Ihrem System, genau wie Sie, außer dass er sich nicht anmelden kann. Das bedeutet, dass der Dateizugriff für Apache genauso ist wie für Sie. Wenn Apache also zuerst ein Verzeichnis in / media / Something bereitstellen soll, muss Apache Zugriff haben, um es und seine Dateien lesen zu können.

Zweitens erstellen Sie zum Einrichten einer Site, die dieses Verzeichnis als Heimat verwendet, Site-Dateien wie / etc / apache2 / sites-available / your-Site. Dies ist Teil des sogenannten vhosting. Es gibt zwei verschiedene Arten; eine basierend auf dem Namen (dem Domainnamen) und eine basierend auf der IP. Am häufigsten werden namenbasierte vhosts verwendet. Mehr dazu lesen Sie hier: http://httpd.apache.org/docs/2.2/vhosts/

Jo-Erlend Schinstad
quelle
Vielen Dank für Referenzen. Ich werde mich definitiv damit befassen! :)
Adrian K.
0

So einfach in zwei Zeilen:

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

Nach

Bearbeiten Sie einfach die Datei "phpmyadmin.conf"

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

und ändere es auf 'loool' oder was auch immer :)

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

Nach all dem Nachladen von Apache: D.

service apache2 reload

tadaaa: D ciao :)

ucefkh
quelle