Блок с линкове на локалните инсталации

Ситуацията е такава, че във всеки момент имам между 10 и 30 инсталации /проекта/ инсталирани на локалната машина. И искам да имам удобен начин да виждам линкове към тях без да ги вкарвам всичките букмарковете на браузъра. Те не са статични - постоянно изтривам и правя нови - за тест най-често.
Затова използвам една инсталация на Друпал на localhost като отправна точка, а също и като система за водене на бележки понякога. Тя има линк в букмарк бара на компютъра и в 9 от 10 часа примерно стои заредена в първия таб на браузъра.
В тази инсталация имам блок с "Text format: PHP" със следния снипет:

<?php
$path = '/var/www/vhosts';
$dir = opendir($path);
while ($dir && ($file = readdir($dir)) !== false) {
  if ($file != "." && $file != "..") {
    $files[] = $file;
  }
}
 
closedir($dir);
 
sort($files);
 
foreach ($files AS $file) {
  print l($file, 'http://' . $file, array('attributes' => array('target' => '_blank')));
  print '<br>';
}
?>

В кода няма нищо сложно - чете директорията vhosts и прави имената на файловете на линкове, които да се отварят в нов таб. За да работи според очакванията е необходимо да имаме подходящата организация на хостовете/инсталациите.

  1. Да ползваме виртуални хостове.
  2. Името на директорията на инсталацията да е същото като името на хоста.

Виртуалните хостове се настройват с файл в /etc/apache2/sites-available/ например oa.conf с примерно съдържание

<VirtualHost *:80>
        ServerName openatrium.4740
        DocumentRoot "/var/www/vhosts/openatrium.4740"
        <Directory "/var/www/vhosts/openatrium.4740">
                Options Includes FollowSymLinks
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
 
        Include drupal.conf
        Include php53.conf
</VirtualHost>

и се активират като им се направи симлинк в /etc/apache2/sites-enabled/ след което се рестартира уеб сървъра за да прочете новите конфигурационни файлове.

Съвпадението което ни трябва е на 2,3 и 4-и ред от горния код: ServerName, след последната / на DocumentRoot и на Directory.

Задължително добавяме в /etc/hosts openatrium.4740 да сочи към нашето IP, ако е локална машина то е 127.0.0.1

127.0.0.1     openatrium.4740

Category: