首页 > 代码库 > 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())
然后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>‘]
在浏览器中打开页面 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>
新建文件 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()
修改 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)
修改 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),)
增加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>
django项目python_web最后的内容:
http://download.csdn.net/detail/dfg727/8152879
window7配置python3.3 + django + apache24 + mod_wsgi