ThinkPHP5.0 入门教程1之准备工作

by kingzcheung on August 5, 2016

ThinkPHP5.0 发布已经有很长一段时间了,我一直对ThinkPHP 都很感兴趣,之前简单的用过一下ThinkPHP5.0 测试版,感觉非常不错。于是打算写个简单的入门教程(应该说是学习过程)。其实我个人技术不乍地,难免有错误的地方,还请原谅。

因为ThinkPHP3.2也是个很经典的版本,所以有可能教程会掺杂一些3.2与5.0的比较。我们先看看官方对ThinkPHP的介绍。

ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你基于ThinkPHP开发的应用开源或商业产品发布/销售。

ThinkPHP5.0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化。

前期准备

我们肯定需要一个本地开发环境,我们需要安装apache(nginx),php,mysql,无论你是WAMP,LAMP还是MAMP。

WAMP:因为我很久没有用过windows开发了,所以这个请自行解决,推荐使用集成开发软件。
LAMP(ubuntu版本):http://www.kingzcheung.com/archives/5.html
MAMP:http://www.kingzcheung.com/archives/23.html

注意的是,我使用的是apache,如果想使用nginx可以找其他教程来配置。php的版本最好高一点。

配置好环境之后,我们为ThinkPHP5.0添加一个独立目录,独立域名。
我这里以MAMP为例,LAMP(ubuntu)版本可以参考上面链接的地址。

找到虚拟主机配置文件:/etc/apache2/extra/httpd-vhosts.conf

sudo vim /etc/apache2/extra/httpd-vhosts.conf

我打算TP5项目放在/var/www/think5下,添加如下代码:

<VirtualHost *:80>
    DocumentRoot "/var/www/think5"
    ServerName tp5.local
    ServerAlias tp5.local
    <Directory "var/www/think5">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog "/var/www/think5/think.log"
    CustomLog "/var/www/think5/think.log" common
</VirtualHost>

需要注意的是,/var/www/think5 要有读写权限,如果不会可以直接设置为777

sudo chmod 777 /var/www/think5

然后重启apache

sudo apachectl restart

配置hosts文件

sudo vim /etc/hosts

# 添加以下内容
127.0.0.1    tp5.local

打开浏览器访问一下tp5.local看看是否成功,如果报403,表示目录没有权限。

安装ThinkPHP5.0

安装ThinkPHP5.0 有两种方法:
第一种是直接下载源码(不推荐):http://www.thinkphp.cn/
第二种使用Composer安装(推荐)。

使用Composer之前,先看看自己电脑是否已经安装:

$ composer -v
zsh: command not found: composer

那么我们可以安装一下,Linux 可以使用apt或者yum安装,Mac可以使用brew来安装,windows的话。。。

Linux和Mac还可以通过以下方式来安装:

$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer

再运行一下composer -v:

$ composer -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.1.3 2016-06-26 15:42:08

OK,composer有了,我们切换到上面配置的web目录/var/www/think5 来安装thinkphp5

$ cd /var/www/think5
$ composer create-project topthink/think tp5 dev-master --prefer-dist

这个过程可能需要很久,有可能需要开VPN才能下载。如果实在下载不了,就下载源码来到web目录。

查看/var/www/think5目录,我们发现已经有一个叫tp5的目录了。但是我们不需要这一行目录,我们需要把th5里的所有文件移到think5,然后删除tp5目录。

打开浏览器访问:http://tp5.local/public/
看到这个页面表示已经成功了
屏幕快照 2016-07-10 11.46.30.png

最后的小问题

与ThinkPHP3.2不同的是,ThinkPHP5的入口文件不再是根目录下了,而是被移到了public目录下。我们每次都使用http://tp5.local/public/这种形式访问是不合理的,因此我们需要把域名解析到public目录,也就是修改上面的虚拟主机配置文件。

sudo vim /etc/apache2/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/var/www/think5/public"
    ServerName tp5.local
    ServerAlias tp5.local
    <Directory "var/www/think5/public">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog "/var/www/think5/think.log"
    CustomLog "/var/www/think5/think.log" common
</VirtualHost>

重启apache,再次访问http://tp5.local。OK,ThinkPHP5安装完成。