| 
		 mySQL vhosts 
		 
		Това е прост трик да накарате lighttpd да използва информация за vhosts от mySQL база данни. (Този трик е приложим за всякакъв вид бази данни и динамична конфигурация за lighttpd)
  Ще използвам функцията include_shell на lighttpd Тази функция изпълнява външна команда и "взима" изхода от командата като конфигурация за lighttpd
  За целта добавете в lighttpd.conf:
 
 | include_shell "/etc/lighttpd/show_user_conf.php" |  
  В най-общ смисъл ще направим един php скрипт който ще чете информация от нашата база данни и ще сформира vhosts за lighttpd
  Ето и примерен show_user_conf.php (chmod 755 преди да го пробвате ;')
 
    	#!/usr/bin/php <? $MYSQL_HOST = "localhost"; $MYSQL_USER = "db_user"; $MYSQL_PASS = "db_password"; $MYSQ_DB      = "db";
  echo "### VHOSTS ###\n\n";
  $mysql = mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS); mysql_select_db($MYSQL_DB); $q = "SELECT * FROM vhosts_table ..."; // каквото ви душа иска $result = mysql_query($q, $mysql); while ($row = mysql_fetch_object($result)) {    echo '$HTTP["host"] == "' . $row->sub_domin . "." . $row->domain . '" {' . "\n";    echo '   server.document-roow = "' . $row->doc_root . '"' . "\n";    echo '   accesslog.filename   = "' . $row->access_log . '"' . "\n";    ... // добавете всичко което ви е нужно за съответния vhost    ... // ... и не забравяйте че можете да вземете инфо-то от DB-то :P    echo '}' . "\n"; }
  ?>  	 |         Не е ли лесно ?;')
  Единствения недостатък на това решение е че трябва да рестартирате lighttpd когато искате промените да влязат в сила... е ... никой не е перфектен ;') Пък и ако се намери начин lighttpd да си презарежда конфигурацията ще бъде просто супер :'P
 
 
  Грешки, Кръпки и Предложения
  Изпратете ми E-Mail: drJeckyll@Jeckyll.net
 
  
 
 
 
напиши нов коментар
 
 
		 |