Ситуацията е такава, че във всеки момент имам между 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 и прави имената на файловете на линкове, които да се отварят в нов таб. За да работи според очакванията е необходимо да имаме подходящата организация на хостовете/инсталациите.
- Да ползваме виртуални хостове.
- Името на директорията на инсталацията да е същото като името на хоста.
Виртуалните хостове се настройват с файл в /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