﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-代码实验室-文章分类-Pathon</title><link>http://www.cppblog.com/Lenus/category/6083.html</link><description>成长中的分析员，记录实验人生</description><language>zh-cn</language><lastBuildDate>Wed, 28 Apr 2010 20:24:49 GMT</lastBuildDate><pubDate>Wed, 28 Apr 2010 20:24:49 GMT</pubDate><ttl>60</ttl><item><title>multiprocessing cannot spawn child from a Windows service  </title><link>http://www.cppblog.com/Lenus/articles/106548.html</link><dc:creator>margin</dc:creator><author>margin</author><pubDate>Wed, 27 Jan 2010 09:51:00 GMT</pubDate><guid>http://www.cppblog.com/Lenus/articles/106548.html</guid><wfw:comment>http://www.cppblog.com/Lenus/comments/106548.html</wfw:comment><comments>http://www.cppblog.com/Lenus/articles/106548.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lenus/comments/commentRss/106548.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lenus/services/trackbacks/106548.html</trackback:ping><description><![CDATA[<p>source: <a href="http://bugs.python.org/issue5162">http://bugs.python.org/issue5162</a><br><br>classificationTitle: multiprocessing cannot spawn child from a Windows service&nbsp;&nbsp; <br>Type: behavior Stage: test needed <br>Components: Library (Lib) Versions: Python 2.6 <br>processStatus: open Resolution:&nbsp; <br>Dependencies:&nbsp;&nbsp; Superseder:&nbsp; <br>Assigned To: jnoller&nbsp; Nosy List:&nbsp; jnoller, orlenko (2)&nbsp; <br>Priority:&nbsp; normal Keywords patch <br>&nbsp;<br>Created on 2009-02-06 02:00 by orlenko, last changed 2009-03-29 15:44 by jnoller.</p>
<p>Files <br>File name Uploaded Description Edit Remove <br>forking-patch&nbsp; orlenko, 2009-02-06 02:00&nbsp; Patch of the forking module&nbsp;&nbsp; <br>Messages (1) <br>msg81247 - (view) Author: Volodymyr Orlenko (orlenko) Date: 2009-02-06 02:00&nbsp; <br>I think I've found a small bug with multiprocessing package on <br>Windows. If you try to start a multiprocessing.Process from a Python- <br>based Windows service, the child process will fail to run. When <br>running the parent process as a regular Python program, everything <br>works as expected. <br>I've tracked the problem down to how main_path is prepared in <br>multiprocessing.forking.get_preparation_data() (lines 370-377): <br>def get_preparation_data(name): <br>&nbsp;&nbsp;&nbsp; [...skipped a few lines...] <br>&nbsp;&nbsp;&nbsp; if not WINEXE: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; main_path = getattr(sys.modules['__main__'], '__file__', None) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not main_path and sys.argv[0] not in ('', '-c'): <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; main_path = sys.argv[0] <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if main_path is not None: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not os.path.isabs(main_path) and \ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; process.ORIGINAL_DIR is not <br>None: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; main_path = os.path.join(process.ORIGINAL_DIR, <br>main_path) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d['main_path'] = os.path.normpath(main_path) <br>&nbsp;&nbsp;&nbsp; return d <br>When the program is running as a Windows service, but is not packaged <br>into a single executable, main_path will become the path to the <br>service executable (typically, pythonservice.exe). When this data <br>makes it to the child process, the prepare() function will treat <br>main_path as a path to a python module, and will try to import it. <br>This causes it to fail. <br>My quick-and-dirty solution was to check in get_preparation_data() if <br>main_path ends with '.exe', and if it does, to not pass it at all. <br>This solves the problem in my case, but perhaps there's a better way <br>to fix this? Here is my version of get_preparation_data(): <br>def get_preparation_data(name): <br>&nbsp;&nbsp;&nbsp; ''' <br>&nbsp;&nbsp;&nbsp; Return info about parent needed by child to unpickle process <br>object <br>&nbsp;&nbsp;&nbsp; ''' <br>&nbsp;&nbsp;&nbsp; from .util import _logger, _log_to_stderr <br>&nbsp;&nbsp;&nbsp; d = dict( <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name=name, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sys_path=sys.path, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sys_argv=sys.argv, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log_to_stderr=_log_to_stderr, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; orig_dir=process.ORIGINAL_DIR, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; authkey=process.current_process().authkey, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ) <br>&nbsp;&nbsp;&nbsp; if _logger is not None: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d['log_level'] = _logger.getEffectiveLevel() <br>&nbsp;&nbsp;&nbsp; if not WINEXE: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; main_path = getattr(sys.modules['__main__'], '__file__', None) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not main_path and sys.argv[0] not in ('', '-c'): <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; main_path = sys.argv[0] <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if main_path is not None: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not os.path.isabs(main_path) and \ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; process.ORIGINAL_DIR is not <br>None: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; main_path = os.path.join(process.ORIGINAL_DIR, <br>main_path) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not main_path.endswith('.exe'): <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d['main_path'] = os.path.normpath(main_path) <br>&nbsp;&nbsp;&nbsp; return d <br><a href="http://bugs.python.org/"></a></p>
<img src ="http://www.cppblog.com/Lenus/aggbug/106548.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lenus/" target="_blank">margin</a> 2010-01-27 17:51 <a href="http://www.cppblog.com/Lenus/articles/106548.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows版Python2.6+MySQL的安装</title><link>http://www.cppblog.com/Lenus/articles/105385.html</link><dc:creator>margin</dc:creator><author>margin</author><pubDate>Mon, 11 Jan 2010 03:56:00 GMT</pubDate><guid>http://www.cppblog.com/Lenus/articles/105385.html</guid><wfw:comment>http://www.cppblog.com/Lenus/comments/105385.html</wfw:comment><comments>http://www.cppblog.com/Lenus/articles/105385.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lenus/comments/commentRss/105385.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lenus/services/trackbacks/105385.html</trackback:ping><description><![CDATA[<div class=blog_title>转自:http://wrsuifeng.javaeye.com/blog/546992<br>
<div class=date><span class=year>2009</span><span class=sep_year>-</span><span class=month>12</span><span class=sep_month>-</span><span class=day>12</span></div>
<h3><a href="http://wrsuifeng.javaeye.com/blog/546992"><u><font color=#108ac6>Windows版Python2.6+MySQL的安装</font></u></a></h3>
<strong>文章分类:<a style="PADDING-RIGHT: 10px; TEXT-DECORATION: none" href="http://www.javaeye.com/blogs/category/python"><font color=#108ac6>Python编程</font></a></strong> </div>
<div class=blog_content>
<p>在Python中使用MySQL需要安装MySQLdb，但从官方站点&nbsp;<a href="http://sourceforge.net/projects/mysql-python/" target=_blank><u><font color=#108ac6>http://sourceforge.net/projects/mysql-python/</font></u></a> 目前只能下载到只持Python2.5版的<tt>MySQLdb。本文介绍Windows下安装MySQLdb的方法和常见问题处理。</tt></p>
<p>&nbsp;</p>
<p><tt>P</tt>ython2.6可以从<a href="http://www.python.org/download" target=_blank><u><font color=#108ac6>http://www.python.org/download</font></u></a><br>下载官方的版本安装，也可以<a title=http://www.activestate.com/activepython/ href="http://www.activestate.com/activepython/" target=_blank><u><font color=#108ac6>http://www.activestate.com/activepython/</font></u></a>下载ActivePython安装，后者在windows下使用更加方便。</p>
<p>MySQLdb版本： MySQL-python-1.2.2.win32-py2.6.exe<br>下载地址：<a href="http://home.netimperia.com/files/misc/MySQL-python-1.2.2.win32-py2.6.exe" target=_blank><u><font color=#108ac6>http://home.netimperia.com/files/misc/MySQL-python-1.2.2.win32-py2.6.exe</font></u></a><br>参见：<a href="http://sourceforge.net/forum/forum.php?thread_id=2316047&amp;forum_id=70460" target=_blank><u><font color=#108ac6>http://sourceforge.net/forum/forum.php?thread_id=2316047&amp;forum_id=70460</font></u></a></p>
<p>常见问题：<br>1.ImportError: DLL load failed: 找不到指定的模块。<br>----------------------------------------------------------------------------------------------------<br>D:\usr\local\Python26&gt;python<br>Python 2.6 (r26:66721, Oct&nbsp; 2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32<br>Type "help", "copyright", "credits" or "license" for more information.<br>&gt;&gt;&gt; import MySQLdb<br>Traceback (most recent call last):<br>&nbsp; File "&lt;stdin&gt;", line 1, in &lt;module&gt;<br>&nbsp; File "D:\usr\local\Python26\Lib\site-packages\MySQLdb\__init__.py", line 19, in &lt;module&gt;</p>
<p>&nbsp;&nbsp;&nbsp; import _mysql<br>ImportError: DLL load failed: 找不到指定的模块。<br>----------------------------------------------------------------------------------------------------<br>解决方法：下载libmmd.dll(附件)和libguide40.dll(附件)两个dll文件并复制到python安装目录的Lib\site-packages下。<br>参见：<a href="http://sourceforge.net/forum/message.php?msg_id=5613887" target=_blank><u><font color=#108ac6>http://sourceforge.net/forum/message.php?msg_id=5613887</font></u></a></p>
<p>2.ImportError: DLL load failed: 找不到指定的模块。<br>----------------------------------------------------------------------------------------------------<br>D:\usr\local\Python26&gt;python<br>Python 2.6 (r26:66721, Oct&nbsp; 2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32<br>Type "help", "copyright", "credits" or "license" for more information.<br>&gt;&gt;&gt; import MySQLdb<br>D:\usr\local\Python26\lib\site-packages\MySQLdb\__init__.py:34: DeprecationWarning: the sets module is deprecated<br>&nbsp; from sets import ImmutableSet<br>----------------------------------------------------------------------------------------------------<br>解决方法：<br>1) file "__init__", replace:&nbsp;<br>from sets import ImmutableSet&nbsp;&nbsp;<br>class DBAPISet(ImmutableSet):&nbsp;&nbsp;<br>with&nbsp;&nbsp;<br>class DBAPISet(frozenset)&nbsp;:<br>2) file "converters.py", remove:&nbsp;<br>from sets import BaseSet, Set&nbsp;<br>3) file "converters.py", change "Set" by "set" (IMPORTANT: only two places):&nbsp;<br>line 48: return set([ i for i in s.split(',') if i ])&nbsp;<br>line 128: set: Set2Str,&nbsp;<br>参见：<a href="http://sourceforge.net/forum/message.php?msg_id=5808948" target=_blank><font color=#108ac6><u>http://sourceforge.net/forum/message.php?msg_id=5808948</u></font></a></p>
</div>
<div class=attachments>
<ul>
    <li><a href="http://dl.javaeye.com/topics/download/8221fe34-a0d7-3445-9c57-e77546ca3a47"><u><font color=#108ac6>lib.zip</font></u></a> (246.5 KB)
    <li>下载次数: 1 </li>
</ul>
<ul>
    <li><a href="http://dl.javaeye.com/topics/download/273d6c67-5f81-337d-a16b-b7fef950d168"><u><font color=#108ac6>MySQL-python-1.2.2.win32-py2.6.rar</font></u></a> (890.5 KB)
    <li>下载次数: 1 </li>
</ul>
<ul>
    <li><a href="http://dl.javaeye.com/topics/download/86858122-4d47-3f78-bc04-46bd4277ebab"><u><font color=#108ac6>cx_Oracle-5.0.2-11g.win32-py2.6.rar</font></u></a> (169.4 KB)
    <li>下载次数: 0 </li>
</ul>
</div>
<img src ="http://www.cppblog.com/Lenus/aggbug/105385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lenus/" target="_blank">margin</a> 2010-01-11 11:56 <a href="http://www.cppblog.com/Lenus/articles/105385.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AttributeError</title><link>http://www.cppblog.com/Lenus/articles/97252.html</link><dc:creator>margin</dc:creator><author>margin</author><pubDate>Fri, 25 Sep 2009 12:08:00 GMT</pubDate><guid>http://www.cppblog.com/Lenus/articles/97252.html</guid><wfw:comment>http://www.cppblog.com/Lenus/comments/97252.html</wfw:comment><comments>http://www.cppblog.com/Lenus/articles/97252.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lenus/comments/commentRss/97252.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lenus/services/trackbacks/97252.html</trackback:ping><description><![CDATA[<p>source: <a href="http://groups.google.com/group/wuhy80/browse_thread/thread/226ac61dbe20de82">http://groups.google.com/group/wuhy80/browse_thread/thread/226ac61dbe20de82</a></p>
<p>代码： </p>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app = win32com.client.Dispatch("Word.Application") </p>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print repr(win32com.client.constants.wdAlertsAll) </p>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excel = win32com.client.Dispatch("Outlook.Application") </p>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #win32com.client.gencache.EnsureDispatch('Outlook.Application') </p>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print win32com.client.constants.msoAnimAccumulateAlways&nbsp;&nbsp; </p>
<p><br>运行结果： </p>
<p><br>&nbsp; File "chap1_0.py", line 87, in justfortest </p>
<p><br>&nbsp;&nbsp;&nbsp; print win32com.client.constants.msoAnimAccumulateAlways </p>
<p><br>&nbsp; File "C:\Python25\Lib\site-packages\win32com\client\__init__.py", line <br>168, in </p>
<p><br>&nbsp;__getattr__ </p>
<p><br>&nbsp;&nbsp;&nbsp; raise AttributeError, a </p>
<p><br>AttributeError: msoAnimAccumulateAlways </p>
<p><br>这个错误出现，我之前一直认为调用了Dispatch之后就会自动的创建constants变量 <br>的， </p>
<p><br>后来才知道不是这样的，要能够使用constants，必需要使用下面的一行语句 </p>
<p><br>win32com.client.gencache.EnsureDispatch('Outlook.Application') </p>
<p><br>或者是使用makepy,可以打开pythonwin，然后【Tools】＝》【Com MakePy Utility】 <br>来 </p>
<p><br>生成constants的文件 <br></p>
<img src ="http://www.cppblog.com/Lenus/aggbug/97252.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lenus/" target="_blank">margin</a> 2009-09-25 20:08 <a href="http://www.cppblog.com/Lenus/articles/97252.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于内网建web的问题</title><link>http://www.cppblog.com/Lenus/articles/64669.html</link><dc:creator>margin</dc:creator><author>margin</author><pubDate>Tue, 21 Oct 2008 17:13:00 GMT</pubDate><guid>http://www.cppblog.com/Lenus/articles/64669.html</guid><wfw:comment>http://www.cppblog.com/Lenus/comments/64669.html</wfw:comment><comments>http://www.cppblog.com/Lenus/articles/64669.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Lenus/comments/commentRss/64669.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Lenus/services/trackbacks/64669.html</trackback:ping><description><![CDATA[<p>Vista操作系统<br><br>1.申请了花生壳<br>2.将路由器的地址映射到了我的机器上。<br>3.用HTTPSS.exe这样的小工具，建立Web成功。（ftp也ok了）使用域名访问<br>4.用Apache建立WebServ失败了，域名访问失败<br><br>于是开始分析原因：<br>1.http:\\localhost\访问成功，说明apache已经正常启动<br>2.用lenusma.gicp.net访问失败了，而上面用HttpSS.exe已经成功了，说明不是域名的问题，而且也能ping通<br>3.搜索资料，发现要对httpd.conf进行修改，于是增加了</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">NameVirtualHost&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">80</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">VirtualHost&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">80</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>DocumentRoot&nbsp;d:\game<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>ServerName&nbsp;&nbsp;&nbsp;lenusma.gicp.net<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">&lt;/</span><span style="COLOR: #000000">VirtualHost</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<p><br>4.发现死活不成功，最后居然发现httpd.conf居然没有修改。</p>
<br>5.原来是Vista对文件进行了保护，没有写进去！！！！！于是提权~~~<br><br>6.使用httpd.exe搞定了，但是用ApacheMonitor.exe还是不行，出现<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">Forbidden&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>You&nbsp;don</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">t&nbsp;have&nbsp;permission&nbsp;to&nbsp;access&nbsp;/&nbsp;on&nbsp;this&nbsp;server&nbsp;</span></div>
<br>7.想起当初搜索资料的时候要修改一个根目录的步骤<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 97.84%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 138px; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000"><span class=Apple-style-span style="WORD-SPACING: 0px; FONT: 13px Verdana; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0">
<li style="PADDING-RIGHT: 5px; MARGIN-TOP: 0.1em; PADDING-LEFT: 5px; MARGIN-BOTTOM: 0.1em; PADDING-BOTTOM: 0px; LINE-HEIGHT: 110%; PADDING-TOP: 0px"><strong>&lt;Directory "D:/heavyz/homepage"&gt; and &lt;/Directory&gt;</strong><span class=Apple-converted-space>&nbsp;</span>: 定义本地文件系统容器，该容器位于D:/heavyz/homepage中。
<li style="PADDING-RIGHT: 5px; MARGIN-TOP: 0.1em; PADDING-LEFT: 5px; MARGIN-BOTTOM: 0.1em; PADDING-BOTTOM: 0px; LINE-HEIGHT: 110%; PADDING-TOP: 0px"><strong>Alias /homepage "D:/heavyz/homepage"</strong><span class=Apple-converted-space>&nbsp;</span>: 当URL中的路径名为/homepage时，将映射到该文件系统容器中。
<li style="PADDING-RIGHT: 5px; MARGIN-TOP: 0.1em; PADDING-LEFT: 5px; MARGIN-BOTTOM: 0.1em; PADDING-BOTTOM: 0px; LINE-HEIGHT: 110%; PADDING-TOP: 0px"><strong>Options Indexes FollowSymLinks -ExecCGI</strong><span class=Apple-converted-space>&nbsp;</span>: 当搜索不到默认首页时，允许列出目录的内容；允许目录中的符号链；不允许执行CGI脚本。
<li style="PADDING-RIGHT: 5px; MARGIN-TOP: 0.1em; PADDING-LEFT: 5px; MARGIN-BOTTOM: 0.1em; PADDING-BOTTOM: 0px; LINE-HEIGHT: 110%; PADDING-TOP: 0px"><strong>DirectoryIndex index.php index.html home/index.php home/index.html</strong><span class=Apple-converted-space>&nbsp;</span>: 按照列出的四个本地URL搜索默认首页，最先找到的文件作为首页返回。
<li style="PADDING-RIGHT: 5px; MARGIN-TOP: 0.1em; PADDING-LEFT: 5px; MARGIN-BOTTOM: 0.1em; PADDING-BOTTOM: 0px; LINE-HEIGHT: 110%; PADDING-TOP: 0px"><strong>Order allow,deny</strong><span class=Apple-converted-space>&nbsp;</span>: Order规定了HTTP客户的访问权限。先允许再禁止（allow,deny）表明allow中允许的访问权限优先级低于deny中禁止的访问权限。
<li style="PADDING-RIGHT: 5px; MARGIN-TOP: 0.1em; PADDING-LEFT: 5px; MARGIN-BOTTOM: 0.1em; PADDING-BOTTOM: 0px; LINE-HEIGHT: 110%; PADDING-TOP: 0px"><strong>Allow from all</strong><span class=Apple-converted-space>&nbsp;</span>: 先允许来自任何地方的HTTP客户的访问请求。
<li style="PADDING-RIGHT: 5px; MARGIN-TOP: 0.1em; PADDING-LEFT: 5px; MARGIN-BOTTOM: 0.1em; PADDING-BOTTOM: 0px; LINE-HEIGHT: 110%; PADDING-TOP: 0px"><strong>Deny from enpc.fr</strong><span class=Apple-converted-space>&nbsp;</span>: 再禁止域名为enpc.fr的HTTP客户的访问请求（国立路桥学校ENPC的主机不允许访问该页面），对于这些客户，服务器返回403 Forbidden信息。注意Order中定义了deny的优先级高于allow，故该指令将生效。 </span></span></li>
</div>
<br>8.最后享受一下成功的HelloWorld<br><img height=288 alt="" src="http://www.cppblog.com/images/cppblog_com/lenus/helloworld.jpg" width=539 border=0> 
<img src ="http://www.cppblog.com/Lenus/aggbug/64669.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Lenus/" target="_blank">margin</a> 2008-10-22 01:13 <a href="http://www.cppblog.com/Lenus/articles/64669.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>