Comment ajouter un répertoire personnalisé, par exemple phpmyadmin?

11

Comme ma connaissance apacheest minime. J'aimerais le laisser grandir pour avoir plus d'expérience avec LAMP. Ma question chaude pour aujourd'hui est:

Comment ajouter un répertoire personnalisé au serveur Web? (par exemple phpmyadmin)?

Mon objectif est de pouvoir créer des adresses personnalisées avec des sites Web personnalisés à l'intérieur. Supposons que j'ai mon répertoire personnalisé à: /media/my/web/portal1et je voudrais le charger lorsque le client appelle

http://localhost/myportal1 at webbrowser. 

Pourriez-vous me donner une liste d'étapes avec quelques mots d'explication?

Adrian K.
la source

Réponses:

26

Modifiez votre fichier de configuration Apache et ajoutez une directive d' alias . Par exemple, utilisons le fichier par défaut .

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

Créez votre alias en ajoutant une section dans la directive 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>

Enregistrez et redémarrez: sudo /etc/init.d/apache2 restart

Ou pour l'autre référence:

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

Et le contenu ...

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>

Enregistrez et redémarrez: sudo /etc/init.d/apache2 restart

Ajoutez d'autres directives dans les directives d' annuaire , telles que

Options Indexes FollowSymLinks 

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

C'est ce que tu cherchais?

Richard
la source
Je pense qu'il suffit de recharger apache après avoir fait ces changements?
Jo-Erlend Schinstad
oh - oui ... merci Jo-Erland Schinstad
Merci Cristopher! C'est exactement ce que je cherchais! :)
Adrian K.
J'ai ajouté cette ligne dans la section <Directory> pour éviter les erreurs interdites, j'espère que la modification sera bientôt acceptée: Exige que tout soit accordé
Richard
3
Il n'est pas nécessaire d'ajouter une barre oblique de fin dans le nom d'alias. Il oblige l'utilisateur à le taper strictement sur l'URL. Dans ce cas, Alias ​​/ myportal1 autre que Alias ​​/ myportal1 /. Notez la barre oblique de fin manquante.
Gilberto Albino
6

Une alternative plus simple consiste à créer un lien logiciel à partir de la racine du document. Par exemple, si la racine du document est "/ var / www" (la valeur par défaut sur la plupart des systèmes Linux), la commande suivante fait l'affaire:

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

Cela fonctionne immédiatement - vous n'avez même pas besoin de recharger le serveur Apache.

Erel Segal-Halevi
la source
1

Apache est un utilisateur de votre système, tout comme vous, sauf qu'il ne peut pas se connecter. Cela signifie que l'accès aux fichiers est exactement le même pour Apache que pour vous. Donc, d'abord, si Apache doit servir un répertoire dans / media / quelque chose, Apache doit avoir accès pour le lire et ses fichiers.

Deuxièmement, pour configurer un site qui utilise ce répertoire comme domicile, vous créez des fichiers de sites, comme / etc / apache2 / sites-available / your-site. Cela fait partie de ce qu'on appelle vhosting. Il existe deux types différents; un basé sur le nom (le nom de domaine) et un basé sur IP. La configuration la plus courante consiste à utiliser des vhosts basés sur le nom. Vous pouvez en savoir plus à ce sujet ici: http://httpd.apache.org/docs/2.2/vhosts/

Jo-Erlend Schinstad
la source
Merci pour les références. Je vais définitivement creuser là-dedans! :)
Adrian K.
0

Si simple en deux lignes:

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

Après

éditez simplement le fichier "phpmyadmin.conf"

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

et changez-le en 'loool' ou autre :)

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

après tout ce rechargement apache: D

service apache2 reload

tadaaa: D ciao :)

ucefkh
la source