这两天在mac和win7的电脑上想自己配置下Apache看看,折腾了好一阵。
Mac上其实比较简单,Apache和php都是预装的,Apache配置文件httpd.conf在/etc/apach2/下,要使用php的话需要将 LoadModule php5_module libexec/apache2/libphp5.so 前的分号注释删掉。 输入命令sudo apachectl start 后启动服务器,就可以在localhost看到“It works!”的网页了。
网页根目录在 /Library/WebServer/Documents/。 可以自建目录~/Sites,这里的网页可以被 http://localhost/~username 浏览,不过需要添加 username.conf 到/etc/apache2/users 里,内容是:
<Directory "/Users/username/Sites/">
Options Indexs MultiViews
Allow Override All
Order allow,deny
Allow from all
除了第一行知道是网页根目录,别的确切意思也不大明白。
比较关键的是文件权限的设定,要不然很可能导致看不到网页。可以参考下鸟哥Linux基础教学里的第六章。 php的配置文件放在/etc里,有php.ini.default可以参考下。
然后就是比较蛋疼的win7下的Apache+PHP+MySQL配置了,首先要注意的是版本问题,现在还是没怎么弄清楚。PHP最好是VC6编译的。
之前把PHP5.2配置成用FastCGI在IIS上跑的,在配置文件里添加了几行。心想着Apache应该也用这个PHP没问题吧,于是下载了Apache2.2,配置与Mac里差不多,同样要在httpd.conf里加载php5模块:
LoadModule php5_moudle "路径/php5apache2_2.dll"
PHPIniDir “<php.ini的存放路径>”
然后跑了一下phpinfo()是可以看到的。接着连接MySQL就总是php里的extension无法加载,查了很多,都说是 libmysql.dll 的问题。基本建议是复制到system32里,我试过后无效 (php配置文件里的extension load前的注释删了,路径也没问题),而且官方也不建议这种添加Path的方法。在php.ini里可以使用include添加路径,看来问题应该不是这个。后来有看到说要在Apache里配置load这个libmysql.dll,同样无法加载。不知道问题出在哪里,待查。
暂时用XAMPP这个集成的东东。。。记得没怎么配置,就设置了一下网页根目录,确实省事。