#!/bin/usr/env python # -*- coding: utf-8 -*- import sql, config, time class apache_vhost: db = None def __init__(self, db): self.db = db def gen_vhost(self,id_domain): domain = self.db.get_domains_by_id_domain(id_domain)[0] r = "###################\n# "+domain['domain']+"\n####################\n" r += "by adminsite v"+config.version+" at "+time.strftime('%Y-%m-%d %H-%M-%S')+"\n" for s in self.db.get_infos_sites_by_domain(id_domain): if s['valid'] != 'on': continue site = self.db.get_site_by_id_site(int(s['id']))[0] #print site r += "\n" r += "# "+site['site']+'.'+domain['domain']+"\n" r += "\n" r += "\tServerAdmin "+site['serveradmin']+"\n" r += "\tServerName "+site['site']+"."+domain['domain']+"\n" if site['serveralias'] != '': r += "\tServerAlias "+site['serveralias']+"\n"; r += "\tDocumentRoot \""+config.prefix+"/"+domain['domain']+"/"+site['site']+"\"\n" if site['engine'] == "off": r += "\tphp_admin_flag engine "+site['engine']+"\n" else: r += "\n" r += "\tphp_admin_value open_basedir /tmp/:/usr/share/fonts/php/:/proc/loadavg:"+config.prefix+"/"+domain['domain']+"/"+site['site']+"\n"; r += "\tphp_admin_value include_path \""+config.prefix+"/"+domain['domain']+"/includes:.:./include:./includes\"\n"; r += "\tphp_admin_value sendmail_path \"/usr/sbin/sendmail -t -i\"\n"; r += "\tphp_admin_value session.save_path \""+config.prefix+"/"+domain['domain']+"/sessions\"\n"; r += "\n" if site['register_globals'] != 'off' : r += "\tphp_admin_flags register_globals "+site['register_globals']+"\n" if site['magic_quotes_gpc'] != 'off' : r += "\tphp_admin_flag magic_quotes_gpc "+site['magic_quotes_gpc']+"\n" if site['short_open_tag'] != 'off' : r += "\tphp_admin_flag short_open_tag "+site['register_globals']+"\n" if site['disable_functions'] != '' : r += "\tphp_admin_value disable_functions \""+site['disable_functions']+"\"\n" if site['disable_classes'] != '' : r += "\tphp_admin_value disable_classes \""+site['disable_classes']+"\"\n" if site['max_execution_time'] != 30 : r += "\tphp_admin_value max_execution_time \""+str(site['max_execution_time'])+"\"\n" if site['max_input_time'] != 60 : r += "\tphp_admin_value max_input_time \""+str(site['max_input_time'])+"\"\n" if site['memory_limit'] != 128 : r += "\tphp_admin_value memory_limit \""+str(site['memory_limit'])+"\"\n" if site['post_max_size'] != 8 : r += "\tphp_admin_value post_max_size \""+str(site['post_max_size'])+"\"\n" if site['file_uploads'] != 'on' : r += "\tphp_admin_flag file_uploads "+site['file_uploads']+"\n" if site['upload_max_filesize'] != 2 : r += "\tphp_admin_value upload_max_filesize \""+str(site['upload_max_filesize'])+"\"\n" if site['display_errors'] != 'off' : r += "\tphp_admin_flag display_errors "+site['display_errors']+"\n" if site['allow_url_fopen'] != 'on' : r += "\tphp_admin_flag allow_url_fopen "+site['allow_url_fopen']+"\n" if site['options_all'] != 'off' or site['options_execcgi'] != 'off' or site['options_followsymlinks'] != 'off' or site['options_includes'] != 'off' or site['options_includesnoexec'] != 'off' or site['options_indexes'] != 'off' or site['options_multiviews'] != 'off': options = 1 else: options = 0 if options or site['allowoverride'] != 'off' or site['options1'] != '': r += "\n" r += "\t\n"; if options: r += "\t\tOptions "; if site['options_all'] != 'off': r += "All "; if site['options_execcgi'] != 'off': r += "ExecCGI "; if site['options_followsymlinks'] != 'off': r += "FollowSymLinks "; if site['options_includes'] != 'off': r += "Includes "; if site['options_includesnoexec'] != 'off': r += "IncludesNOEXEC "; if site['options_indexes'] != 'off': r += "Indexes "; if site['options_multiviews'] != 'off': r += "MultiViews "; r += "\n"; if site['allowoverride'] != 'off': r += "\t\tAllowOverride All\n"; if site['options1'] != '': r += self.tabu(site['options1'],"\t\t"); r += "\t\n"; if site['options2'] != '': r += "\n".this.tabu(site['options2'],"\t"); r += "\n"; r += "\tErrorLog \""+config.prefix+"/"+domain['domain']+"/logs/"+site['site']+"."+domain['domain']+"-error.log\"\n"; r += "\tCustomLog \""+config.prefix+"/"+domain['domain']+"/logs/"+site['site']+"."+domain['domain']+"-access.log\" combined\n"; r += "\n" return r def tabu(self, text, tab): #fixme return text if __name__ == "__main__": db = sql.create_fake_data() x = apache_vhost(db) print x.gen_vhost(1)