Как я могу создать apache псевдоним каталога для каждого приусадебного участка без жесткого кодирования их в файлах conf? - PullRequest
0 голосов
/ 07 января 2020

В конце прошлого года я опубликовал вопрос в стеке , чтобы помочь запустить мой псевдоним каталога. Я эффективно пытался реплицировать производственную среду на своем локальном компьютере, используя 1 домашний сайт для каждого клиента с различными настройками проектов на каждом сайте, доступ к которым осуществлялся через псевдоним каталога, который я бы жестко запрограммировал в следующих файлах conf:

vagrant@homestead:$ ls -la /etc/apache2/sites-enabled
total 20
drwxr-xr-x 2 root root 4096 Sep 28 03:30 .
drwxr-xr-x 8 root root 4096 Sep 28 03:14 ..
lrwxrwxrwx 1 root root   59 Sep 28 03:14 homestead.client1.com.conf -> /etc/apache2/sites-available/homestead.client1.com.conf
lrwxrwxrwx 1 root root   63 Sep 28 03:14 homestead.client1.com-ssl.conf -> /etc/apache2/sites-available/homestead.client1.com-ssl.conf
lrwxrwxrwx 1 root root   54 Sep 28 03:14 homestead.client2.co.uk.conf -> /etc/apache2/sites-available/homestead.client2.co.uk.conf
lrwxrwxrwx 1 root root   58 Sep 28 03:14 homestead.client2.co.uk-ssl.conf -> /etc/apache2/sites-available/homestead.client2.co.uk-ssl.conf
lrwxrwxrwx 1 root root   63 Sep 28 03:14 homestead.client3.com.conf -> /etc/apache2/sites-available/homestead.client3.com.conf
lrwxrwxrwx 1 root root   67 Sep 28 03:14 homestead.client3.com-ssl.conf -> /etc/apache2/sites-available/homestead.client3.com-ssl.conf

пример жестко закодированного псевдонима каталога в /etc/apache2/sites-enabled/homestead.client1.com-ssl.conf:

<IfModule mod_ssl.c>
    <VirtualHost *:443>

        ServerAdmin webmaster@localhost
        ServerName homestead.client1.com
        ServerAlias www.homestead.client1.com
        DocumentRoot /srv/www/vhosts/homestead.client1.com/public


        <Directory /srv/www/vhosts/homestead.client1.com/public>
            AllowOverride All
            Require all granted
        </Directory>

        Alias /project-one /srv/www/vhosts/homestead.client1.com/project-one/public
        <Directory "/srv/www/vhosts/homestead.client1.com/project-one/public">
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
            Require all granted
        </Directory>

// more code below in the conf file

С тех пор я столкнулся с неприятной проблемой. Каждый раз, когда приходит новый клиент, мне нужно создать новый сайт на ферме. Это означает, что нужно снова запустить vagrant --provision, в свою очередь стирая все псевдонимы каталогов, которые я создал в каждом из файлов conf. В конечном счете мне пришлось вести запись в другом месте каждого нового псевдонима каталога, а затем (когда требуется новый сайт, добавлен, и я запустил vagrant --provision) go обратно в каждый файл конфигурации, чтобы вставить их все снова - далеко от идеала!

Итак, вопрос снова заключается в том, как я могу создать apache псевдоним каталога для каждого приусадебного участка без жесткого кодирования их в файлах conf? Может быть через homestead.yaml или Vagrantfile?

...