又是一个项目,为多个纯静态html页面h5游戏页,原本是一个简单得不能的项目,但是却多生了事端。
我按照apache的惯例,将文件上传到服务器的DocumentRoot目录,进行测试了。
刚开始使用目录下index.html访问该游戏,完全OK,测了一段时间,换成另一个文件index2.html,却不行了。报了500错误。
我以为或者我们都以为是html页面写错了,于是反复改语法,再试再试,结果却仍是不行。最后到只加载一行<h1>hello, world</h1>,也不行。焦头烂额啊,咋办呢?
1. 另外在服务器上单独新建一个a.html。输入简单的页面元素访问,Not ok,500错误依然!
2. 将同样的文件拿到本地环境运行,跑得非快。这时,已经开始怀疑是服务器的问题了,但是没有办法,想多试试本地,继续在本地新建文件访问,结果本地服务器报了个403错误,乱七八糟的搞了一通,没有改好。算了,还是回测试服务器弄吧。
3. 新建readme.txt访问,结果没有访问到。这最终被证明是大小写没有写对的原因,哎呀,我去。
4. 新建test.php文件访问,结果一切正常。从这一刻开始,认为服务器只解析.php文件了。但是.js文件却又是能访问的,这。。。
<?php echo "hello, world!";
5. 查看httpd-vhosts.conf文件。确认没有什么特殊的配置。
<VirtualHost *:80> DocumentRoot /www/web/m_admin/public_html #ServerName admin.mobanker.com ServerName 192.168.0.31 ServerAlias wx.sd.com <Proxy *> # #Order deny,allow # Order allow,deny Allow from all </Proxy> ErrorDocument 400 /errpage/400.html ErrorDocument 403 /errpage/403.html ErrorDocument 404 /errpage/404.html <IfModule mod_deflate.c> DeflateCompressionLevel 7 AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php AddOutputFilter DEFLATE css js html htm gif jpg png bmp php </IfModule> ProxyPass /eagleeye http://192.168.1.5:33008/eagleeye ProxyPassReverse /eagleeye http://192.168.1.5:33008/eagleeye </VirtualHost> <Directory /www/web/m_admin/public_html> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
6. 查看http.conf文件
# 如下参数是通过命令 cat /etc/httpd/conf/httpd.conf | grep -v "^#" | grep -v "^$" 筛选出来的
ServerTokens OS ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 120 KeepAlive Off MaxKeepAliveRequests 100 KeepAliveTimeout 15 <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule> <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> Listen 80 LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_alias_module modules/mod_authn_alias.so LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule ldap_module modules/mod_ldap.so LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule logio_module modules/mod_logio.so LoadModule env_module modules/mod_env.so LoadModule ext_filter_module modules/mod_ext_filter.so LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule expires_module modules/mod_expires.so LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.so LoadModule dav_module modules/mod_dav.so LoadModule status_module modules/mod_status.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule info_module modules/mod_info.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so LoadModule actions_module modules/mod_actions.so LoadModule speling_module modules/mod_speling.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule cache_module modules/mod_cache.so LoadModule suexec_module modules/mod_suexec.so LoadModule disk_cache_module modules/mod_disk_cache.so LoadModule file_cache_module modules/mod_file_cache.so LoadModule mem_cache_module modules/mod_mem_cache.so LoadModule cgi_module modules/mod_cgi.so LoadModule version_module modules/mod_version.so Include conf.d/*.conf User apache Group apache ServerAdmin root@localhost ServerName 127.0.0.1:80 UseCanonicalName Off DocumentRoot "/var/www/html" <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <IfModule mod_userdir.c> # # UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions). # UserDir disable # # To enable requests to /~user/ to serve the user‘s public_html # directory, remove the "UserDir disable" line above, and uncomment # the following line instead: # #UserDir public_html </IfModule> DirectoryIndex index.html index.html.var AccessFileName .htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> TypesConfig /etc/mime.types DefaultType text/plain <IfModule mod_mime_magic.c> MIMEMagicFile conf/magic </IfModule> HostnameLookups Off EnableSendfile off ErrorLog logs/error_log LogLevel warn LogFormat "%T %h %v %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O \"%{X-Forwarded-For}i\" " combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent CustomLog logs/access_log combined ServerSignature On Alias /icons/ "/var/www/icons/" <Directory "/var/www/icons"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> <IfModule mod_dav_fs.c> # Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb </IfModule> ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^ DefaultIcon /icons/unknown.gif ReadmeName README.html HeaderName HEADER.html IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t AddLanguage ca .ca AddLanguage cs .cz .cs AddLanguage da .dk AddLanguage de .de AddLanguage el .el AddLanguage en .en AddLanguage eo .eo AddLanguage es .es AddLanguage et .et AddLanguage fr .fr AddLanguage he .he AddLanguage hr .hr AddLanguage it .it AddLanguage ja .ja AddLanguage ko .ko AddLanguage ltz .ltz AddLanguage nl .nl AddLanguage nn .nn AddLanguage no .no AddLanguage pl .po AddLanguage pt .pt AddLanguage pt-BR .pt-br AddLanguage ru .ru AddLanguage sv .sv AddLanguage zh-CN .zh-cn AddLanguage zh-TW .zh-tw LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW ForceLanguagePriority Prefer Fallback AddDefaultCharset UTF-8 AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddHandler type-map var AddType text/html .shtml AddOutputFilter INCLUDES .shtml Alias /error/ "/var/www/error/" <IfModule mod_negotiation.c> <IfModule mod_include.c> <Directory "/var/www/error"> AllowOverride None Options IncludesNoExec AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all LanguagePriority en es de fr ForceLanguagePriority Prefer Fallback </Directory> </IfModule> </IfModule> BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0 BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch "MS FrontPage" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully BrowserMatch "^gnome-vfs/1.0" redirect-carefully BrowserMatch "^XML Spy" redirect-carefully BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully <IfModule mod_proxy.c> ProxyRequests On <Proxy *> Order allow,deny Allow from all </Proxy> NameVirtualHost *:80
6. 中途查找了一个SSI相关的知识,还加了下.html的后缀。把根目录给改过,结果.html能访问了,.php却不能访问了,哎,还是只能撤消回来。
7. 去找运维同事解决,未果。他也忙也不忍心一直耽搁别人。不过通过查看错误日志了解到了一些端倪。
tail -f access_log error_log
8. 发现很多文件都会去访问某个php文件,怀疑请求被转发掉了。然后想到了apache的.htaccess文件,去查看,终于知道了原因,果然原来请求已被路由至有错误的文件去了。
RewriteEngine On^M RewriteCond %{REQUEST_URI} !zq^M RewriteRule \.(pfx|p12|der|jks|rsa|cer|cert|crt|csr|pem|sql)$ - [F,L]^M RewriteRule ^rest/(.*)$ /rest.php/$1 [L]^M RewriteRule ^(app|wechat)/(.*)$ /uzone/rest.php/$1/$2 [L] #no rewrite sth #RewriteRule ^([a-z0-9_~%~.~+]+)/index([0-9]+).html /index.php\?$1&page=$2 [L]^M RewriteRule ^([a-z0-9_~%~.~+]+)/a.html /index.php\?$1/$2 [L]^M RewriteRule ^([a-z0-9_~%~.~+]+)/a([0-9]+).html /index.php\?$1/$2 [L]^M RewriteRule ^([a-z0-9_~%~.~+]+)/a([0-9]+).html\?(.*) /index.php\?$1/$2&$3 [L]^M RewriteRule /([a-z0-9_~%~.~+]+)/index.html\?(.*) /index.php\?$1&$2 [L]^M RewriteRule ^(.*)/u/([0-9]+)/(.*)$ /index.php\?u&$2&$3 [L]^M RewriteRule ^(.*)/u/([0-9]+)/(.*)/$ /index.php\?u&$2&$3 [L]^M RewriteRule ^(.*)/u/([0-9]+)$ /index.php\?u&$2 [L]^M RewriteRule ^(.*)/u/([0-9]+)/$ /index.php\?u&$2 [L]^M RewriteRule /([a-z0-9_~%~.~+]+)/index.html\?(.*) /index.php\?$1&$2 [L]^M RewriteRule /([a-z0-9_~%~.~+]+)/index([0-9]+).html\?(.*) /index.php\?$1&page=$2&$2 [L]^M RewriteRule ^channel/(.*)$ /index.php\?$1 [L]^M RewriteRule ^data/upes/images/(.*)$ /dataacc/ime.php\?%{QUERY_STRING} [L]^M RewriteRule ^data/cms/content/info/(.*)$ /dataacc/ime.php\?%{QUERY_STRING} [L]^M RewriteRule ^voices/record/(.*)$ /dacc/image.php\?%{QUERY_STRING} [L]^M RewriteRule ^pay/(.*)$ /index.php [L]^M ^M Options -Indexes^M ^M # zhima v3^M RewriteCond %{QUERY_STRING} \bstate=v3@^M RewriteRule ^alipay/auth/.*$ alipay/auth_v3/ [QSA,L]^M
将该路由注释去除后,问题得以解决。
哎,总算完结。凡事还得自己努力啊! JAVA还在好好学习中,我靠后面还有考试!
apache 运行php环境之困扰,无法加载多个不同的.html文件
原文:http://www.cnblogs.com/yougewe/p/6294019.html