lamp

配置php.ini路径

2009-03-06

php默认规定php.ini文件的路径必须在C:\windows路径下,其实这个路径是可以配置的。

我们可以简单的在apache中配置php的路径,在apache的conf\httpd.conf文件里面增加

# configure the path to php.ini
PHPIniDir "D:/php"

通过上面的配置就可以是php.ini与php.exe在同一个文件夹了。

据说系统会以下面的顺序查找php.ini的路径:

*conf\httpd.conf的PhpIniDir配置
*注册表键regedit值HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath
*当前工作目录(CLI)
*网站服务器WWW目录(SAPI),或PHP目录
*Windows目录C:\windows or C:\winnt,或者–with-config-file-path compile time option

当然是第一种方法最好!

上面那个顺序我没试,有兴趣的可以尝试一下。

参考:http://us2.php.net/manual/en/configuration.file.php

mysql数据库导入大sql文件

2008-10-20

这几天帮一朋友迁移网站,遇到了超大sql文件mysql还原的问题,这个sql文件足有300多M。

找到了网上一些还原的方法。

如果能登录shell的话,可以用mysql命令行工具或者mysqlimport还原,这里有个介绍 Wordpress 超大数据库的导入

也可以使用phpmyadmin等工具还原,但是这种工具通常都有文件大小限制,比如2M,主机商可以在php.in中配置此参数。

http://www.dreamdu.com/blog/2008/10/20/big_sqlfile_import_mysql/

编写程序将超大sql文件导入mysql数据库

我现在是即没有shell权限,又无法使用phpmyadmin还原!怎么办呢?我想到了一个方法:

1,编写程序(sql2php.exe),做下面工作

2,把sql文件改为php文件,将sql语句全部改为可执行的php语句,例如:

sql语句:

insert...

php语句:

$sql = "insert...";
$result=mysql_query($sql, $conn) or die(mysql_error());

3,将sql文件分开,每个表生成一个文件,而且如果文件大于20M的话,继续分成1号文件,2号文件…,保证每个文件不大于20M。

4,通过ftp上传到服务器,编写一个遍历所有文件的php程序,运行所有上面生成的php文件,数据库导入成功。

最初我使用php编写了一个程序拆分sql数据库,但是发现这简直是一场噩梦,不是php死了,就是浏览器死了,而且cpu总是居高不下,看来这种浏览器下php处理大文件的方式不好使。(也可能是我水平问题)于是我抛弃脚本语言使用应用程序搞了一个sql2php.exe,而且单独开了一个线程搞定了此事,我发现处理300多M的文件才用了不到2分钟,晕死了!前面搞php程序分解文件并测试我竟然花费了2个小时!!用sql2php.exe搞还没用半小时!

具体方法已经介绍完了,理论上讲这种方法可以导入还原任意大小的sql文件。有和我遇到同样问题的朋友可以自己编写相关的程序,如果不会编写程序的朋友也可以花20元钱买我这个小程序sql2php.exe与其源代码。我也尝试收费一把,哈哈。可以使用支付宝支付,见付款方式。20元钱一个sql2php.exe并附带sql2php.exe的源代码应还算合理吧,而且我可以做些简单的(只包括导入数据)技术支持。在我们这20元正好一顿午饭,就算请我一对儿,呵呵。

用google浏览其它网站的目录

2008-09-10

今天在google上搜了一下google_code_prettify,没想到直接找到了好多网站的目录,还都是老外的!这也太不注意了。要避免访问者直接进入目录最简单的方法就是在.htaccess文件里面添加一句

Options -Indexes

Apache “Unable to open logs” 启动错误的解决

2008-09-08

今天在apache下面新建一个虚拟目录,重启apache报错“Unable to open logs”,很奇怪以前没遇到过,在网上搜了一下没搜到,仔细看了看httpd.conf文件,发现原来我新建的虚拟目录的代码是拷贝上面的,两个虚拟目录使用了同一个端口,呵呵 马虎呀。

cmd方式登录mysql

2008-08-14

可以通过windows的cmd方式登录mysql,首先打开cmd,定位到mysql bin目录下,输入 mysql -uroot -p回车,再输入密码,即可登录。