下面小编给大家整理的Linux DNS配置resolv.conf文件参数配置linux操作系统(共含9篇),欢迎阅读!同时,但愿您也能像本文投稿人“渺渺”一样,积极向本站投稿分享好文章。
本文章来给各位同学介绍一下关于Linux DNS配置resolv.conf文件参数配置,希望对各位同学会有所帮助,
/etc/resolv.conf 该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。它的格式很简单,每行以一个关键字开头,后接一个或多个由空格隔开的参数。
/etc/resolv.conf 关键字主要有四个:
nameserver #定义DNS服务器的IP地址
domain #定义本地域名
search #定义域名的搜索列表
sortlist #对返回的域名进行排序
一个示例:domain www.111cn.net
search 111cn.net
nameserver 8.8.8.8
nameserver 8.8.4.4
请打开Tomcat的配置文件server.xml,下面我们来分析下各参数的意义及用法:
className
官方文档上说了This MUST be set to org.apache.catalina.valves.AccessLogValve to use the default access log valve. &<60; 想访问日志这就必须得写成这样,
directory
这个东西是日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,当然你也可以修改,我就给改成了D:
prefix
这个是日志文件的名称前缀,我的日志名称为localhost_access_log.-09-22.txt,前面的前缀就是这个localhost_access_log
suffix
这就是后缀名啦,可以改成别的
pattern
这个是最主要的参数了,具体的咱们下面讲,这个参数的内容比较丰富。
resolveHosts
如果这个值是true的话,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址啦
还有一些参数:
rotatable
默认为true,默认的设置使得你的tomcat生成的文件命为prefix(前缀)+.+时间(一般是按天算)+.+suffix(后缀),参照我的日志名就知道了:localhost_access_log.2007-09-22.txt。使用这个需要谨慎,因为你将其设置为false的话,tomcat会忽略时间,不会新生成文件,最后导致你的文件超级大,这样生成的文件名就是:localhost_access_log.txt
condition
这个参数不太实用,可以设置任何值,比如咱们设置成condition=“tkq”,那么只有当ServletRequest.getAttribute(“tkq”)为空的时候,才会被记录下来
fileDateFormat
最后的一个参数,很明白,这就是时间格式嘛,但是这个时间格式是针对日志文件起作用的,还记得咱们生成的日志文件全名么:localhost_access_log.2007-09-22.txt,这里面的2007-09-22就是这么来的,如果你想让tomcat每小时生成一个日志文件,也很简单,将这个值设置为:fileDateFormat=“yyyy-MM-dd.HH”,当然也可以按分钟生成什么的,自己改改吧
上面是所有的9个参数,刚才咱们说了,pattern这个参数的值比较多,咱们拿下来单独说:
pattern可以设置成两种方式,第一种是pattern=“common”,第二种是pattern=“combined”
这就可以控制日志里面的格式,各位说了,pattern就这两种?common和combined又是什么意
思,具体是什么格式呢?
别着急,咱们一点一点看,其实pattern是可以设置的,common和combined只是集成了一些显
示方式,就是将显示方式给组合了,pattern的实际值有如下几种,都是后面一个字母,前面
一个%百分号
咱们先贴出来我的日志里面的一条记录,对应着看
127.0.0.1 192.168.254.108 - -1 127.0.0.1 HTTP/1.1 - GET 80&<60; GET /rightmainima/leftbott4.swf HTTP/1.1 304 5563A67708646B6AA299C33D
%a
这是记录访问者的IP,在日志里是127.0.0.1
%A
这是记录本地服务器的IP,在日志里是192.168.254.108
%b
这是发送信息的字节数,不涵括http头,如果字节数为0的话,显示为-
%B
看tomcat的解释,没看出来与b%的区别,但我这里显示为-1,没想明白,望知道者告知,我把官方解释贴出来吧 Bytes sent, excluding HTTP headers
%h
这个就是服务器名称了,如果resolveHosts为false的话,这里就是IP地址了,我的日志里是127.0.0.1
%H
访问者使用的协议,这里是HTTP/1.1
%l
这个也不太清楚,官方也说这个always return '-' 官方解释:Remote logical username from identd (可能这样翻译:记录浏览者进行身份验证时提供的名字)(always returns '-')
%m
访问的方式,是GET还是POST,我这是GET
%p
本地接收访问的端口,呵呵,我这里是80啦
%q
比如你访问的是aaa.jsp?bbb=ccc,那么这里就显示?bbb=ccc,明白了吧,这个q是querystring的意思
%r
官方解释:First line of the request (method and request URI),不是很明白
%s
这个是http的状态,我这里返回的是304,咱们经常看见访问某个网页报错误500什么的,那也会返回500
%S
用户的session ID,这个session ID大家可以另外查一下详细的解释,反正每次都会生成不同的session ID
%t
这就是时间啦,好像有一个Common Log Format可以改,不过我没找到
%u
得到了验证的访问者,否则就是“-”
%U
访问的URL地址,我这里是/rightmainima/leftbott4.swf
%v
服务器名称,可能就是你url里面写的那个吧,我这里是localhost
%D
官方解释:Time taken to process the request, in millis,应该是访问发生的时间,以毫秒记
%T
官方解释:Time taken to process the request, in seconds,应该是访问发生的时间,以秒记
基本参数
上市日期10月
手机类型智能手机,拍照手机
屏幕
主屏尺寸2.4英寸
主屏材质TFT
主屏分辨率240×320像素
屏幕像素密度100ppi
窄边框24.5mm
网络
3G网络GSM,WCDMA(大陆行货不支持3G)
支持频段2G:GSM 850/900/1800/1900
3G:WCDMA 900/2100
WLAN功能WIFI(大陆行不支持)
连接与共享蓝牙2.0
硬件
操作系统Symbian OS
用户界面Symbian S60 v3
CPU型号ARM11
CPU频率369MHz
存储卡MicroSD卡
扩展容量8GB
电池容量1200mAh
理论通话时间300分钟
理论待机时间228小时
摄像头
摄像头内置
摄像头类型双摄像头(前后)
后置摄像头500万像素
前置摄像头30万像素
摄像头认证卡尔.蔡司认证
传感器类型CMOS
闪光灯LED补光灯(双)
光圈f/2.8
焦距/范围5.45mm,10cm
视频拍摄480p(640×480,30帧/秒)视频录制
拍照功能延时自拍,连拍,滤镜,场景模式,自动对焦,20倍数码变焦
外观
造型设计直板
机身颜色白色,红色,棕色
手机尺寸110x49x15mm
手机重量97g
操作类型T9传统键盘
机身接口3.5mm耳机接口,Micro USB v2.0数据接口
服务与支持
音频支持支持mp3/wma/aac/eAAC/eAAC+等格式
视频支持支持MP4/3GP等格式
图片支持支持JPEG/EXIF等格式
常用功能计算器,备忘录,日程表,记事本,收音机,电子书,闹钟,日历,录音机,情景模式,主题模式,地图软件
商务功能语音助手
服务特色诺基亚音乐商店
手机附件
包装清单诺基亚N79 x1
诺基亚电池BL-6F x1
诺基亚数据线CA-101 x1
诺基亚音乐耳机HS-45 AD-54 x1
诺基亚旅行充电器AC-6C x1
诺基亚4GB microSD卡MU-41 x1
随附两个诺基亚 N79“随心换”智能彩壳
诺基亚OVI套件DVD x1
用户手册 x1
快速入门 x1
可选配件诺基亚蓝牙立体声耳机 BH-903
诺基亚蓝牙扬声器 MD-7W
保修信息
保修政策全国联保,享受三包服务
质保时间1年
质保备注主机1年,电池6个月,充电器1年,有线耳机3个月
详细内容自购机日起(以购机发票为准),如因质量问题或故障,凭厂商维修中心或特约维修点的质量检测证明,享受7日内退货,15日内换货,15日以上在质保期内享受免费保修等三包服务!注:单独购买手机配件产品的用户,请完好保存配件外包装以及发票原件,如无法提供上述凭证的,将无法进行正常的配件保修或更换。
[诺基亚N79参数介绍]
8、MONITOR CONFIG REFERENCE
客户端在读写数据前,都比去和monitor取得联系,获得cluster map,结合CRUSH算法计算得到对象的位置,
(1)最小配置
生成一个fsid和monitorde的最小配置,配置字段[mon]或[mon.a],ceph监视器默认监听6789端口。
主机名(e.g. mon host = hostname1,hostname2,hostname3): mon host
主机IP(e.g. mon addr = 10.0.0.10:6789,10.0.0.11:6789,10.0.0.12:6789): mon addr
(2)初始成员
必须是个奇数,表示一个初始的最小monitor数,active的monitor达到这个数才能启动。
初始monitor成员ID: mon initial members
(3)数据
monitor存储数据的路径,因为monitor也是在节点上的,monitor会做很多fsync操作,影响OSD的工作负载,在0.58以前的版本中,monitor的数据是以文件形式存放的,可以用ls,cat等命令直接查看,但是一致性难以保障。之后的版本,数据以key/value的形式存放,并且需要原子性操作,保证一致性,数据保存路径不建议改动。
monitor数据保存路径(e.g. /var/lib/ceph/mon/$cluster-$id): mon data
(4)存储容量
当集群的使用率接近“最大容量”时,monitor会阻止对OSD的读写请求以避免数据丢失,考虑到多个主机可能同时断电造成集群容量剧减,这个“最大容量”通常小于实际的集群总容量,配置段位[global]。
被认为集群已满的最大使用百分比(默认.95): mon osd full ratio
被认为集群接近已满的最大使用百分比(默认.85): mon osd nearfull ratio
(5)monitor间的同步
集群间存在多Monitor共同工作时,存在同步的问题,不必每个monitor都active集群才工作,只要达到最小可工作数量就行了,这个数量在mon initial members中规定,所以有可能一些mon在某一时刻不工作,后来恢复正常后状态就落后了。monitor三种角色:leader,最先获得最新的cluster map;provider,拥有最新的cluster map,但不是最先获得的;requester,状态落后,必须同步后方可工作。
在一个同步过程中,requester向leader请求同步,leader负责分派同步工作给provider,并告知requester去找provider,这样做分摊了工作负载。provider以chunk为单位发给requester最新的状态数据,同步完后,requester告知leader完成,leader恢复一个ACK宣布同步结束。
同步总是在一个新的monitor加入集群时发生。在运行过程中,cluster map不断更新,这三个角色也不断变化,如果provider接受到同步任务但自身状态落后于leader时,它可以终止同步并告知leader。同步完成后,ceph发出一个trimming,这个操作大概是修剪多余的状态数据,并且这个操作必须在PG状态是active+clean时进行。
trimming操作超时(默认30s): mon sync trim timeout
同步时心跳超时(monotor之间的心跳检查,默认30s): mon sync heartbeat timeout
同步时心跳检查间隔(默认5s): mon sync heartbeat interval
同步超时(默认30s): mon sync timeout
同步最大重试次数(默认5): mon sync max retries
同步最大负载量(默认1045676): mon sync max payload size
leader等待requester同步的最大时间(默认10s): mon accept timeout
map更新前收集更新信息的时间间隔(默认1s): paxos propose interval
收集更新信息的最小时间(默认0.05s): paxos min wait
trimming操作前能容忍的最大proposal数(默认30): paxos trim tolerance
未trimming时最大的版本数(默认100): paxos trim disabled max versions
Monitor版本租约秒数(默认5): mon lease
leader去更新其他monitor租约的时间间隔数(默认3s): mon lease renew interval
leader等待provider告知其版本的秒数: mon lease ack timeout
OSD map维持的最小版本号数量(默认500): mon min osdmap epochs
monitor维护的最多的PG map版本号数量(默认500): mon max pgmap epochs
monitor保留的最大的log版本号数量(默认500): mon max log epochs
(6)时钟
不同节点间时钟应该同步,否则一些超时和时间戳相关的机制将无法正确运行,运行又monitor的节点还需要安装NTP来同步时钟。然而NTP 级别的时钟同步还不够,即使NTP同步好,ceph也会报出时钟偏移警告,工作量,网络延迟,配置覆盖等也会对同步有影响。
相对于系统时间的偏移: clock offset
monitor计时间隔秒数(默认5): mon tick interval
monitor间的clock drift(时钟嘀嗒数?,默认.05s): mon clock drift allowed
时钟偏移补偿指数(默认5): mon clock drift warn backoff
leader时间检查间隔(默认300s): mon timecheck interval
(7)客户端
客户端每隔Ns尝试一个Monitor直到建立连接(默认3): mon client hung interval
客户端每个Ns会去ping一个monitor(默认10): mon client ping interval
每一个客户端信息产生的log entires数(默认1000): mon client max log entries per message
内存中的客户端信息数据大小(默认100ul << 20): mon client bytes
(8)杂项
集群允许的最大OSD数量(默认10000) : mon max osd
集群为客户端和daemon预分配的全局ID数量(默认100): mon globalid prealloc
写了这么多个对象后和底层文件系统同步一次(默认5): mon sync fs threshold
subscription 间隔秒数(默认500): mon subscribe interval
使最近的N个PGmap统计数据呈现平滑趋势(默认2): mon stat smooth intervals
monitor在bootstrapping前寻找其他Monitor的时间(默认2s): mon probe timeout
元数据和OSD信息可以在内存中驻留的信息大小(默认400ul << 20byte): mon daemon bytes
每个事件最大的log entries数(默认4096): mon max log entries per event
9、Heartbeat Settings
OSD靠定期检查heartbeat来确认相邻的OSD有没有down,以及在peer过程中检查错误和向monitor汇报自身情况,包括故障发生,PG状态改变,以及检查monitor有没有down,
(1)MONITOR SETTINGS
向monitor报告down的最小OSD数(默认1): mon osd min down reporters
OSD向monitor报告OSD down的最小次数(默认3): mon osd min down reports
宣布一个无响应的OSD down的超时(默认900): mon osd report timeout
自动标记为out的最大的CRUSH单位类型(默认rack): mon osd downout subtree limit
注:是不是说最大可以标记一个机架out了?
标记一个OSD状态为down和out之前ceph等待的秒数(默认300): mon osd down out interval
自动标记一个新加入的OSD状态为in(默认true) :mon osd auto mark new in
自动标记启动中的OSD状态为in(默认为false): mon osd auto mark in
标记在启动过程中被自动标记为out的OSD状态为in(默认true): mon osd auto mark auto out in
The minimum ratio of up Ceph OSD Daemons before Ceph will mark Ceph OSD Daemons down(默认.3): mon osd min up ratio
The minimum ratio of in Ceph OSD Daemons before Ceph will mark Ceph OSD Daemons out(默认.3): mon osd min in ratio
The number of seconds laggy estimates will decay(默认60*60): mon osd laggy halflife
The weight for new samples in laggy estimation decay(默认0.3): mon osd laggy weight
If set to true, Ceph will scale based on laggy estimations(默认true): mon osd adjust heartbeat grace
The weight for new samples in laggy estimation decay(默认.3): mon osd laggy weight
(2)OSD SETTINGS
心跳检查的OSD网络地址(默认主机IP): osd heartbeat address
OSDping它的peer的时间间隔(默认6s): osd heartbeat interval
OSD心跳停止间隔(默认20s): osd heartbeat grace
OSD ping一个monitor的时间间隔(默认30s): osd mon heartbeat interval
OSD报告monitor前等待的最大时间(默认120s): osd mon report interval max
OSD报告monitor前等待的最小时间(默认5s): osd mon report interval max
monitor恢复ACK的超时(默认30s): osd mon ack timeout
10、网络配置
(1)集群网络配置
配置字段为[global]
公共网络: public network
私有网络: cluster network
注:建议私有地址和internet还有公共网络部能互通,这个地址用来做OSD的心跳检查,对象的复制和恢复,单独配置私有地址而不是用公用网络做这些对性能有提升。
(2)monitor网络配置
配置字段[mon.a]
主机名(不要使用loaclhost): host
monitor 地址: mon addr
(3)OSD网络配置
配置字段[osd.0]
公共地址: public addr
私有地址: cluster addr
(4)绑定
OSD和MDS进程绑定的最小端口号(默认6800): ms bind port min
OSD和MDS进程绑定的最大端口号(默认:7100): ms bind port max
允许进程使用IPV6的地址(默认false): ms bind ipv6
(5)TCP
开启nodelay选项(默认true): tcp nodelay
注:ceph默认关闭了TCP的buffering,使得请求不缓存立即下发,这样增加了网络流量,增加了延迟如果你要传输大量小文件,就把这个选项关了吧。
收到网络连接终止时socket缓冲区大小(默认关闭): tcp rcvbuf
tcp读超时(默认900s): ms tcp read timeout
注:一个客户端请求另一个ceph daemon时需要新建立一个连接,但是又不想关闭现在的连接,现在的连接就不用了,过了这么多秒后,这个连接被标记为空闲状态。
如何正确配置tnsname.ora文件
可以在客户端机器上使用 Oracle Net Configuration Assistant 或 Oracle Net Manager 图形配置工具对客户端进行配置,该配置工具实际上修改 tnsnames.ora 文件,所以我们可以直接修改 tnsnames.ora 文件,下面以直接修改 tnsnames.ora 文件为例:oracle培训
该文件的位置为: …networkadmintnsnames.ora (for windows)
…/network/admin/tnsnames.ora (for unix)
此处,假设服务器名为 testserver,服务名为 orcl.testserver.com,使用的侦听端口为1521,则 tnsnams.ora 文件中的一个test网络服务名(数据库别名)为:
test = (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521)) ) (CONNECT_DATA=(SERVICE_NAME=orcl.testserver.com) ) )
PROTOCOL:客户端与服务器端通讯的协议,一般为 TCP,该内容一般不用改,
HOST:数据库侦听所在的机器的机器名或 IP 地址,数据库侦听一般与数据库在同一个机器上,所以当我说数据库侦听所在的机器一般也是指数据库所在的机器。在 UNIX 或 WINDOWS 下,可以通过在数据库侦听所在的机器的命令提示符下使用 hostname 命令得到机器名,或通过 ipconfig(for WINDOWS) or ifconfig(for UNIX)命令得到 IP 地址。需要注意的是,不管用机器名或 IP 地址,在客户端一定要用 ping 命令 ping 通数据库侦听所在的机器的机器名,否则需要在 hosts 文件中加入数据库侦听所在的机器的机器名的解析。
PORT:数据库侦听正在侦听的端口,可以察看服务器端的 listener.ora 文件或在数据库侦听所在的机器的命令提示符下通过 lnsrctl status [listener name] 命令察看。此处 Port 的值一定要与数据库侦听正在侦听的端口一样。
SERVICE_NAME:在服务器端,用system用户登陆后,sqlplus> show parameter service_name 命令察看。
如果你的主机支持.htaccess文件,合理的配置htaccess可以实现很多功能,分享一下我博客的htaccess文件的一些配置,需要的网页可以参考我的代码做合适的修改, 不明白的请留言
嗨, 百度, 这篇你就别收了, 噢,百度听不懂,转正题:
.htaccess 常用的一些配置
自定义php错误日志目录
把php运行中的错误日志保存到指定的目录, 这个很有用,经常查看错误日志可以帮我们检查程序问题, htaccess设置如下:
代码如下复制代码1.# 正式上传的程序关闭向客户端浏览器显示错误提示2.# php_flag display_startup_errors off
3.# php_flag display_errors off
4.# php_flag html_errors off
5.# 把错误日志保存到指定的目录中。
6.php_flag log_errors on
7.php_value error_log /home/lao8_org/error.log
网页Gzip压缩, 提高用户访问速度
网页打开速度的源于网页的大小和网速,当网速无法改善的时候只能改变网页的大小,gizp压缩就是这样一个功能。
这个绝对可以有,比如登录百度站长平台你会发现页面优化建议工具里有会有这个优化的提示,在.htaccess里加上这一段:
代码如下复制代码1. AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript备注:如果配置你的服务器默认就支持Gzip压缩请参考文章:apache%C5%E4%D6%C3/“ target=”_blank“>apache配置gzip压缩网页优化网速
用.htaccess纠正错误的网页编码
开发程序的朋友知道,如果a页面是gb2312编码的,b页面是utf-8编码的, 如果a页面include引用b页面就会产生乱码,可以用.htaccess 为网页修正编码:
代码如下复制代码1.2.AddDefaultCharset UTF-8
自定义404错误页面
我认为一个正常的博客/网站都应该有自己错误页面,这有利于我们增加用户体验,同时也有助于引导客户访问我们的网站,增加访问量,
先建立好一个404错误页, 然后在.htaccess里加入下面的代码即可:
代码如下复制代码1.ErrorDocument 404 /404.php举一反三,指定403:ErrorDocument 403 /403.html
首页301重定向
这个绝对必须有,有利于seo哦,比如输入lao8.org会自动转跳到www.111cn.net, 是在.htaccess加入下面的代码实现的:
代码如下复制代码1.RewriteEngine On2.RewriteCond %{HTTP_HOST} !^lao8.org$ [NC]
3.RewriteRule ^(.*)$ www.111cn.net/$1 [L,R=301]
RewriteEngine On的意思是开启url重写,这行要放在htaccess前面以便于后面调用
动态网页伪静态化的方法
代码如下复制代码1.RewriteRule ^id(d+).html /wenzhang.php?id=$1本文章来自:www.lao8.org/博客
小米4C优点:
1、屏幕和cpu还不错:
大家一定非常关心屏幕的问题,有部分网友还是怀疑小米用廉价天马屏替代高价的夏普屏幕。发布会上,雷军特别澄清,小米4c配备的5英寸1080P屏幕由夏普/友达/LG定制(确定不是天马屏)。相比传统屏幕,这款屏幕是用超薄材料定制,比普通屏幕薄20%,成本贵约90%,而媒体同仁们经检查底层代码之后也证实了这一点。
骁龙808是小米4c最大的绝招,价格是老罗坚果手机里面那块骁龙615的三倍。由于采用了双核A57+四核A53内核的架构,和骁龙810不相上下,基本上和性能不过时。
2、边缘触控:
一项被小米称为“黑科技”的功能,和苹果的3D touch相似,用于拓展手机屏幕的触控功能。这项功能目前有两种试用方法:一种是全局返回,省得大拇指移到手机右下角;一种是拍照,也是更适合单手操作。轻拍两下手机边缘,即可快速返回原界面;另外当你在拍照的时候,轻触手机边缘即可启动快门拍照。
其实这样的设计技术含量并不高,也就类似于老罗的锤子Rome在安卓上的再开发。但是这项功能还是相当实用的,简化了手指的操作步骤,对“单手党”来说绝对是一个福音。
3、双卡双待:
现在的全网通手机还是有个痛点,当电信卡和移动卡或联通卡合用,则电信卡必须设为主卡上4G网络,移动卡或联通卡只能上2G网。问题来了,如果电信卡上的流量用尽,而联通卡剩余流量很多,宝贵的流量岂不浪费了?小米4c不分卡1和卡2也不分主卡副卡,并且电信卡与移动联通卡同时使用时,都可以上4G网络。
小米4C缺点
1、红外操控:
小米4c宣称自带红外功能,可以用来控制电视、空调等设备。雷布斯还将小米4c的红外遥控功能集成电视节目单、语音搜索等,用户可以在手机上查看电视节目与预告。小编想说,前的电视上面已经拥有红外遥控,前的智能手机就能利用红外传送音乐和文本,小米4c把一个古董技术搬出来是否有点愚弄消费者之嫌?
2、高铁模式:
大家都知道手机上有飞行模式、勿扰模式……现在小米4c又给我们带来了“高铁模式”。小米称该模式可以自动调整手机信号发射,补偿高速移动带来的信号失真。雷军更是给出准确的数据结果:断网降低约85%,基站切换失败降低约90%,下载速度提升约20%。
事实没有想象的那么简单,据专业人士披露,多普勒效应与快速过区切换是两大问题造成高铁上信号不佳,高铁通常依靠扩大重叠区和基站协同技术来解决问题,这就涉及到手机信号发射塔。小米单单在手机端发力,并不能解决问题。
3、双击唤醒双击唤醒的原理非常简单,在关闭显示屏时保持触摸屏通电,所以这也让双击唤醒屏幕成为目前智能手机上几乎最方便、成本最低的解锁方式之一。
小米4C配置参数
型号小米4C标准版小米4C高配版主屏尺寸5英寸5英寸屏幕分辨率1920x1080像素 441PPI1920x1080像素 441PPICPU型号1.8Ghz高通808六核1.8Ghz高通808六核机身颜色白色,金属灰,桃粉色,柠檬黄,湖蓝色白色,金属灰,桃粉色,柠檬黄,湖蓝色RAM容量2GB DDR33GB DDR3ROM容量16GB(不可扩展)32GB(不可扩展)系统版本MIUI 6(基于Android OS 5.1)MIUI 6(基于Android OS 5.1)电池容量3080mAh(不可拆卸)3080mAh(不可拆卸)摄像头前置500万+后置1300万像素前置500万+后置1300万像素机身尺寸138.2x67.6x7.1mm(132g)138.2x67.6x7.1mm(132g)网络支持全网通双卡双待全网通双卡双待售价1299元1499元*注:本次笔者评测的是1499元高配版小米4C
[小米4c怎么样 小米4C配置参数]
本文章给大家介绍iis配置php无法上传文件解决办法,有碰到此类问题的同学可参考,
根据上面的描述,我怀疑问题出在IIS的权限配置上,IUSR_MACHINE的帐户对upload没有写入的权限,于是进行权限修改,IIS下的权限,NTFS下的权限都进行修改,但是终究都没用,查找网络上的资料也没有相应的,对上传页面进行测试,流程为:
swf文件调用save.php上传文件---->swf文件对上传的文件进行重命名--->名字返回给save.php--->显示出最后的名字。
现在的问题一直停留在swf对文件重命名的这里,一直没有到显示出最后的名字,并且swf文件不参与上传过程,那就只能在save.php文件中进行问题查找了,在该文件中进行测试,最后显示的名字所使用的变量为fileName,于是插入下面的语句进行测试:
echo ”fileName=2008*****.gif“;
这句话的作用就是使得fileName有值,save.php能正常显示,先把原来的语句一句一句的进行屏蔽测试,都正常的返回了,但是当测试到:
if (mailto:!@move_uploaded_file($f[%22tmp_name”], $dest_dir.'/'.$fileName)) header(“HTTP/1.0 404 Not Found”);
这句话的时候问题出现了,不能上传,查找上下文,一直没发现tmp_name的变量,不过看意思是先把文件上传到一个临时文件,再挪动到目的位置,那这个tmp位置在哪里呢?是不是这个位置不可写,才导致了无法上传文件?
查找网上资料,发现php.ini下面有2个地方关于上传的配置:
file_uploads = On 这里设置是否允许HTTP上传,默认应该为ON的
;upload_tmp_dir= 这里设置上传文件存放的临时位置
网上对于这2个地方的相关资料有:
I try to set up file uploading under IIS 7 and PHP 5.
First problem was to set 2 variables in php.ini
file_uploads = On //这里是说php.ini文件这个地方设置成On
upload_tmp_dir = “C:Inetpubwwwrootuploads” //这个路径就是自己设置的上传文件临时存储路径
For some reasons such directory name works,
but “upload_tmp” won't work.
The second problem was to set correct user rigths for upload folders where you try to save your file. I set my upload folder rights for the “WORKGROUP/users” for the full access. You may experiment by yourselves if you not need execute access, for example.
我的php.ini中upload_tmp_dir是被注释的,没有启用,更没有设置,可是为什么Apache2却可以正常上传呢?难道问题真的出在这里?
解决:
新建一个文件夹做临时上传目录,按照上面的英文说明修改php.ini中相应的那2项,把临时上传目录upload_tmp_dir设置成刚才建立的文件夹,把该文件夹的权限赋予“IUSR_计算机名”用户可写,重新启动IIS,上传试试,问题真的就这样解决了,
最终的分析答案:
上面的内容写于09年,但是现在2010年7月我新增一台服务器,又出现了这个问题,同时再次按照上面的解决方法实施,在操作的过程中大概是由于哪里出了错,竟然没有成功,不得不抽出点时间来研究具体原因,找到了最终产生这个问题的原因如下。
无法上传文件,不代表所有文件都无法上传,因为我的一个网站,flash调用fwrite()传头像之类的成功了,但是调用
代码如下复制代码@move_uploaded_file($f[“tmp_name”], $dest_dir.'/'.$fileName)这样的函数传照片的时候仍旧无法上传。
经过我的分析,原因是由于fwrite()是传的二进制文件,而move_uploaded_file()传的是文本文件,而windows操作系统是区分这2种文件的 [参考php手册fwrite()函数的说明],这也就是说这2种不同的文件在php环境下上传时所存储的临时上传目录是不同的,由于在配置IIS环境下的PHP的时候,设置的临时目录为E:tmp,设置该目录的iusr用户可写,二进制文件即可上传,所以我怀疑该目录就是二进制文件上传临时文件的存储位置,那么move_uploaded_file()传的文本文件的临时文件存储位置在哪里呢?其实就是在上面的那段英文里面,upload_tmp_dir设置的路径就是了,但是我的几台服务器中,每台服务器的这个设置的值都是被注释掉的“no value”,为什么有的服务器可以上传,而有的服务器不可以上传呢?这也就回到了以前我提出的问题,为什么Apache2可以上传而iis不可以上传呢?
这次我再次分析upload.php文件,分析其中造成该故障的代码具体内容如下:
代码如下复制代码// 检查是否有文件上传
if (! $_FILES['upload'.$num]['name'] == “”){
if ($_FILES['upload'.$num]['size'] < $max_size) {
1、 echo “文件上传路径:”.$location.$_FILES['upload'.$num]['name'];
2、echo “文件临时文件名:”.$_FILES['upload'.$num]['tmp_name'];
3、 move_uploaded_file($_FILES['upload'.$num]['tmp_name'],$location.$_FILES['upload'.$num]['name']) or $event = “Failure”;
} else {
$event = “File too large!”;
}
其中正常代码中第2句是不存在的,为了测试方便我加上来的,它的主要目的就是测试我的php.ini没有设置upload_dir_tmp的值的时候,上传的文件临时保存在哪里的,经过这个测试发现原来在不配置php.ini的upload_dir_tmp的值的时候,默认的存储位置是在C:windowstemp目录,并且临时文件是以.tmp为后缀存储的,该文件马上就会被删除,所以你想通过操作系统的文件修改搜索功能是无法找到的,也就无法找到upload_dir_tmp的默认路径是哪里。
既然找到了upload_dir_tmp的默认路径了,那么修改c:windowstemp的访问权限,赋予IUSR_用户可写,重启动IIS Admin服务,上传文件,终于成功了。这就是为什么我的多台服务器upload_dir_tmp的值都为空的时候有的可传,有的不可传的原因。