Chrome浏览器有自己的DNS缓存,如何不重启Chrome浏览器,就可以清除DNS缓存呢? 查看Chome浏览器的DNS缓存 在地址栏中输入: chrome://dns,就可以查看Chome的DNS缓存了。 清空电脑的DNS缓存 按"Win+R"系统热键打开"运行"窗口,输入"ipconfig /flushdns"命令后按回车,就可以清空电脑的DNS缓存。 清除Chrome浏览器的DNS缓存 在地址栏中输入: chrome://net-internals/#dns,然后点"Clear host cache"按钮。 清除套接字缓存 在地址栏中输入: chrome://net-internals/#sockets,然后点"Clear idle sockets"按钮和"Flush socket pools"按钮。 清除浏览缓存 有时候还需要清除浏览缓存。在地址栏中输入: chrome://settings/clearBrowserData,选择"浏览记录"和"缓存的图片和文件"两项内容,点"清除浏览缓存"按钮。 开启新的隐身窗口 开启新的隐身窗口后,新的DNS映射就会立即生效。 强制刷新页面 强制刷新页面,也会更新DNS。参考下面经验"Chrome浏览器如何强制刷新页面(不使用缓存)?",强制刷新页面。 from:https://jingyan.baidu.com/article/c275f6ba0a4264e33d7567b4.html
View Detailstar -zcvf /home/xahot.tar.gz /xahot tar -zcvf 打包后生成的文件名全路径 要打包的目录 例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件。 zip 压缩方法: 压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归 zip [参数] [打包后的文件名] [打包的目录路径] 解压 unzip xahot.zip 不解释 linux zip命令的基本用法是: linux zip命令参数列表: -a 将文件转成ASCII模式 -F 尝试修复损坏的压缩文件 -h 显示帮助界面 -m 将文件压缩之后,删除源文件 -n 特定字符串 不压缩具有特定字尾字符串的文件 -o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间 -q 安静模式,在压缩的时候不显示指令的执行过程 -r 将指定的目录下的所有子目录以及文件一起处理 -S 包含系统文件和隐含文件(S是大写) -t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy 举例: 将/home/wwwroot/xahot/ 这个目录下所有文件和文件夹打包为当前目录下的xahot.zip zip –q –r xahot.zip /home/wwwroot/xahot 上面的命令操作是将绝对地址的文件及文件夹进行压缩.以下给出压缩相对路径目录 比如目前在Bliux这个目录下,执行以下操作可以达到以上同样的效果. zip –q –r xahot.zip xahot 比如现在我的xahot目录下,我操作的zip压缩命令是 zip –q –r xahot.zip * 以上是在安静模式下进行的,而且包含系统文件和隐含文件 ////////////////////////////////////////////////////////// unzip语 法: unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目 录>][-x <文件>] 或 unzip [-Z] 补充说明:unzip为.zip压缩文件的解压缩程序。 unzip参 数: -c […]
View DetailsGit 由于在处理子模块代码库的设置档案存在漏洞,导致开发者可能遭受任代码执行攻击,多数代码托管服务皆已设置拒绝有问题的代码储存库,但建议使用者尽快更新,避免不必要的风险。 Microsoft Visual Studio 团队服务项目经理 Edward Thomson May 在 DevOps 博客中提到,Git 社区最近发现 Git 存在一个漏洞,允许黑客执行任意代码。 他敦促开发人员尽快更新客户端应用程序。 微软还采取了进一步措施,防止恶意代码库被推入微软的 VSTS(Visual Studio Team Services)。 此代码是 CVE 2018-11235 中的一个安全漏洞。 当用户在恶意代码库中操作时,他们可能会受到任意代码执行攻击。 远程代码存储库包含子模块定义和数据,它们作为文件夹捆绑在一起并提交给父代码存储库。 当这个代码仓库被来回复制时,Git 最初会将父仓库放到工作目录中,然后准备复制子模块。 但是,Git 稍后会发现它不需要复制子模块,因为子模块之前已经提交给父存储库,它也被写入工作目录,这个子模块已经存在于磁盘上。 因此,Git 可以跳过抓取文件的步骤,并直接在磁盘上的工作目录中使用子模块。 但是,并非所有文件都可以被复制。 当客户端复制代码库时,无法从服务器获取重要的配置。 这包括 .git 或配置文件的内容。 另外,在 Git 工作流中的特定位置执行的钩子(如Git)将在将文件写入工作目录时执行 Post-checkout 钩子。 不应该从远程服务器复制配置文件的一个重要原因就是,远程服务器可能提供由 Git 执行的恶意代码。 CVE 2018-11235 的漏洞正是犯了这个错误,所以 Git 有子模块来设置漏洞。 子模块存储库提交给父存储库,并且从未实际复制过。 子模块存储库中可能存在已配置的挂钩。 当用户再次出现时,恶意的父库会被精心设计。 将写入工作目录,然后 Git 读取子模块,将这些子模块写入工作目录,最后一步执行子模块存储库中的任何 Post-checkout 挂钩。 为了解决这个问题,Git 客户端现在将更仔细地检查子文件夹文件夹名称。 包含现在非法的名称,并且它们不能是符号链接,因此这些文件实际上必须存在于 .git 中,而不能位于工作目录中。 Edward ThomsonMay 提到,Git,VSTS 和大多数其他代码托管服务现在拒绝使用这些子模块配置的存储库来保护尚未更新的 Git 客户端。 Git 2.17.1 和 Windows 的 2.17.1 客户端软件版本已经发布,微软希望开发人员尽快更新。 整理自:iThome from:https://www.oschina.net/news/96614/git-flaw
View Details一、问题描述 在apache2的httpd配置中,很多情况都会出现403。 刚安装好httpd服务,当然是不会有403的问题了。主要是修改了一些配置后出现,问题描述如下: 修改了DocumentRoot目录指向后,站点出现403错误。 设置了虚拟主机目录也可能导致403。 apache的httpd服务成功启动,看起来都很正常,却没有权限访问 日志出现: access to / denied (filesystem path '/srv/lxyproject/wsgi/django.wsgi') because search permissions are missing on a component of the path 设置虚拟目录后,错误日志出现:client denied by server configuration: /srv/lxyproject/wsgi/django.wsgi 二、分析问题及方案 下面一步步解决问题时注意错误日志内容。ok,开始。 1、httpd.conf中目录配置文件 如果显示更改了DocumentRoot,比如改为 "/usr/local/site/test" 。site目录和test目录是通过使用mkdir建立的,然后在test目录下放一个index.html。这种情况应该查看httpd.conf中配置。 你的<Directory "/usr/local/site/test">一定要和DocumentRoot一致,因为这段Directory是apache对该目录访问权限的设置,只有设置正确的目录,DocumentRoot才会生效。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<Directory "/usr/local/site/test"> # # 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> |
2、目录访问权限 第一步配置正确还是出现403,检查目录配置<Directory "/usr/local/site/test">中是否有Deny from all。有则所有访问都会被拒绝,当然403了。 可以设置为Allow from all或者Require all granted来处理。 不要修改<Directory />根目录中Deny from all。 3、目录权限 如果至此还是403,可能是网站目录的权限问题。 apache要求目录具有执行权限,也就是x,要注意的是,你的目录树都应该拥有这些权限。 假如你的目录是/usr/local/site/test,那么要保证/usr,/usr/local,/usr/local/site,/usr/local/site/test这四个层级的目录都是755权限。
1 2 |
#chmod 755 /usr/local/site #chmod 755 /usr/local/site/test |
我犯过一个错就是只设置了最后一级目录权限,没有设置上级目录权限,导致403。 4、 虚拟目录 【这个问题我没遇到过,因为我没这样写过,网上资料这么写,可作为参考】 如果设置的是虚拟目录,那么你需要在httpd.conf中定义一个虚拟目录,而且像极了如下的片段:
1 2 3 4 5 6 7 8 9 |
Alias /<strong>folder </strong>"/usr/local/<strong>folder</strong>" <Directory "/usr/local/<strong>folder</strong>"> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.1 192.168.1.1 </Directory> |
如果是这一种情况,而且你写得类似我上面的代码,三处folder都是一样一样的,那绝对会是403!怎么解决呢,就是把跟在Alias后面斜杠后面的那串改了,改成什么,不要和虚拟目录的文件夹同名就好,然后我就可以用改过后的虚拟目录访问了,当然,改文件夹也行,只要你不怕麻烦,只要Alias后面的虚拟目录定义字符(红色)和实际文件夹名(黑色)不相同就OK。 5、selinux的问题 如果依然是403,那就是selinux在作怪了,于是,你可以把你的目录进行一下selinux权限设置。 今天我遇到的就是这个问题了。
1 2 |
#chcon -R -t httpd_sys_content_t /usr/local/site #chcon -R -t httpd_sys_content_t /usr/local/site/test |
网上资料说不过,这一步大多不会发生。但我的问题确实是,可能跟系统有关,具体原理还不是很懂。 6、wsgi的问题 我的虚拟主机配置为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<VirtualHost *:80> WSGIScriptAlias / /srv/lxyproject/wsgi/django.wsgi Alias /static/ /srv/lxyproject/collectedstatic/ ServerName 10.1.101.31 #ServerName example.com #ServerAlias www.example.com <Directory /srv/lxyproject/collectedstatic> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <Directory /srv/lxyproject/wsgi/> Allow from all </Directory> ErrorLog /etc/httpd/logs/lxyproject.error.log LogLevel warn </VirtualHost> |
我访问 log报错:
1 |
client denied by server configuration: /srv/lxyproject/wsgi/django.wsgi |
解决办法: 修改<Directory /srv/lxyproject/wsgi/>中Allow from all为:Require all granted。 这个问题是因为版本的原因, 我的httpd版本为:
1 2 3 4 |
[root@yl-web conf.d]# rpm -qa |grep httpd httpd-devel-2.4.6-31.el7.centos.x86_64 httpd-tools-2.4.6-31.el7.centos.x86_64 httpd-2.4.6-31.el7.centos.x86_64 |
而2.3以下版本用Allow from all,2.3及以上版本为Require all granted。
1 2 3 4 5 6 7 8 9 |
<Directory /home/aettool/aet/apache> <IfVersion < 2.3 > Order allow,deny Allow from all </IfVersion> <IfVersion >= 2.3> Require all granted </IfVersion> </Directory> |
[…]
View DetailsApache结合mod_dav_svn和mod_authz_svn打造SVN服务器 制作SVN服务器的软件和工具有很多,比如每个SVN都有的svnserve,以及图形化界面超容易使用的VisualSVN Server。但是,现在既然有Apache服务器,那就直接用就是了,而且还可以使用Web浏览目录。 首先,前往这里下载对应的SVN发行包,我下载的是Win32Svn。里面自带mod_dav_svn.so与mod_authz_svn.so。使用与Apache2.2,其他版本请自行测试。 然后,把Win32Svn解压缩,如d:\Subversion,然后在系统环境变量中加上d:\Subversion。 接着,把mod_dav_svn.so与mod_authz_svn.so拷贝到apache的modules目录。 修改httpd.conf,把以下两行前面的“#”注释去掉: LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule dav_module modules/mod_dav.so 在所有LoadModule的最后加上下面两行: LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so 假设使用d:\svn作为仓库的地址,则在httpd.conf或对应虚拟主机的配置中加上: #SVN START <Location /svn> DAV svn SVNParentPath D:\svn AuthType Basic AuthName "blog.creke.net SVN" AuthUserFile D:\svn\.htpasswd AuthzSVNAccessFile D:\svn\.ht_svn_authz Require valid-user </Location> #SVN END 具体的配置参数可以查看这里和这里。 其中的.htpasswd是用户密码文件,与apache的一样。 .ht_svn_authz是访问控制文件,可以在svnadmin create后,在conf目录下authz.conf找到该文件带有注释的原型。 如果在blog.creke.net的虚拟主机中加上以上配置,再执行“svnadmin create d:\svn\rep1”后,我们访问http://blog.creke.net/svn/rep1时,就会访问到对应的rep1的仓库。 使用这个方法,apache就会兼做svn服务器,就不需要单独启动svnserve了。 from:http://blog.creke.net/788.html
View Details为了帮助人们升级,我们维护一份描述对现有Apache HTTP Server用户至关重要的信息的文档。这些只是简要说明,您应该能够在新功能文档或src/CHANGES文件中找到更多信息。应用程序和模块开发人员可以在API更新概述中找到API更改的摘要。 本文档描述了服务器行为的变化,这些变化可能要求您更改配置或使用服务器以继续使用2.4,就像您当前使用2.2一样。要利用2.4中的新功能,请参阅新功能文档。 本文档仅描述了从2.2到2.4的变化。如果您从2.0版升级,则还应该查阅升级文档2.0至2.2。 编译时配置更改 运行时配置更改 其他变化 第三方模块 升级时常见的问题 也可以看看 Apache HTTP Server 2.4中的新功能概述 注释 编译时配置更改 编译过程非常类似于2.2版中使用的过程。大多数情况下,您的旧configure命令行(可以在build/config.nice安装的服务器目录中找到)可以使用。默认设置有一些变化。一些细节的变化: 这些模块已被删除:mod_authn_default,mod_authz_default,mod_mem_cache。如果您在2.2中使用mod_mem_cache,请参阅mod_cache_disk2.4。 所有的负载平衡实现已经被移动到独立的,独立的mod_proxy子模块,例如 mod_lbmethod_bybusyness。您可能需要构建并加载配置使用的任何这些内容。 BeOS,TPF以及A / UX,Next和Tandem等较早的平台都已取消平台支持。无论如何,这些被认为是破碎的。 配置:动态模块(DSO)是默认生成的 配置:默认情况下,只加载一组基本的模块。其他LoadModule指令在配置文件中被注释掉。 配置:默认情况下,“最”模块集建成 配置:“真正的”模块集将开发者模块添加到“全部”集 运行时配置更改 授权配置和其他次要配置更改发生了重大变化,可能需要在使用2.4配置文件之前对其进行更改。 授权 任何使用授权的配置文件都可能需要更改。 您应该查看身份验证,授权和访问控制Howto,尤其是Beyond仅授权部分,该部分 解释了控制授权指令应用顺序的新机制。 控制授权模块在与认证用户不匹配时如何响应的指令已被删除:这包括AuthzLDAPAuthoritative,AuthzDBDAuthoritative,AuthzDBMAuthoritative,AuthzGroupFileAuthoritative,AuthzUserAuthoritative和AuthzOwnerAuthoritative。这些指令已经被换成了更具表现力RequireAny, RequireNone和 RequireAll。 如果您使用mod_authz_dbm,则必须移植您的配置以Require dbm-group …代替使用Require group …。 访问控制 在2.2的基础上,客户端的主机名,IP地址,客户端请求的其他特性的访问控制使用的指示做Order,Allow,Deny,和Satisfy。 在2.4中,这种访问控制与使用新模块的其他授权检查相同 mod_authz_host。旧的访问控制成语应该被新的认证机制所取代,尽管为了与旧的配置兼容,mod_access_compat提供了新的模块。 混合旧的和新的指令 混合旧指令一样Order,Allow或Deny以新的希望 Require在技术上是可行的,但不鼓励。mod_access_compat是为支持仅包含旧指令的配置而创建的,以促进2.4升级。请查看下面的示例以更好地了解可能出现的问题。 以下是一些新旧方法可用于执行相同访问控制的示例。 在这个例子中,没有认证,所有请求都被拒绝。 2.2配置:
1 2 |
<span class="kwd">顺序</span><span class="pln">否认</span><span class="pun">,</span><span class="pln">允许 </span><span class="pln">所有人</span><span class="kwd">拒绝</span> |
2.4配置:
1 |
<span class="kwd">要求</span><span class="pln">全部拒绝</span> |
在这个例子中,没有认证,所有的请求都是允许的。 2.2配置:
1 2 |
<span class="kwd">订单</span><span class="pln">允许</span><span class="pun">,</span><span class="pln">拒绝 </span><span class="pln">全部</span><span class="kwd">允许</span> |
2.4配置:
1 |
<span class="kwd">要求</span><span class="pln">所有授予</span> |
在以下示例中,不存在身份验证,并且example.org域中的所有主机都被允许访问; 所有其他主机都被拒绝访问。 2.2配置:
1 2 |
<span class="kwd">为了</span><span class="kwd">拒绝</span><span class="pun">,</span><span class="kwd">允许</span><span class="kwd">拒绝</span><span class="pln">所有 </span><span class="kwd">允许</span><span class="pln">从例子</span><span class="pun">。</span><span class="pln">组织</span> |
2.4配置:
1 |
<span class="kwd">要求</span><span class="pln">主机示例</span><span class="pun">。</span><span class="pln">组织</span> |
在以下示例中,混合旧指令和新指令会导致意外的结果。 混合旧的和新的指令:不按预期工作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<span class="kwd">DocumentRoot </span><span class="str">“/ var / www / html”</span> <span class="pun">< </span><span class="tag">目录</span><span class="str">“/” </span><span class="pun">> </span><span class="kwd">AllowOverride </span><span class="typ">无</span><span class="kwd">顺序</span><span class="pln">拒绝</span><span class="pun">,</span><span class="pln">允许 </span><span class="kwd">拒绝</span><span class="pln">所有 </span><span class="pun"></ </span><span class="tag">Directory </span><span class="pun">></span> <span class="pun">< </span><span class="tag">Location </span><span class="str">> / server-status“ </span><span class="pun">> </span><span class="kwd">SetHandler </span><span class="pln">服务器状态 </span><span class="kwd">需要</span><span class="pln">本地 </span><span class="pun"></ </span><span class="tag">Location </span><span class="pun">></span> <span class="pln"> 访问</span><span class="pun">。</span><span class="pln">日志</span><span class="pun">- </span><span class="pln">GET </span><span class="pun">/ </span><span class="pln">服务器状态</span><span class="lit">403 </span><span class="lit">127.0 </span><span class="pun">。</span><span class="lit">0.1 </span><span class="pln"> 错误</span><span class="pun">。</span><span class="pln">日志</span><span class="pun">- </span><span class="pln">AH01797 </span><span class="pun">:</span><span class="pln">客户端被服务器配置拒绝</span><span class="pun">:</span><span class="pun">/ </span><span class="pln">var </span><span class="pun">/ </span><span class="pln">www </span><span class="pun">/ </span><span class="pln">html </span><span class="pun">/ </span><span class="pln">server-status</span> |
为什么即使配置似乎允许httpd拒绝访问服务器状态?因为mod_access_compat指令优先mod_authz_host于此配置 合并方案中的指令。 这个例子反过来按预期工作: 混合旧的和新的指令:按预期工作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<span class="kwd">DocumentRoot </span><span class="str">“/ var / www / html”</span> <span class="pun">< </span><span class="tag">目录</span><span class="str">“/” </span><span class="pun">> </span><span class="kwd">AllowOverride </span><span class="typ">无</span><span class="kwd">要求</span><span class="pln">全部被拒绝 </span><span class="pun"></ </span><span class="tag">Directory </span><span class="pun">></span> <span class="pun">< </span><span class="tag">Location </span><span class="str">> / server-status“ </span><span class="pun">> </span><span class="kwd">SetHandler </span><span class="pln">server-status </span><span class="kwd">命令</span><span class="pln">拒绝</span><span class="pun">,</span><span class="pln">允许 </span><span class="kwd">拒绝</span><span class="pln">所有 </span><span class="kwd">Allow </span><span class="typ">From </span><span class="lit">127.0 </span><span class="pun">。</span><span class="lit">0.1 </span><span class="pun"></ </span><span class="tag">Location </span><span class="pun">></span> <span class="pln"> 访问</span><span class="pun">。</span><span class="pln">日志</span><span class="pun">- </span><span class="pln">GET </span><span class="pun">/ </span><span class="pln">服务器状态</span><span class="lit">200 </span><span class="lit">127.0 </span><span class="pun">。</span><span class="lit">0.1</span> |
因此,即使混音配置仍然可行,请在升级时尽量避免使用它:或者保留旧的指令,然后在后续阶段迁移到新的指令,或者只是批量迁移所有的指令。 在许多具有身份验证的配置中,其值为ALLSatisfy的缺省值,因此 省略了仅禁用基于主机的访问控制的片段: 2.2配置:
1 2 3 4 5 |
<span class="com">#2.2 config禁用基于主机的访问控制并仅使用认证</span><span class="kwd">Order </span><span class="kwd">Deny </span><span class="pun">,</span><span class="kwd">Allow </span><span class="kwd">Allow </span><span class="pln">from all </span><span class="kwd">AuthType </span><span class="typ">Basic </span><span class="kwd">AuthBasicProvider </span><span class="pln">文件 </span><span class="kwd">AuthUserFile </span><span class="pun">/ </span><span class="pln">example </span><span class="pun">。</span><span class="pln">com </span><span class="pun">/ </span><span class="pln">conf </span><span class="pun">/ </span><span class="pln">users </span><span class="pun">。</span><span class="pln">passwd </span><span class="kwd">AuthName </span><span class="pln">secure </span><span class="kwd">需要</span><span class="pln">有效用户</span> |
2.4配置:
1 2 3 4 |
<span class="com">#不需要替代所需的禁用基于主机的访问控制</span><span class="kwd">AuthType </span><span class="typ">基本</span><span class="kwd">AuthBasicProvider </span><span class="pln">文件 </span><span class="kwd">AuthUserFile </span><span class="pun">/ </span><span class="pln">示例</span><span class="pun">。</span><span class="pln">com </span><span class="pun">/ </span><span class="pln">conf </span><span class="pun">/ </span><span class="pln">users </span><span class="pun">。</span><span class="pln">passwd </span><span class="kwd">AuthName </span><span class="pln">secure </span><span class="kwd">需要</span><span class="pln">有效用户</span> |
在身份验证和访问控制有意义结合的配置中,应该迁移访问控制指令。这个例子允许满足两个标准的请求: 2.2配置:
1 2 3 4 5 6 7 |
<span class="kwd">为了</span><span class="pln">允许</span><span class="pun">,</span><span class="pln">拒绝 </span><span class="kwd">拒绝</span><span class="pln">所有 </span><span class="com">#满足所有是默认的</span><span class="kwd">手托</span><span class="pln">ALL </span><span class="kwd">允许</span><span class="pln">从</span><span class="lit">127.0 </span><span class="pun">。</span><span class="lit">0.1 </span><span class="kwd">AuthType </span><span class="typ">基本</span><span class="kwd">AuthBasicProvider </span><span class="pln">文件 </span><span class="kwd">AuthUserFile </span><span class="pun">/ </span><span class="pln">示例</span><span class="pun">。</span><span class="pln">com </span><span class="pun">/ </span><span class="pln">conf </span><span class="pun">/ </span><span class="pln">users </span><span class="pun">。</span><span class="pln">passwd </span><span class="kwd">AuthName </span><span class="pln">secure </span><span class="kwd">需要</span><span class="pln">有效用户</span> |
2.4配置:
1 2 3 4 5 |
<span class="kwd">AuthType </span><span class="typ">基本</span><span class="kwd">AuthBasicProvider </span><span class="pln">文件 </span><span class="kwd">AuthUserFile </span><span class="pun">/ </span><span class="pln">示例</span><span class="pun">。</span><span class="pln">com </span><span class="pun">/ </span><span class="pln">conf </span><span class="pun">/ </span><span class="pln">users </span><span class="pun">。</span><span class="pln">passwd </span><span class="kwd">AuthName </span><span class="pln">secure </span><span class="pun">< </span><span class="tag">RequireAll </span><span class="pun">> </span><span class="kwd">要求</span><span class="pln">valid-user </span><span class="kwd">要求</span><span class="pln">ip </span><span class="lit">127.0 </span><span class="pun">。</span><span class="lit">0.1 </span><span class="pun"></ </span><span class="tag">RequireAll </span><span class="pun">></span> |
在身份验证和访问控制有意义结合的配置中,应该迁移访问控制指令。此示例允许符合以下任一条件的请求 2.2配置:
1 2 3 4 5 6 7 |
<span class="kwd">订单</span><span class="pln">允许</span><span class="pun">,</span><span class="pln">拒绝 </span><span class="kwd">拒绝</span><span class="pln">从所有 </span><span class="kwd">满足</span><span class="pln">任何 </span><span class="kwd">允许</span><span class="pln">从</span><span class="lit">127.0 </span><span class="pun">。</span><span class="lit">0.1 </span><span class="kwd">AuthType </span><span class="typ">基本</span><span class="kwd">AuthBasicProvider </span><span class="pln">文件 </span><span class="kwd">AuthUserFile </span><span class="pun">/ </span><span class="pln">示例</span><span class="pun">。</span><span class="pln">com </span><span class="pun">/ </span><span class="pln">conf </span><span class="pun">/ </span><span class="pln">users </span><span class="pun">。</span><span class="pln">passwd </span><span class="kwd">AuthName </span><span class="pln">secure </span><span class="kwd">需要</span><span class="pln">有效用户</span> |
2.4配置:
1 2 3 4 5 |
<span class="kwd">AuthType </span><span class="typ">基本</span><span class="kwd">AuthBasicProvider </span><span class="pln">文件 </span><span class="kwd">AuthUserFile </span><span class="pun">/ </span><span class="pln">示例</span><span class="pun">。</span><span class="pln">com </span><span class="pun">/ </span><span class="pln">conf </span><span class="pun">/ </span><span class="pln">users </span><span class="pun">。</span><span class="pln">passwd </span><span class="kwd">AuthName </span><span class="pln">secure </span><span class="com">#隐式地<RequireAny> </span><span class="kwd">需要</span><span class="pln">有效用户 </span><span class="kwd">需要</span><span class="pln">IP </span><span class="lit">127.0 </span><span class="pun">。</span><span class="lit">0.1</span> |
其他配置更改 如下所述,对于特定配置可能需要其他一些小调整。 MaxRequestsPerChild已更名为 MaxConnectionsPerChild,更准确地描述了它的功能。旧名称仍然受支持。 MaxClients已被重新命名为 MaxRequestWorkers,它更准确地描述了它的功能。对于异步MPM,例如 event,最大客户端数量不等于工作线程数量。旧名称仍然受支持。 该DefaultType 指令不再具有任何效果,除非发出警告,否则使用其他值 none。您需要使用其他配置设置在2.4中进行替换。 AllowOverride现在默认为None。 […]
View DetailsPHP安装 由于windows下php扩展5.6的多余7.0,故以php5.6为开发环境。如果对扩展要求不高,可以使用php7,安装过程类似。 约定: 环境安装目录:
1 2 3 4 5 6 |
D:/phpsetup/ |——php |——php-5.6.22-Win32-VC11-x86 |——apache |——mysql |——www |
下载 下载地址: http://php.net/ windows版下载地址: http://windows.php.net/download 官网里Windows的版本有很多。选择哪个版本呢? 如果你的PHP应用程序以FastCGI方式运行,请选择Non-Thread Safe (NTS) 版本; 如果你的PHP应用程序和Apache一起,请选择 Thread Safe (TS) 版本。 本文用的apache+php组合,所以选择ts(Thread Safe)版本。根据操作系统选择x64或者x86。 大多数版本的PHP使用VC9, VC11 or VC14 (Visual Studio 2008, 2012 or 2015分别编译)进行编译的,所以你电脑上需要安装VC运行环境。 电脑需要VC运行环境: VC9 x86 :http://www.microsoft.com/en-us/download/details.aspx?id=5582 VC9 x64 :http://www.microsoft.com/en-us/download/details.aspx?id=15336 VC11 x86 or x64:http://www.microsoft.com/en-us/download/details.aspx?id=30679 VC14 x86 or x64 :http://www.microsoft.com/en-us/download/details.aspx?id=48145 配置PHP 本文以php-5.6.22-Win32-VC11-x86.zip为例。 下载后解压到D:\phpsetup\php\php-5.6.22-Win32-VC11-x86目录。 复制一份php.ini-development文件为php.ini。 需要修改以下地方: 更改自定义扩展目录。 找到
1 |
;extension_dir = "ext" |
更改为
1 |
extension_dir = "D:\phpsetup\php\php-5.6.22-Win32-VC11-x86\ext" |
提示:与apache搭配使用需要写绝对位置。否则扩展加载不了。 开启扩展 往下看,再找到:
1 |
;extension=php_curl.dll |
去掉部分注释:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
extension=php_bz2.dll extension=php_curl.dll extension=php_fileinfo.dll extension=php_gd2.dll extension=php_gettext.dll ;extension=php_gmp.dll ;extension=php_intl.dll ;extension=php_imap.dll ;extension=php_interbase.dll ;extension=php_ldap.dll extension=php_mbstring.dll extension=php_exif.dll ; Must be after mbstring as it depends on it extension=php_mysql.dll extension=php_mysqli.dll ;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client extension=php_openssl.dll ;extension=php_pdo_firebird.dll extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll extension=php_pdo_odbc.dll extension=php_pdo_pgsql.dll extension=php_pdo_sqlite.dll extension=php_pgsql.dll ;extension=php_shmop.dll ; The MIBS data available in the PHP distribution must be installed. ; See http://www.php.net/manual/en/snmp.installation.php ;extension=php_snmp.dll extension=php_soap.dll extension=php_sockets.dll extension=php_sqlite3.dll ;extension=php_sybase_ct.dll extension=php_tidy.dll extension=php_xmlrpc.dll extension=php_xsl.dll |
设置默认时区
1 |
date.timezone=PRC |
设置ssl(可选)
1 |
openssl.cafile= cacert.pem |
注意是绝对路径。 添加自定义扩展
1 2 3 4 5 |
[memcache] extension=php_memcache.dll [redis] extension=php_redis.dll |
注意,需要下载对应版本的扩展: 如php_redis-2.2.7-5.6-ts-vc11-x86 区分ts,x86。 下载地址 http://pecl.php.net/package/redis/ http://pecl.php.net/package/memcache http://pecl.php.net/package/SeasLog http://pecl.php.net/package/xdebug http://pecl.php.net/package/yar […]
View Details给eclipse安装php插件,在start XAMPP的时候报错 : 通常每个套接字地址(协议/网络地址/端口)只允许使用一次 。: AH00072: make_sock: could not bind to address [::]:443 典型的端口占用 方法1:查找端口占用 Html代码 D:\server\xampp\apache\bin>netstat -ano|findstr "443" TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 3120 TCP 199.10.33.30:54312 202.173.27.250:443 TIME_WAIT 0 TCP 199.10.33.30:54313 216.219.120.244:443 TIME_WAIT 0 查看进程占用程序 Html代码 D:\server\xampp\apache\bin>tasklist|findstr "3120" vmware-hostd.exe 3120 Services 0 55,356 K 可见433由vmare占用,根据“先来后到”的原则,那么只有更改apache的这个端口了。 解决方法 进入Apache的安装目录,搜索httpd-ssl.conf,右击文本打开。寻找443替换成其他不常用的端口号,比如442。接下来就可以正常启动Apache了。 方法2:直接关闭Apache的SSL模块, 反正暂时还用不到,\xampp\apache\confhttpd.conf文件,注释171行#LoadModule ssl_module modules/mod_ssl.so 和539行#Include conf/extra/httpd-ssl.conf from:https://blog.csdn.net/u012185875/article/details/71639887
View Details1 second = 1000 millisecond = 1000,000 microsecond = 1000,000,000 nanosecond php的毫秒是没有默认函数的,但提供了一个microtime()函数,该函数返回包含两个元素,一个是秒数,一个是小数表示的毫秒数,借助此函数,可以很容易定义一个返回毫秒数的函数,例如:
1 2 3 4 5 6 7 8 9 10 |
/* * 获取时间差,毫秒级 */ function get_subtraction() { $t1 = microtime(true); $t2 = microtime(true); return (($t2-$1)*1000).'ms'; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
/* * microsecond 微秒 millisecond 毫秒 *返回时间戳的毫秒数部分 */ function get_millisecond() { list($usec, $sec) = explode(" ", microtime()); $msec=round($usec*1000); return $msec; } /* * *返回字符串的毫秒数时间戳 */ function get_total_millisecond() { $time = explode (" ", microtime () ); $time = $time [1] . ($time [0] * 1000); $time2 = explode ( ".", $time ); $time = $time2 [0]; return $time; } /* * *返回当前 Unix 时间戳和微秒数(用秒的小数表示)浮点数表示,常用来计算代码段执行时间 */ function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } |
1 2 3 |
$millisecond = get_millisecond(); $millisecond = str_pad($millisecond,3,'0',STR_PAD_RIGHT); echo date("YmdHis").$millisecond; |
需要注意,在32位系统中php的int最大值远远小于毫秒数,所以不能使用int类型,而php中没有long类型,所以只好使用浮点数来表示。 转载:http://crystalwiner.iteye.com/blog/1567514
View Details定义和用法 rand() 函数返回随机整数。 语法
1 |
rand(min,max) |
参数 描述 min,max 可选。规定随机数产生的范围。 说明 如果没有提供可选参数 min 和 max,rand() 返回 0 到 RAND_MAX 之间的伪随机整数。例如,想要 5 到 15(包括 5 和 15)之间的随机数,用 rand(5, 15)。 提示和注释 注释:在某些平台下(例如 Windows)RAND_MAX 只有 32768。如果需要的范围大于 32768,那么指定 min 和 max 参数就可以生成大于 RAND_MAX 的数了,或者考虑用 mt_rand() 来替代它。 注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现在已自动完成。 注释:在 3.0.7 之前的版本中,max 的含义是 range 。要在这些版本中得到和上例相同 5 到 15 的随机数,简短的例子是 rand (5, 11)。 例子 本例会返回一些随机数:
1 2 3 4 5 |
<?php echo(rand(); echo(rand(); echo(rand(10,100)) ?> |
输出:
1 2 3 |
17757 3794 97 |
from:http://www.w3school.com.cn/php/func_math_rand.asp
View Details