欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境

程序员文章站 2022-06-19 19:11:13
1. 安装配置apahce   安装配置apache是比较简单的, 跟着安装向导一步步往下走就能搞定。最多就是在配置端口的地方需要注意一下,如果已经安装了其它web服务...

1. 安装配置apahce

  安装配置apache是比较简单的, 跟着安装向导一步步往下走就能搞定。最多就是在配置端口的地方需要注意一下,如果已经安装了其它web服务器占用了80端口,那记得配置的时候选一个别的端口。向导中忘了设置,在apache的conf/httpd.conf中修改下面这句就好:

listen 127.0.0.1:80

2. 安装配置php5

  php5也是一路安装就完了。要让apache能解释php页面,继续修改apache的conf/httpd.conf文件。 首先,假设php5是安装在d:\php5目录。

  首先是要在apache中载入php5的模块,加下面这句:

loadmodule php5_module d:/php5/php5apache2_2.dll

  然后是让apache认识php页面的mime,找到<ifmodule mime_module>块,在这个块里加一句addtype语句:

<ifmodule mime_module>
    ...
    addtype application/x-httpd-php .php
    ...
</ifmodule>

  最后还要把index.php设置成默认页面,这样在浏览时没指定页面的情况下会自动找到index.php。找到<ifmodule dir_module>块,修改里面的directoryindex配置:

<ifmodule dir_module>
    directoryindex index.html index.htm index.php
</ifmodule>

  这里要注意默认页面的顺序,按上面的配置,如果一个目录下同时存在index.html和index.php的情况下,会优先找到并打开index.html。

  最后还要让apache能找到php的配置。一般说法是把php.ini拷贝到windows目录下,但是我宁愿在apache中配置这个位置: 

<ifmodule php5_module>
    phpinidir d:/php5/php.ini
</ifmodule>

  好了,现在php应该配置完了,写个最简单的php试试看——启动或重启apache服务器,在apache的htdocs目录下去新建个phpinfo.php文件(如果修改了documentroot,就根据修改后的documentroot决定位置),内容如下:

<?
phpinfo();
?>

  现在打开浏览器看看(非默认端口记得写端口号),看看效果。

3. 安装配置cakephp

  所谓安装,其实就是解压而已。先把cakephp解压到d:\cakephp,那么cakephp解压出来的目录结构大概是这个样子:

d:\cakephp
│  .htaccess
│  index.php
│  readme
├──app
│  └──webroot
├──cake
└──vendors

  从google上的各种资料来查看,web应用的大概有三种配置方式,连介绍的顺序都没变过。其中第二种,也就是不改变cakephp的目录结构,也有一定安全性的一种,我觉得还不错,采用了。

  先要把cakephp下面的app/webroot目录设置成apache的documentroot;然后要打开rewrite模块(去掉注释符号);还要配置documentroot目录的allowoverride属性改为all。那么要修改apache的配置文件的下面这些内容:

...
loadmodule rewrite_module modules/mod_rewrite.so
...
documentroot "d:/cakephp/app/webroot"
...
<directory "d:/cakephp/app/webroot">
    allowoverride all   
</directory>
...

  然后再次重启apache,访问试试,这时候应该能显示cakephp的一些信息了。

  如果配置cakephp的时候采用的高级配置,在试运行的时候可能会遇到页面上有如下这样的警告:

warning (512): cache not configured properly. ...
warning (2): array_merge() [function.array-merge]: ...
warning (2): array_merge() [function.array-merge]: ...

  遇到这个问题我真是头大,查了半天资料,结果在几乎绝望的时候,不知道在哪里看到一则信息,说是要让app下的tmp/cache/persistent目录有写权限。查看了一下,原来tmp并不存在cache目录,所以自己创建了cache/persistent目录。如果在在linux目录下,还要给这个目录777权限。

4. 安装配置mysql

  mysql的安装也很简单,安装完之后也有向导配置一些东西。这些都是数据库上的事情,根据向导一步步操作就好。关键是要让php和cakephp能使用mysql数据库。

  关于php中的配置,直接修改php.ini,把extension=php_mysql.dll前面的注释符号去掉,也就是

...
extension=php_mysql.dll
...

  然后把刚才写的phpinfo.php拷贝到cakephp的app/webroot下面来,再浏览一次,看看页面中有没有关于mysql的配置信息——多半没得。因为还少做了点事情——我很郁闷,这里就耽误了我半天时间。

  php5目录下有一大堆dll,直接把这些dll拷贝到apache的bin目录下去(如果你的php5目录在path中,也许不用这么麻烦)。现在再看看,页面上应该有mysql的配置信息了吧。

  cakephp的配置在app目录下的config/database.php中。没发现这个文件么?有没有看到一个database.php.default?把它拷贝一份更名为database.php就好。然后当然还要改点东西。

  这个配置里只有一个database_config类,它有一个$default变量,保存就是默认数据库的配置信息。差不多配置成这个样子:

var $default = array(
    'driver' => 'mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'your-username',
    'password' => 'your-password',
    'database' => 'your-database',
    'prefix' => '',
);

  注意login、password和database三项根据实际情况来配置。配置完成后浏览,这个页面上应该有一句“your database configuration file is present. ”。如果你的数据库准备好了,会看到“cake is able to connect to the database.”;如果没准备好,可能会看到一些警告或者错误消息。

小结

  这个配置真是累死人。谁有兴趣做个完整安装包吧,根据安装位置自动配置,多好!或者做个gui或者web界面的配置程序也不错。