首页 > 代码库 > window7配置python3.3 + django + apache24 + mod_wsgi

window7配置python3.3 + django + apache24 + mod_wsgi

window7安装配置python3.3 + django + apache24 + mod_wsgi

1.下载版本的时候要对应

2.apache24 别放系统盘, 不然权限很麻烦

3.django + apache24 + mod_wsgi ,因为是最新版本,所以和网上的那些有点不样,这个地方百度好久

 

安装python3.3:

https://www.python.org/downloads/

增加Path环境变量
C:\Python33;

下载ez_setup.py(这个东东可以让你安装python的插件很方便),放到C:\Python33

#!/usr/bin/env python"""Bootstrap setuptools installationTo use setuptools in your package‘s setup.py, include thisfile in the same directory and add this to the top of your setup.py::    from ez_setup import use_setuptools    use_setuptools()To require a specific version of setuptools, set a downloadmirror, or use an alternate download directory, simply supplythe appropriate options to ``use_setuptools()``.This file can also be run as a script to install or upgrade setuptools."""import osimport shutilimport sysimport tempfileimport zipfileimport optparseimport subprocessimport platformimport textwrapimport contextlibfrom distutils import logtry:    from urllib.request import urlopenexcept ImportError:    from urllib2 import urlopentry:    from site import USER_SITEexcept ImportError:    USER_SITE = NoneDEFAULT_VERSION = "7.0"DEFAULT_URL = "https://pypi.python.org/packages/source/s/setuptools/"def _python_cmd(*args):    """    Return True if the command succeeded.    """    args = (sys.executable,) + args    return subprocess.call(args) == 0def _install(archive_filename, install_args=()):    with archive_context(archive_filename):        # installing        log.warn(Installing Setuptools)        if not _python_cmd(setup.py, install, *install_args):            log.warn(Something went wrong during the installation.)            log.warn(See the error message above.)            # exitcode will be 2            return 2def _build_egg(egg, archive_filename, to_dir):    with archive_context(archive_filename):        # building an egg        log.warn(Building a Setuptools egg in %s, to_dir)        _python_cmd(setup.py, -q, bdist_egg, --dist-dir, to_dir)    # returning the result    log.warn(egg)    if not os.path.exists(egg):        raise IOError(Could not build the egg.)class ContextualZipFile(zipfile.ZipFile):    """    Supplement ZipFile class to support context manager for Python 2.6    """    def __enter__(self):        return self    def __exit__(self, type, value, traceback):        self.close()    def __new__(cls, *args, **kwargs):        """        Construct a ZipFile or ContextualZipFile as appropriate        """        if hasattr(zipfile.ZipFile, __exit__):            return zipfile.ZipFile(*args, **kwargs)        return super(ContextualZipFile, cls).__new__(cls)@contextlib.contextmanagerdef archive_context(filename):    # extracting the archive    tmpdir = tempfile.mkdtemp()    log.warn(Extracting in %s, tmpdir)    old_wd = os.getcwd()    try:        os.chdir(tmpdir)        with ContextualZipFile(filename) as archive:            archive.extractall()        # going in the directory        subdir = os.path.join(tmpdir, os.listdir(tmpdir)[0])        os.chdir(subdir)        log.warn(Now working in %s, subdir)        yield    finally:        os.chdir(old_wd)        shutil.rmtree(tmpdir)def _do_download(version, download_base, to_dir, download_delay):    egg = os.path.join(to_dir, setuptools-%s-py%d.%d.egg                       % (version, sys.version_info[0], sys.version_info[1]))    if not os.path.exists(egg):        archive = download_setuptools(version, download_base,                                      to_dir, download_delay)        _build_egg(egg, archive, to_dir)    sys.path.insert(0, egg)    # Remove previously-imported pkg_resources if present (see    # https://bitbucket.org/pypa/setuptools/pull-request/7/ for details).    if pkg_resources in sys.modules:        del sys.modules[pkg_resources]    import setuptools    setuptools.bootstrap_install_from = eggdef use_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,        to_dir=os.curdir, download_delay=15):    to_dir = os.path.abspath(to_dir)    rep_modules = pkg_resources, setuptools    imported = set(sys.modules).intersection(rep_modules)    try:        import pkg_resources    except ImportError:        return _do_download(version, download_base, to_dir, download_delay)    try:        pkg_resources.require("setuptools>=" + version)        return    except pkg_resources.DistributionNotFound:        return _do_download(version, download_base, to_dir, download_delay)    except pkg_resources.VersionConflict as VC_err:        if imported:            msg = textwrap.dedent("""                The required version of setuptools (>={version}) is not available,                and can‘t be installed while this script is running. Please                install a more recent version first, using                ‘easy_install -U setuptools‘.                (Currently using {VC_err.args[0]!r})                """).format(VC_err=VC_err, version=version)            sys.stderr.write(msg)            sys.exit(2)        # otherwise, reload ok        del pkg_resources, sys.modules[pkg_resources]        return _do_download(version, download_base, to_dir, download_delay)def _clean_check(cmd, target):    """    Run the command to download target. If the command fails, clean up before    re-raising the error.    """    try:        subprocess.check_call(cmd)    except subprocess.CalledProcessError:        if os.access(target, os.F_OK):            os.unlink(target)        raisedef download_file_powershell(url, target):    """    Download the file at url to target using Powershell (which will validate    trust). Raise an exception if the command cannot complete.    """    target = os.path.abspath(target)    ps_cmd = (        "[System.Net.WebRequest]::DefaultWebProxy.Credentials = "        "[System.Net.CredentialCache]::DefaultCredentials; "        "(new-object System.Net.WebClient).DownloadFile(%(url)r, %(target)r)"        % vars()    )    cmd = [        powershell,        -Command,        ps_cmd,    ]    _clean_check(cmd, target)def has_powershell():    if platform.system() != Windows:        return False    cmd = [powershell, -Command, echo test]    with open(os.path.devnull, wb) as devnull:        try:            subprocess.check_call(cmd, stdout=devnull, stderr=devnull)        except Exception:            return False    return Truedownload_file_powershell.viable = has_powershelldef download_file_curl(url, target):    cmd = [curl, url, --silent, --output, target]    _clean_check(cmd, target)def has_curl():    cmd = [curl, --version]    with open(os.path.devnull, wb) as devnull:        try:            subprocess.check_call(cmd, stdout=devnull, stderr=devnull)        except Exception:            return False    return Truedownload_file_curl.viable = has_curldef download_file_wget(url, target):    cmd = [wget, url, --quiet, --output-document, target]    _clean_check(cmd, target)def has_wget():    cmd = [wget, --version]    with open(os.path.devnull, wb) as devnull:        try:            subprocess.check_call(cmd, stdout=devnull, stderr=devnull)        except Exception:            return False    return Truedownload_file_wget.viable = has_wgetdef download_file_insecure(url, target):    """    Use Python to download the file, even though it cannot authenticate the    connection.    """    src = urlopen(url)    try:        # Read all the data in one block.        data =http://www.mamicode.com/ src.read()    finally:        src.close()    # Write all the data in one block to avoid creating a partial file.    with open(target, "wb") as dst:        dst.write(data)download_file_insecure.viable = lambda: Truedef get_best_downloader():    downloaders = (        download_file_powershell,        download_file_curl,        download_file_wget,        download_file_insecure,    )    viable_downloaders = (dl for dl in downloaders if dl.viable())    return next(viable_downloaders, None)def download_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,        to_dir=os.curdir, delay=15, downloader_factory=get_best_downloader):    """    Download setuptools from a specified location and return its filename    `version` should be a valid setuptools version number that is available    as an sdist for download under the `download_base` URL (which should end    with a ‘/‘). `to_dir` is the directory where the egg will be downloaded.    `delay` is the number of seconds to pause before an actual download    attempt.    ``downloader_factory`` should be a function taking no arguments and    returning a function for downloading a URL to a target.    """    # making sure we use the absolute path    to_dir = os.path.abspath(to_dir)    zip_name = "setuptools-%s.zip" % version    url = download_base + zip_name    saveto = os.path.join(to_dir, zip_name)    if not os.path.exists(saveto):  # Avoid repeated downloads        log.warn("Downloading %s", url)        downloader = downloader_factory()        downloader(url, saveto)    return os.path.realpath(saveto)def _build_install_args(options):    """    Build the arguments to ‘python setup.py install‘ on the setuptools package    """    return [--user] if options.user_install else []def _parse_args():    """    Parse the command line for options    """    parser = optparse.OptionParser()    parser.add_option(        --user, dest=user_install, action=store_true, default=False,        help=install in user site package (requires Python 2.6 or later))    parser.add_option(        --download-base, dest=download_base, metavar="URL",        default=DEFAULT_URL,        help=alternative URL from where to download the setuptools package)    parser.add_option(        --insecure, dest=downloader_factory, action=store_const,        const=lambda: download_file_insecure, default=get_best_downloader,        help=Use internal, non-validating downloader    )    parser.add_option(        --version, help="Specify which version to download",        default=DEFAULT_VERSION,    )    options, args = parser.parse_args()    # positional arguments are ignored    return optionsdef main():    """Install or upgrade setuptools and EasyInstall"""    options = _parse_args()    archive = download_setuptools(        version=options.version,        download_base=options.download_base,        downloader_factory=options.downloader_factory,    )    return _install(archive, _build_install_args(options))if __name__ == __main__:    sys.exit(main())
View Code

然后cmd运行 python ez_setup.py

安装django,
cmd运行 easy_install django

查看django是否安装成功
import django
print(django.VERSION)

增加Path环境变量:
C:\Python33\Lib\site-packages\django-1.7.1-py3.3.egg\django\bin;
C:\Python33\Scripts;

新建django项目
打开cmd
d:
django-admin startproject python_web
cd python_web
python manage.py runserver (或者python manage.py runserver 8080)默认端口8000
在浏览器中打开页面 localhost:8080


下载apache24
http://www.apachehaus.com/cgi-bin/download.plx
加压到D:\Program Files\
增加Path环境变量:
D:\Program Files\Apache24\bin;
修改D:\Program Files\Apache24\conf\httpd.conf,
查找Define SRVROOT,改为 Define SRVROOT "D:/Program Files/Apache24"
查找Listen,改为 Listen 8087
打开cmd, httpd.exe
如果出现端口问题,
在运行netstat -a -o,找点端口对应的PID,去入任务管理器中结束它
在浏览器中打开页面 localhost:8087

下载mod_wsgi
http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
注意要找对应python和apache版本,mod_wsgi-3.5.ap24.win-amd64-py3.3
解压后把 mod_wsgi.so 拷贝到 D:\Program Files\Apache24\modules
修改D:\Program Files\Apache24\conf\httpd.conf
增加行 LoadModule wsgi_module modules/mod_wsgi.so
增加行
WSGIScriptAlias /HelloPython "D:/python_web/apache/HelloPythonWeb.wsgi"
<Directory />
Require all denied
Require all granted
</Directory>
新建文件 D:/python_web/apache/HelloPythonWeb.wsgi

def application(environ,start_response):    start_response("200 OK",[(content-type,"text/html")])    return [<html><body>Hello world!</body></html>]
View Code

在浏览器中打开页面 localhost:8087/HelloPython

修改 D:\Program Files\Apache24\conf\httpd.conf
增加行 Include "D:/python_web/apache/apache_django_wsgi.conf"
新建文件 D:/python_web/apache/apache_django_wsgi.conf

# 设置django admin静态资源的访问路径  Alias /python_web/static/ "D:/python_web/static/"  <Directory "D:/python_web/static">      Require all denied    Require all granted</Directory>  # 设置root,不要使用"^/"  WSGIScriptAlias /python_web "D:/python_web/apache/django_python_web.wsgi"  WSGIPythonPath D:/python_web/apacheWSGIPythonPath D:/python_web/python_web<Directory "D:/python_web/apache">      Require all denied    Require all granted</Directory>  <Directory "D:/python_web/python_web">      Require all denied    Require all granted</Directory>
View Code

新建文件 D:/python_web/apache/django_python_web.wsgi

import os, sysimport django.core.handlers.wsgiapache_configuration = os.path.dirname(__file__)project = os.path.dirname(apache_configuration)  workspace = os.path.dirname(project)  work_path = "D:/python_web"if work_path not in sys.path:    sys.path.append(work_path)    if project not in sys.path:    sys.path.append(project)#os.environ[‘DJANGO_SETTINGS_MODULE‘] = ‘python_web.settings ‘os.environ.setdefault("DJANGO_SETTINGS_MODULE", "python_web.settings")#import django.core.handlers.wsgi  #application = django.core.handlers.wsgi.WSGIHandler()from django.core.wsgi import get_wsgi_applicationapplication = get_wsgi_application()
View Code

修改 D:\python_web\python_web\settings.py

增加行
#os.path.dirname(__file__)`` 将会获取自身所在的文件,即settings.py 所在的目录。
TEMPLATE_DIRS = (
os.path.join(os.path.dirname(__file__), ‘templates‘).replace(‘\\‘,‘/‘),
)

增加 D:\python_web\python_web\views.py

from django.template.loader import get_templatefrom django.template import Contextfrom django.http import HttpResponseimport datetimedef index(request):    now = datetime.datetime.now()    t = get_template(index.html)    html = t.render(Context({        current_date: now,        template_name:template_name.html        }))    return HttpResponse(html)
View Code

修改 D:\python_web\python_web\urls.py

from django.conf.urls import patterns, include, urlfrom django.contrib import adminimport python_web.views as viewurlpatterns = patterns(‘‘,    # Examples:    # url(r‘^$‘, ‘python_web.views.home‘, name=‘home‘),    # url(r‘^blog/‘, include(‘blog.urls‘)),    url(r^$, view.index),)
View Code

增加templates文件夹和文件

 

最后的文件路径如图:


apache最后的内容 D:\Program Files\Apache24\conf\httpd.conf

## This is the main Apache HTTP server configuration file.  It contains the# configuration directives that give the server its instructions.# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.# In particular, see # <URL:http://httpd.apache.org/docs/2.4/mod/directives.html># for a discussion of each configuration directive.## Do NOT simply read the instructions in here without understanding# what they do.  They‘re here only as hints or reminders.  If you are unsure# consult the online docs. You have been warned.  ## Configuration and logfile names: If the filenames you specify for many# of the server‘s control files begin with "/" (or "drive:/" for Win32), the# server will use that explicit path.  If the filenames do *not* begin# with "/", the value of ServerRoot is prepended -- so "logs/access_log"# with ServerRoot set to "/usr/local/apache2" will be interpreted by the# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log" # will be interpreted as ‘/logs/access_log‘.## NOTE: Where filenames are specified, you must use forward slashes# instead of backslashes (e.g., "c:/apache" instead of "c:\apache").# If a drive letter is omitted, the drive on which httpd.exe is located# will be used by default.  It is recommended that you always supply# an explicit drive letter in absolute paths to avoid confusion.## ServerRoot: The top of the directory tree under which the server‘s# configuration, error, and log files are kept.## Do not add a slash at the end of the directory path.  If you point# ServerRoot at a non-local disk, be sure to specify a local disk on the# Mutex directive, if file-based mutexes are used.  If you wish to share the# same ServerRoot for multiple httpd daemons, you will need to change at# least PidFile.#Define SRVROOT "D:/Program Files/Apache24"ServerRoot "${SRVROOT}"## Mutex: Allows you to set the mutex mechanism and mutex file directory# for individual mutexes, or change the global defaults## Uncomment and change the directory if mutexes are file-based and the default# mutex file directory is not on a local disk or is not appropriate for some# other reason.## Mutex default:logs## Listen: Allows you to bind Apache to specific IP addresses and/or# ports, instead of the default. See also the <VirtualHost># directive.## Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses.##Listen 12.34.56.78:80Listen 8087## Dynamic Shared Object (DSO) Support## To be able to use the functionality of a module which was built as a DSO you# have to place corresponding `LoadModule‘ lines at this location so the# directives contained in it are actually available _before_ they are used.# Statically compiled modules (those listed by `httpd -l‘) do not need# to be loaded here.## Example:# LoadModule foo_module modules/mod_foo.so##LoadModule access_compat_module modules/mod_access_compat.soLoadModule actions_module modules/mod_actions.soLoadModule alias_module modules/mod_alias.soLoadModule allowmethods_module modules/mod_allowmethods.soLoadModule asis_module modules/mod_asis.soLoadModule auth_basic_module modules/mod_auth_basic.so#LoadModule auth_digest_module modules/mod_auth_digest.so#LoadModule auth_form_module modules/mod_auth_form.so#LoadModule authn_anon_module modules/mod_authn_anon.soLoadModule authn_core_module modules/mod_authn_core.so#LoadModule authn_dbd_module modules/mod_authn_dbd.so#LoadModule authn_dbm_module modules/mod_authn_dbm.soLoadModule authn_file_module modules/mod_authn_file.so#LoadModule authn_socache_module modules/mod_authn_socache.so#LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so#LoadModule authnz_ldap_module modules/mod_authnz_ldap.soLoadModule authz_core_module modules/mod_authz_core.so#LoadModule authz_dbd_module modules/mod_authz_dbd.so#LoadModule authz_dbm_module modules/mod_authz_dbm.soLoadModule authz_groupfile_module modules/mod_authz_groupfile.soLoadModule authz_host_module modules/mod_authz_host.so#LoadModule authz_owner_module modules/mod_authz_owner.soLoadModule authz_user_module modules/mod_authz_user.soLoadModule autoindex_module modules/mod_autoindex.so#LoadModule buffer_module modules/mod_buffer.so#LoadModule cache_module modules/mod_cache.so#LoadModule cache_disk_module modules/mod_cache_disk.so#LoadModule cache_socache_module modules/mod_cache_socache.so#LoadModule cern_meta_module modules/mod_cern_meta.soLoadModule cgi_module modules/mod_cgi.so#LoadModule charset_lite_module modules/mod_charset_lite.so#LoadModule data_module modules/mod_data.so#LoadModule dav_module modules/mod_dav.so#LoadModule dav_fs_module modules/mod_dav_fs.so#LoadModule dav_lock_module modules/mod_dav_lock.so#LoadModule dbd_module modules/mod_dbd.so#LoadModule deflate_module modules/mod_deflate.soLoadModule dir_module modules/mod_dir.so#LoadModule dumpio_module modules/mod_dumpio.soLoadModule env_module modules/mod_env.so#LoadModule expires_module modules/mod_expires.so#LoadModule ext_filter_module modules/mod_ext_filter.so#LoadModule file_cache_module modules/mod_file_cache.so#LoadModule filter_module modules/mod_filter.so#LoadModule headers_module modules/mod_headers.so#LoadModule heartbeat_module modules/mod_heartbeat.so#LoadModule heartmonitor_module modules/mod_heartmonitor.so#LoadModule ident_module modules/mod_ident.so#LoadModule imagemap_module modules/mod_imagemap.soLoadModule include_module modules/mod_include.so#LoadModule info_module modules/mod_info.soLoadModule isapi_module modules/mod_isapi.so#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so#LoadModule ldap_module modules/mod_ldap.so#LoadModule logio_module modules/mod_logio.soLoadModule log_config_module modules/mod_log_config.so#LoadModule log_debug_module modules/mod_log_debug.so#LoadModule log_forensic_module modules/mod_log_forensic.so#LoadModule lua_module modules/mod_lua.so#LoadModule macro_module modules/mod_macro.soLoadModule mime_module modules/mod_mime.so#LoadModule mime_magic_module modules/mod_mime_magic.soLoadModule negotiation_module modules/mod_negotiation.so#LoadModule proxy_module modules/mod_proxy.so#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so#LoadModule proxy_connect_module modules/mod_proxy_connect.so#LoadModule proxy_express_module modules/mod_proxy_express.so#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so#LoadModule proxy_html_module modules/mod_proxy_html.so#LoadModule proxy_http_module modules/mod_proxy_http.so#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so#LoadModule ratelimit_module modules/mod_ratelimit.so#LoadModule reflector_module modules/mod_reflector.so#LoadModule remoteip_module modules/mod_remoteip.so#LoadModule request_module modules/mod_request.so#LoadModule reqtimeout_module modules/mod_reqtimeout.so#LoadModule rewrite_module modules/mod_rewrite.so#LoadModule sed_module modules/mod_sed.so#LoadModule session_module modules/mod_session.so#LoadModule session_cookie_module modules/mod_session_cookie.so#LoadModule session_crypto_module modules/mod_session_crypto.so#LoadModule session_dbd_module modules/mod_session_dbd.soLoadModule setenvif_module modules/mod_setenvif.so#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so#LoadModule socache_dbm_module modules/mod_socache_dbm.so#LoadModule socache_memcache_module modules/mod_socache_memcache.soLoadModule socache_shmcb_module modules/mod_socache_shmcb.so#LoadModule speling_module modules/mod_speling.soLoadModule ssl_module modules/mod_ssl.so#LoadModule status_module modules/mod_status.so#LoadModule substitute_module modules/mod_substitute.so#LoadModule unique_id_module modules/mod_unique_id.so#LoadModule userdir_module modules/mod_userdir.so#LoadModule usertrack_module modules/mod_usertrack.so#LoadModule version_module modules/mod_version.so#LoadModule vhost_alias_module modules/mod_vhost_alias.so#LoadModule watchdog_module modules/mod_watchdog.so#LoadModule xml2enc_module modules/mod_xml2enc.soLoadModule wsgi_module modules/mod_wsgi.so <IfModule unixd_module>## If you wish httpd to run as a different user or group, you must run# httpd as root initially and it will switch.  ## User/Group: The name (or #number) of the user/group to run httpd as.# It is usually good practice to create a dedicated user and group for# running httpd, as with most system services.#User daemonGroup daemon</IfModule># ‘Main‘ server configuration## The directives in this section set up the values used by the ‘main‘# server, which responds to any requests that aren‘t handled by a# <VirtualHost> definition.  These values also provide defaults for# any <VirtualHost> containers you may define later in the file.## All of these directives may appear inside <VirtualHost> containers,# in which case these default settings will be overridden for the# virtual host being defined.### ServerAdmin: Your address, where problems with the server should be# e-mailed.  This address appears on some server-generated pages, such# as error documents.  e.g. admin@your-domain.com#ServerAdmin admin@example.com## ServerName gives the name and port that the server uses to identify itself.# This can often be determined automatically, but we recommend you specify# it explicitly to prevent problems during startup.## If your host doesn‘t have a registered DNS name, enter its IP address here.#ServerName localhost:80## Deny access to the entirety of your server‘s filesystem. You must# explicitly permit access to web content directories in other # <Directory> blocks below.#<Directory />    AllowOverride none    Require all denied</Directory>## Note that from this point forward you must specifically allow# particular features to be enabled - so if something‘s not working as# you might expect, make sure that you have specifically enabled it# below.### DocumentRoot: The directory out of which you will serve your# documents. By default, all requests are taken from this directory, but# symbolic links and aliases may be used to point to other locations.#DocumentRoot "${SRVROOT}/htdocs"<Directory "${SRVROOT}/htdocs">    #    # Possible values for the Options directive are "None", "All",    # or any combination of:    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews    #    # Note that "MultiViews" must be named *explicitly* --- "Options All"    # doesn‘t give it to you.    #    # The Options directive is both complicated and important.  Please see    # http://httpd.apache.org/docs/2.4/mod/core.html#options    # for more information.    #    Options Indexes FollowSymLinks    #    # AllowOverride controls what directives may be placed in .htaccess files.    # It can be "All", "None", or any combination of the keywords:    #   Options FileInfo AuthConfig Limit    #    AllowOverride None    #    # Controls who can get stuff from this server.    #    Require all granted</Directory>WSGIScriptAlias /HelloPython "D:/python_web/apache/HelloPythonWeb.wsgi" <Directory />    Require all denied    Require all granted</Directory>Include "D:/python_web/apache/apache_django_wsgi.conf"## DirectoryIndex: sets the file that Apache will serve if a directory# is requested.#<IfModule dir_module>    DirectoryIndex index.html</IfModule>## The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. #<Files ".ht*">    Require all denied</Files>## ErrorLog: The location of the error log file.# If you do not specify an ErrorLog directive within a <VirtualHost># container, error messages relating to that virtual host will be# logged here.  If you *do* define an error logfile for a <VirtualHost># container, that host‘s errors will be logged there and not here.#ErrorLog "logs/error.log"## LogLevel: Control the number of messages logged to the error_log.# Possible values include: debug, info, notice, warn, error, crit,# alert, emerg.#LogLevel warn<IfModule log_config_module>    #    # The following directives define some format nicknames for use with    # a CustomLog directive (see below).    #    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined    LogFormat "%h %l %u %t \"%r\" %>s %b" common    <IfModule logio_module>      # You need to enable mod_logio.c to use %I and %O      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio    </IfModule>    #    # The location and format of the access logfile (Common Logfile Format).    # If you do not define any access logfiles within a <VirtualHost>    # container, they will be logged here.  Contrariwise, if you *do*    # define per-<VirtualHost> access logfiles, transactions will be    # logged therein and *not* in this file.    #    CustomLog "logs/access.log" common    #    # If you prefer a logfile with access, agent, and referer information    # (Combined Logfile Format) you can use the following directive.    #    #CustomLog "logs/access.log" combined</IfModule><IfModule alias_module>    #    # Redirect: Allows you to tell clients about documents that used to     # exist in your server‘s namespace, but do not anymore. The client     # will make a new request for the document at its new location.    # Example:    # Redirect permanent /foo http://www.example.com/bar    #    # Alias: Maps web paths into filesystem paths and is used to    # access content that does not live under the DocumentRoot.    # Example:    # Alias /webpath /full/filesystem/path    #    # If you include a trailing / on /webpath then the server will    # require it to be present in the URL.  You will also likely    # need to provide a <Directory> section to allow access to    # the filesystem path.    #    # ScriptAlias: This controls which directories contain server scripts.     # ScriptAliases are essentially the same as Aliases, except that    # documents in the target directory are treated as applications and    # run by the server when requested rather than as documents sent to the    # client.  The same rules about trailing "/" apply to ScriptAlias    # directives as to Alias.    #    ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"</IfModule><IfModule cgid_module>    #    # ScriptSock: On threaded servers, designate the path to the UNIX    # socket used to communicate with the CGI daemon of mod_cgid.    #    #Scriptsock logs/cgisock</IfModule>## "${SRVROOT}/cgi-bin" should be changed to whatever your ScriptAliased# CGI directory exists, if you have that configured.#<Directory "${SRVROOT}/cgi-bin">    AllowOverride None    Options None    Require all granted</Directory><IfModule mime_module>    #    # TypesConfig points to the file containing the list of mappings from    # filename extension to MIME-type.    #    TypesConfig conf/mime.types    #    # AddType allows you to add to or override the MIME configuration    # file specified in TypesConfig for specific file types.    #    #AddType application/x-gzip .tgz    #    # AddEncoding allows you to have certain browsers uncompress    # information on the fly. Note: Not all browsers support this.    #    #AddEncoding x-compress .Z    #AddEncoding x-gzip .gz .tgz    #    # If the AddEncoding directives above are commented-out, then you    # probably should define those extensions to indicate media types:    #    AddType application/x-compress .Z    AddType application/x-gzip .gz .tgz    #    # AddHandler allows you to map certain file extensions to "handlers":    # actions unrelated to filetype. These can be either built into the server    # or added with the Action directive (see below)    #    # To use CGI scripts outside of ScriptAliased directories:    # (You will also need to add "ExecCGI" to the "Options" directive.)    #    #AddHandler cgi-script .cgi    # For type maps (negotiated resources):    #AddHandler type-map var    #    # Filters allow you to process content before it is sent to the client.    #    # To parse .shtml files for server-side includes (SSI):    # (You will also need to add "Includes" to the "Options" directive.)    #    #AddType text/html .shtml    #AddOutputFilter INCLUDES .shtml</IfModule>## The mod_mime_magic module allows the server to use various hints from the# contents of the file itself to determine its type.  The MIMEMagicFile# directive tells the module where the hint definitions are located.##MIMEMagicFile conf/magic## Customizable error responses come in three flavors:# 1) plain text 2) local redirects 3) external redirects## Some examples:#ErrorDocument 500 "The server made a boo boo."#ErrorDocument 404 /missing.html#ErrorDocument 404 "/cgi-bin/missing_handler.pl"#ErrorDocument 402 http://www.example.com/subscription_info.html### MaxRanges: Maximum number of Ranges in a request before# returning the entire resource, or one of the special# values ‘default‘, ‘none‘ or ‘unlimited‘.# Default setting is to accept 200 Ranges.#MaxRanges unlimited## EnableMMAP and EnableSendfile: On systems that support it, # memory-mapping or the sendfile syscall may be used to deliver# files.  This usually improves server performance, but must# be turned off when serving from networked-mounted # filesystems or if support for these functions is otherwise# broken on your system.# Defaults: EnableMMAP On, EnableSendfile Off##EnableMMAP off#EnableSendfile on#AcceptFilter http none#AcceptFilter https none# Supplemental configuration## The configuration files in the conf/extra/ directory can be # included to add extra features or to modify the default configuration of # the server, or you may simply copy their contents here and change as # necessary.# Server-pool management (MPM specific)#Include conf/extra/httpd-mpm.conf# Multi-language error messages#Include conf/extra/httpd-multilang-errordoc.conf# Fancy directory listings#Include conf/extra/httpd-autoindex.conf# Language settings#Include conf/extra/httpd-languages.conf# User home directories#Include conf/extra/httpd-userdir.conf# Real-time info on requests and configuration#Include conf/extra/httpd-info.conf# Virtual hostsInclude conf/extra/httpd-vhosts.conf# Local access to the Apache HTTP Server Manual#Include conf/extra/httpd-manual.conf# Distributed authoring and versioning (WebDAV)#Include conf/extra/httpd-dav.conf# Various default settings#Include conf/extra/httpd-default.conf# Configure mod_proxy_html to understand HTML4/XHTML1<IfModule proxy_html_module>Include conf/extra/proxy-html.conf</IfModule># Secure (SSL/TLS) connections# Note: The following must must be present to support#       starting without SSL on platforms with no /dev/random equivalent#       but a statically compiled-in mod_ssl.#<IfModule ssl_module>#Include conf/extra/httpd-ssl.confInclude conf/extra/httpd-sni.confSSLRandomSeed startup builtinSSLRandomSeed connect builtin</IfModule>
View Code

 

 

django项目python_web最后的内容:
http://download.csdn.net/detail/dfg727/8152879



window7配置python3.3 + django + apache24 + mod_wsgi