这几天呢,断断续续地在看孙叔华老师的ThinkPHP教程,期间还做了一些其他事情,出去办了点事,总结总结下一学期规划等等,不知不觉间又过去了大半个星期。现在呢,看完了一天的教程,在这里,还是希望稍微总结一番,加强自己的印象。

既然是学习ThinkPHP,那第一步肯定是要先获取该框架,可以从GitHub主页将其下载到本地。下载完成后,可以看到其初始目录如下:

其中的ThinkPHP目录结构如下:

有关这些文件夹的具体作用,可以参照下图(参考ThinkPHP3.2.3开发手册

该视频教程是以雍达商城为实例,进行一步步改进,商城模板的下载链接为百度网盘链接,提取密码为4fjw

商城模板里有写好的前端和后台代码,而我们接下来需要去做的就是利用ThinkPHP框架将商城模板结合起来。

我们在安装Apache的时候,知道PHP的默认工作空间是在Apache目录下的htdocs文件夹中,

而为了方便起见,我们通常都会去设置一个虚拟目录,将工作空间转移到其他任何位置,便于自己的查找和操作等。另外,接下来的过程中我会使用zend studio来编写文件,它同样也有一个workspace,所以在这里,将二者结合起来,我在D盘新建了一个zend文件夹,再在zend文件夹中新建一个workspace,我会将Apache的工作目录和zend studio的工作空间均置于此处,这样方便自己的操作。

虚拟目录设置

经过前面的分析,我们了解到,Apache的默认目录位于D:/phpenvir/Apache2.4.25/htdocs,而我接下来要将其修改为D:/zend/workspace

打开Apache的安装目录,在conf文件夹下打开httpd.conf文件,Ctrl+F找到下面的代码:

#默认工作空间目录,将其关闭(在前面加#号即可)
DocumentRoot "D:/phpenvir/Apache2.4.25/htdocs"

接着Crtl+F,找到<IfModule dir_module>这一块,在其中加入如下代码:

<IfModule dir_module>
#设置缺省载入界面
DirectoryIndex index.html index.htm index.php
#设置站点别名,和网页访问路径有关
Alias /myweb "D:/zend/workspace"
#定义目录权限设置
<Directory "D:/zend/workspace">
#Indexes用于显示目录结构,MultiViews是搜索功能,用于进行文件名模式匹配
Options Indexes MultiViews FollowSymLinks
#不允许覆盖
AllowOverride None
#设置访问权限
#先允许,后拒绝
Order allow,deny
#允许所有人访问
Allow from all
#对这个目录给予授权
Require all granted
</Directory>
</IfModule>

保存文件,重启Apache,在浏览器中输入 http://localhost/myweb 即可以正常访问,如下图:

zend Studio工作空间设置

具体流程: Windows->Preferences->General->Starup and Shutdown->Workspaces->选中Prompt for workspace on statup这一项,关闭zend studio重新打开即可调整workspace路径地址,如下图:

虚拟目录和zend studio工作空间设置好之后,我们就可以在D:/zend/workspace文件夹中新建项目了。此时我们打开工作目录的路径地址为 http://localhost/myweb

虚拟主机配置

这里可以再做一件事(也可以略去),例如我们希望通过 http://www.myweb.com 这样一种方式来进行访问网页,但是我们并未申请该域名,直接进行访问 www.myweb.com 是行不通的(不过这个域名好像已经被其他人注册使用了,但终归是不能为己所用),这时我们可以去设置一个虚拟主机,通过修改本地hosts文件,对该域名进行解析,就可以在自己电脑上使用 www.myweb.com 来访问网页了(当然仅限于在自己电脑上,其实也没太大用途...而修改hosts文件翻墙也大致是利用了这个原理)。具体流程如下:

  • 打开Apache的安装目录,在conf文件夹下打开httpd.conf文件,Ctrl+F找到下面的代码:

      #Virtual hosts  去掉下面一行前面的#号,启动虚拟主机配置
    #Include conf/extra/httpd-vhosts.conf
  • conf目录下的extra文件夹下找到httpd-vhosts.conf文件,在文件最后加入下面一段代码:

#指定虚拟主机的IP地址和端口号,默认为127.0.0.1
<VirtualHost *:80>
#主机名称
ServerName www.myweb.com
#网站目录
DocumentRoot "D:/zend/workspace"
DirectoryIndex index.html index.htm index.php
<Directory "D:/zend/workspace">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
  • 打开位于C:/Windows/System32/drivers/etc目录下的hosts文件,在文件末尾添加一行代码:

       127.0.0.1           www.myweb.com

将该域名与本地主机建立解析关系。如下图所示:

  • 以上修改完成之后,重启 Apache服务器,在地址栏输入 http://www.myweb.com 即可以打开自己的工作目录。

阅读原文

ThinkPHP框架学习(一)的更多相关文章

  1. 【ThinkPHP框架学习 】(1) --- thinkphp 3.2.3 验证码验证使用教程分享

    框架版本:ThinkPHP框架     thinkphp 3.2.3 生成验证码 下面是最简单的方式生成验证码: $Verify = new \Think\Verify(); $Verify-> ...

  2. ThinkPHP框架学习(二)

    在上一节中,我主要讲到了如何获取ThinkPHP框架,以及虚拟目录和虚拟主机的配置.准备工作完成之后,就可以利用ThinkPHP去部署项目了. 先在工作目录(D:/zend/workspace)下新建 ...

  3. ThinkPHP框架学习摘要

    框架在linux与win下区别 1.文件权限设置: 2.大小写不规范: 学习框架的基本思路 : 1.如何收入并配置框架: 2.Controller的命名规范与书写规范: 3.Model的命名规范与书写 ...

  4. 使用memcache(thinkphp框架学习)

    $memcache = new Memcache; $memcache->connect("localhost",11211); $memcache->set('sxt ...

  5. thinkPHP框架学习笔记

    class ZhuantiAction extends Action { public function index() { $name = trim($this->_get('name')); ...

  6. 【ThinkPHP框架学习 】(2) --- 后台管理系统如何用iframe点击左边右边局部刷新

    如题:         在写后台管理系统时,需要实现后台界面的局部动态刷新.         左边的导航栏使用a标签进行设置,通过href和target属性的配合,就可以将iframe中的子页实现动态 ...

  7. Yii框架学习 新手教程(一)

    本人小菜鸟一仅仅,为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识,小菜鸟创建了一个群.希望光临本博客的人能够进来交流.寻求 ...

  8. 【PHP ThinkPHP框架】小bug汇总[更新]

    目录结构 1.函数调用 2.绑定select下拉框数据 3.PHP查询功能 4.格式化时间和价钱 5.IF标签比较两个变量 6.eq标签比较两个变量 7.新增信息或者修改信息的自动验证和自动填充 8. ...

  9. thinkPHP框架介绍(一)

    原文:thinkPHP框架介绍(一) 一.ThinkPHP的介绍 期间有对ThinkPHP框架在学习上的问题欢迎大家交流:QQ:812231134 MVC M - Model 模型           ...

随机推荐

  1. 算法练习-002-返回一个set数组

    题目描述: 写一个函数,它的作用是接受一个整数(假设为num),返回一个数组,数组的长度为num, 数组中的内容为随机的0至(num-1)的值,并且不能重复.比如num为5的话,数组可能是[1,0,3 ...

  2. 新员工入门 - for测试

    23456人员介绍 XXX 测试工作 [软件] Chrome 浏览器.jsonviewer.Firefox.FireBug HTTP协议与抓包 - fildder.wireshirk等 DB查询工具 ...

  3. 从浏览器输入URL到显示页面到底发生了什么?

    首先说明一下,当系统本地缓存了你所请求的资源时,会直接把缓存内容解析并显示,而不会进行以下的一系列行为. 一.DNS域名解析 至今的计算机数量可谓是数不胜数,而它们的唯一识别身份就是ip地址.我们常说 ...

  4. LeetCode-37.解数独

    编写一个程序,通过已填充的空格来解决数独问题. 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在每一个以粗实线分隔的 3x3 ...

  5. PAT甲题题解-1061. Dating (20)-字符串处理,水水

    #include <iostream> #include <cstdio> #include <algorithm> #include <string.h&g ...

  6. Spring sprint @ first day

    前几天,我们讨论出任务划分.结合任务及个人情况,我认领校园网认证和网盘服务这块. 认证原理整3天,尝试编译2天,整合模块5天. 日期 时间 地点 工作 5.11 20:00 九实 下载mentohus ...

  7. 软件工程之四则运算--Github

    由于现在配置问题,然后借用同学电脑将代码上传至Github,网址为:https://github.com/be821/RealFour 参考相关Github文档: 1. http://my.oschi ...

  8. Sublime Text添加插入带当前时间说明

    Sublime Text添加插入带当前时间说明   作者:木尘 日期:2014-11-25 插件实现插入带时间功能的说明: 1. 创建插件: Tools → New Plugin: import da ...

  9. Linux命令(十二) 分割文件 split 合并文件 join

    一.分割文件 split 命令介绍 当处理文件时,有时需要将文件做分割处理,split 命令用于分割文件,可以分割文本文件,按指定的行数分割,每个分割后的文件都包含相同的行数.split 可以分割非文 ...

  10. Sed 静默替换文件内容 以及 awk 的简单使用

    1. Sed的help 鸟哥说的 学东西 先看 help 先看man 再google 不好FQ再百度.. Usage: sed [OPTION]... {script-only-if-no-other ...