安装好xampp后,默认文档的根目录为 /opt/lampp /htdocs(中的DocumentRoot),以下文件路径都是相对路径。
在本机的firefox输入 localhost 后,首先访问 index.php , 而 index.php 中会重定向为目录 xampp ,
点击(此处)折叠或打开
- header('Location: '.$uri.'/xampp/');
点击(此处)折叠或打开
<?
- if(file_get_contents("lang.tmp")=="")
- {
- header("Location: splash.php");
- exit();
- }
- ?>
splash.php的作用是让用户选择适合的语言,打开文件看一下就可以知道。splash.php中的语言选项都链接到了lang.php这个文件,通过附加"?参数 "来传递用户的选择。
lang.php主要干了两件事:1.将用户的选择写入lang.tmp,如"zh” “en”等 。2. 重定向回xampp/index.php。
xampp/index.php文件中html部分的代码通过读取lang.tmp文件中的内容来实现不同语言版本的xampp start page。
本来整个过程可以就此结束,但由于好奇,用vim打开lang.tmp并将"zh"改为了"en",于是就出现了一系列问题。
1. lang.tmp是一个二进制文件,在vim中修改后再保存会多一个end-of-file,同样对于zh,二进制文件大小为2Byte ,文本文件为3Byte。如果想用vim修改二进制文件参考链接
http://www.2cto.com/os/201302/187409.html ,对于这种情况firefox提示:
PHP Warning: include(lang/en.php): failed to open stream: No such file or directory in /opt/lampp/htdocs/xampp/index.php on line 12
PHP Warning: include(): Failed opening 'lang/en.php' for inclusion (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/xampp/index.php on line 12
2. 因为上一个错误开始未找到原因,所以将该文件删掉了,以root的身份重建了lang.tmp,结果这次提示permission denied。后来将xampp卸掉重装,特意观察了lang.tmp的初始
属性:-rw------- daemon daemon ,再结合/opt/lampp/etc/httpd.conf中的内容可知,默认情况下apache的用户是工作组daemon中的用户daemon,所以可以读写lang.tmp,但
是我以root身份创建的lang.tmp属性为-rw-r--r-- root root,对于daemon用户来说不可以写,所以permission denied。