【ThinkPHP学习】ThinkPHP的模块绑定与域名部署

RT.

1:目的

我现在有一个项目,使用ThinkPHP开发。网站首页的地址是:

http://www.A.com/index.php/Home/Index/index.html

我现在需要达到的目标是,在访问A.com的时候,等价于访问http://www.A.com/index.php/Home/Index/index.html

2:环境介绍

我的环境是LAMP(Linux+Apache2+Mysql+PHP),使用框架是ThinkPHP 3.2.2版本。

3:思路介绍

3.1.设置服务器根目录为该项目文件夹;

我的服务器操作系统为ubuntu。根据查考,debian/ubuntu的apache2的配置文件长得比较奇葩,设置服务器默认访问的根目录,配置文件在/etc/apache2/sites-available/000-default.conf中,找到如下字段:

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/sx  //将该配置选项后面的路径修改为你的项目根目录
这样子通过A.com就能直接访问项目文件夹。当然,如果你的服务器只是用来给一个网站服务或者是有建多个虚拟机,可以将整个项目文件夹下的内容放在默认的Apache服务器目录下,就可以免去这一步了。

3.2.设置服务器默认访问的页面为index.php;

第二步,是修改服务器默认访问的页面。我们的Apache2默认访问的页面是index.html。

你的ThinkPHP无论是单入口文件(只有index.php)还是多入口文件(例如index.php负责Home模块,而admin.php负责Admin模块)。都可以通过这个设置去使得在访问A.com的时候自动定位的index.php或者admin.php中去。

找到/etc/apache2.conf文件,并找到如下字段:

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
        DirectoryIndex index.php   //设置的默认访问的页面,也可以是admin.php
</Directory>
这个通过这样设置,在访问A.com的时候就等于访问 A.com/index.php/

3.3.设置ThinkPHP框架默认访问的模块为Home;

到了这里,我们要设置默认访问的模块了。

参考ThinkPHP提供的官方文档:http://document.thinkphp.cn/manual_3_2.html#module_deploy

        我们在ThinkPHP的convention.conf配置文件中,一般是在下载的ThinkPHP/conf文件夹中,找到如下字段:

'MODULE_DENY_LIST'      =>  array('Common','Runtime'),
这个字段是决定了不能够从浏览器访问的的模块的名称,在下面我们加上允许访问的模块的名称,并设置好默认访问的模块名称:

     /*允许访问的模块列表*/
    'MODULE_ALLOW_LIST' => array('Home','Admin'),
    /*绑定默认访问的模块*/
    'DEFAULT_MODULE'    => 'Home',
通过这几步的设置,我们在访问A.com的时候等同于访问的地址是: A.com/index.php/Home/Index/index.html
由于ThinkPHP默认的的机制是访问模块下的Index控制器的index方法,如果我们需要被访问的控制是Index,方法是index,那么只需要设置到这一步即可,如果不是,则建议将需要被访问的控制器和方法命名为Index和index,或者,将我们需要被默认访问的控制器的名称绑定到上面默认访问的模块后,并将方法改成index:

‘DEFAULT_MODULE’   =>  'Home/Index'

3.4.检查配置跳转链接以及各项资源的引用地址正确性:

我们项目中资源的根目录如果被更改了,那么需要将所有之前引用的资源(特别是View文件夹下的JS和CS,图片等)的连接查看一边,按照实际的情况进行修改,否则会导致网站的样式,功能,以及内容的损坏。

同样,特别在一些文件上传并将链接写入数据库的位置,要修改提交到数据库中的连接模板。否则,会造成很大的麻烦。


好了,通过这样子4步的设置,我们就可以通过A.com来访问到我们的项目默认访问的首页A.com/index.php/Home/Index/index.html

如果你想在平时的访问过程中,隐藏掉入口文件index.php。可以参考一下我的这篇文章:

【ThinkPHP学习】 Ubuntu apache2 URL重写配置过程

最后,做完这一些之后,你需要做的最后一步,也是第5步,是重启apache服务器:

sudo /etc/init.d/apache2 restart


猜你喜欢

转载自blog.csdn.net/killzero/article/details/38682097