All pastes #500926 Raw Edit

Unnamed

public php v1 · immutable
·published 2007-05-21 20:09 UTC
rendered paste body
#!/usr/bin/php5-cgi -q<?############################################################################################## Info:  Quick Hack for lighttpd to use syscp backend.# Creator: wese [at] gmx [dot] at## Notes: Use on your own risks## Req:  Module - auth#  Module - fastcgi (for php support)## Progress Subject# [ok]  Safemode# [ok]  Open_Basedir# [ok]  Directorylisting# [ok]  htaccess / Directory protection# >  Warning: if lighty is restartet without the required htpasswd files# >  lighty will stop!# [pending] Custom ErrorPages# >  Didnt care about yet.################################################################################################ comment this out if you not want to use the SysCP Backendrequire_once("/var/www/syscp/lib/userdata.inc.php");### $sql['host']  =  "localhost";# $sql['user'] =  "db_user";# $sql['password']= "db_pass";# $sql['db'] =  "db";#mysql_connect($sql['host'], $sql['user'], $sql['password'])or die("Could not connect to MySQL server!");mysql_select_db($sql['db']);############################################################################################## Domain und VHOST Einstellungen#############################################################################################$db_res=mysql_query(" SELECT  `panel_domains`.`domain`        as domain,                 `panel_domains`.`documentroot`  as docroot,                 `panel_domains`.`openbasedir`   as openbasedir,                 `panel_domains`.`safemode`      as safemode,                 `panel_customers`.`guid`        as uid,                 `panel_customers`.`guid`        as gid,                 `panel_customers`.`loginname`   as loginname,                 `panel_domains`.`speciallogfile`as speciallogfile         FROM  `panel_domains`         LEFT JOIN `panel_customers`           ON  `panel_domains`.`customerid`    = `panel_customers`.`customerid`         WHERE `panel_domains`.`deactivated`   = 0           AND `panel_customers`.`deactivated` = 0;");while($db_row=mysql_fetch_assoc($db_res))$syscp_vhosts[] = $db_row;############################################################################################## Syscp Settings#############################################################################################$db_res=mysql_query(" SELECT `panel_settings`.`varname` as varname,                 `panel_settings`.`value` as value         FROM `panel_settings`;");while($syscp_settings_row=mysql_fetch_assoc($db_res))$syscp_settings[$syscp_settings_row["varname"]] = $syscp_settings_row["value"];#############################################################################################foreach( $syscp_vhosts as $vhost ){echo "\$HTTP[\"host\"]==\""     . $vhost["domain"]                      . "\" {\n";echo "\tserver.name=\""         . $vhost["domain"]                      . "\"\n";echo "\tserver.document-root=\"". $vhost["docroot"]                     . "\"\n";echo "\taccesslog.filename=\""  . $syscp_settings["logfiles_directory"] . $vhost["loginname"] .	(($vhost["speciallogfile"]==1)? ( "-" . $vhost["domain"] ) : "" ) . "-access.log\"\n";echo "\tserver.errorlog=\""     . $syscp_settings["logfiles_directory"] . $vhost["loginname"] .	(($vhost["speciallogfile"]==1)? ( "-" . $vhost["domain"] ) : "" ) . "-error.log\"\n";echo "\n\t## FastCGI-PHP-Settings ##\n\n";echo "\tindex-file.names+=(\"index.php\")\n";echo "\tfastcgi.server=(\n";echo "\t    \".php\"=>(\n";echo "\t        \"localhost\"=>(\n";# Open_Basedir# stolen from cron_task#$_phpappendopenbasedir = (($syscp_settings['phpappendopenbasedir'] != '')? ':' . $syscp_settings['phpappendopenbasedir']: '');$_open_basedir=$vhost["docroot"].$_phpappendopenbasedir;##     ($domain['openbasedir_path'] == '1')# is ignored, due to lack of interesst. FIXME#echo "\t            \"bin-path\"=>\"/usr/bin/php5-cgi -d open_basedir=". $_open_basedir ." -d safe_mode=".(($vhost["safemode"])?"On":"Off")." -c /etc/php5/cgi/php.ini\",\n";echo "\t            \"socket\"=>\"/tmp/php5-socket\",\n";echo "\t            \"max-procs\"=>4,\n";echo "\t            \"docroot\"=>\"". $vhost["docroot"] ."\",\n";  # ++ CHECKMEecho "\t            \"check-local\"=>\"enable\",\n";   # ++ CHECKMEecho "\t            \"bin-environment\"=>( \n";echo "\t                \"PHP_FCGI_CHILDREN\"=>\"4\",\n";echo "\t                \"PHP_FCGI_MAX_REQUESTS\"=>\"10000\",\n";echo "\t                \"TMP\"=>\"/tmp\",\n";echo "\t                \"TEMP\"=>\"/tmp\"\n";echo "\t            ),\n";echo "\t            \"bin-copy-environment\"=>(\n";echo "\t                \"PATH\",\n";echo "\t                \"SHELL\",\n";echo "\t                \"USER\"\n";echo "\t            ),\n";echo "\t            \"broken-scriptfilename\"=>\"enable\"\n";echo "\t        )\n";echo "\t    )\n";echo "\t)\n";############################################################################################## .htaccess / Directory Protection#############################################################################################$db_res=mysql_query(" SELECT  `panel_htpasswds`.`id`          as id,    `panel_htpasswds`.`customerid`  as customerid,    `panel_htpasswds`.`path`        as path,    `panel_htpasswds`.`username`    as username         FROM `panel_htpasswds`   WHERE `panel_htpasswds`.`path` LIKE '". $vhost["docroot"] ."%';");if( mysql_num_rows($db_res)>0 ) {	unset( $syscp_htaccess );		while($syscp_htaccess_row = mysql_fetch_assoc($db_res))		$syscp_htaccess[] = $syscp_htaccess_row;		foreach ( $syscp_htaccess as $syscp_diroptions ) {		$htpasswd_filename =  $syscp_settings["apacheconf_directory"] .'htpasswd/' .		$syscp_diroptions['customerid']  .'-'.		$syscp_diroptions['id']   .'-'.		md5($syscp_diroptions['path'])  .'.htpasswd';				$HTTP_url = preg_replace("/^" . str_replace("/","\/",$vhost["docroot"]) . "/" , "" , $syscp_diroptions["path"] );		echo "\$HTTP[\"url\"] =~ \"^/" . $HTTP_url ."\" { \n";		echo "auth.backend = \"htpasswd\"\n";		echo "auth.backend.htpasswd.userfile = \"" . $htpasswd_filename   ."\"   \n";		echo "auth.require = ( \"". $syscp_diroptions['path'] ."\" =>\n";		echo "                 (\n";		echo "                   \"method\"  => \"digest\",\n";		echo "                   \"realm\"   => \"Protected\",\n";		echo "                   \"require\" => \"valid-user\"\n";		echo "                 )\n";		echo "               )\n";		echo "\t}\n";} #end if num_rows	} #end .htaccess-foreach############################################################################################## .htaccess / Directory Listing#############################################################################################$db_res=mysql_query(" SELECT  `panel_htaccess`.`id`          as id,    `panel_htaccess`.`customerid`  as customerid,    `panel_htaccess`.`path`        as path         FROM `panel_htaccess`   WHERE `panel_htaccess`.`path` LIKE '". $vhost["docroot"] ."%';");if( mysql_num_rows($db_res)>0 ) {	unset( $syscp_htaccess );	while($syscp_htaccess_row = mysql_fetch_assoc($db_res))		$syscp_htaccess[] = $syscp_htaccess_row;	$HTTP_url = preg_replace("/^" . str_replace("/","\/",$vhost["docroot"]) . "/" , "" , $syscp_diroptions["path"] );	foreach ( $syscp_htaccess as $syscp_diroptions ) {		echo "\$HTTP[\"url\"] =~ \"^/" . $HTTP_url ."\" { \n";		echo "\tdir-listing.activate = \"enable\"";		echo "}\n";} #end if num_rows	} #end .htaccess-foreach#############################################################################################echo "}\n\n";} #end vhost-foreachmysql_close();?>