Как добавить пользовательский каталог, например, phpmyadmin?

11

Поскольку мои знания о apacheминимальны. Я бы хотел, чтобы он рос, чтобы у меня было больше опыта с LAMP. Мой горячий вопрос на сегодня:

Как добавить пользовательский каталог на веб-сервер? (например, phpmyadmin)?

Моя цель - иметь возможность создавать собственные адреса с помощью пользовательских веб-сайтов. Давайте предположим, что у меня есть мой пользовательский каталог по адресу: /media/my/web/portal1и я хотел бы загрузить его, когда клиент вызывает

http://localhost/myportal1 at webbrowser. 

Не могли бы вы дать мне список шагов с несколькими словами объяснения?

Адриан К.
источник

Ответы:

26

Отредактируйте ваш конфигурационный файл Apache и добавьте директиву Alias . Например, давайте использовать файл по умолчанию .

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

Создайте псевдоним, добавив раздел в директиву 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>

Сохраните и перезапустите: sudo /etc/init.d/apache2 restart

Или для другой ссылки:

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

И содержание ...

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>

Сохраните и перезапустите: sudo /etc/init.d/apache2 restart

Добавьте больше директив в директивах Справочника , таких как

Options Indexes FollowSymLinks 

См. Http://httpd.apache.org/docs/2.2/mod/core.html#directory.

Это то, что вы были после?

Ричард
источник
Я думаю, что достаточно перезагрузить Apache после внесения этих изменений?
Джо-Эрленд Шинстад
о - да ... спасибо Jo-Erland Schinstad
Спасибо, Кристофер! Это именно то, что я искал! :)
Адриан К.
Я добавил эту строку в раздел <Directory> для предотвращения Запрещенных ошибок, надеюсь, что редактирование будет принято в ближайшее время: Требуется все предоставлено
Ричард
3
Нет необходимости добавлять конечный слеш в псевдоним. Это заставляет пользователя строго вводить его по URL. В этом случае Alias ​​/ myportal1 отличается от Alias ​​/ myportal1 /. Заметьте, что отсутствует завершающий слеш.
Гилберто Альбино
6

Более простой альтернативой является создание мягкой ссылки из корня документа. Например, если корневым каталогом документа является «/ var / www» (по умолчанию в большинстве систем Linux), то следующая команда справится с задачей:

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

Это работает сразу - вам даже не нужно перезагружать сервер Apache.

Эрель Сегал-Халеви
источник
1

Apache - это пользователь вашей системы, такой же, как и вы, за исключением того, что он не может войти в систему. Это означает, что доступ к файлам для Apache точно такой же, как и для вас. Итак, во-первых, если Apache должен обслуживать каталог в / media / что-то, то Apache должен иметь доступ для чтения его и его файлов.

Во-вторых, чтобы настроить сайт, который использует этот каталог как домашний, вы создаете файлы сайтов, например / etc / apache2 / sites-available / your-site. Это часть того, что называется vhosting. Есть два разных типа; один на основе имени (доменное имя) и один на основе IP. Наиболее распространенной настройкой является использование основанных на имени vhosts. Вы можете прочитать больше об этом здесь: http://httpd.apache.org/docs/2.2/vhosts/

Джо-Эрленд Шинстад
источник
Спасибо за ссылки. Я определенно буду копаться в этом! :)
Адриан К.
0

Так просто в двух строках:

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

После

просто отредактируйте файл "phpmyadmin.conf"

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

и измените его на «Loool» или что-то еще :)

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

после всего этого перезагрузите apache: D

service apache2 reload

тадааа: D чао :)

ucefkh
источник