我这里使用的是thinkphp5.1框架,thinkphp是在国内频繁使用的框架,资料非常非常的多。这里主要讲述的是基于composer下安装的thinkphp。
严格来说,ThinkPHP无需安装过程,这里所说的安装其实就是把ThinkPHP框架放入WEB运行环境(前提是你的WEB运行环境已经OK)。LNMP环境不懂的请看下面:
1、安装composer
从5.0开始 thinkphp可以支持composer安装了
sudo apt install composer
2、composer配置国内镜像
composer安装thinkphp有些不可描述的原因,也不知道是某些人的脑子热坏了,还是官网的命不好,国内访问国外的网站链接速度很慢。因此安装的时间可能比较长,我建议通过下面的方式使用国内镜像。
composer config -g repo.packagist composer https://packagist.phpcomposer.com
3、安装thinkphp5
如果你是第一次安装的话,在命令行下面,切换到你的WEB根目录下面并执行下面的命令:
composer create-project topthink/think tp5
这里的tp5目录名你可以任意更改,执行完毕后,会在当前目录下的tp5子目录安装最新版本的ThinkPHP,这个目录就是我们后面会经常提到的应用根目录。
打开浏览器输入 域名/tp5/public/index.php
4、配置Nginx,简化URL访问地址
因为thinkphp框架的默认位置根目录 并不是项目的根目录,它实际上的是public这个根目录。所以需要把nginx配置改到这个目录来。
vim /etc/nginx/sites-available/default
server {
listen 80 default_server;
listen [::]:80 default_server;
root /home/wwwroot/default/tp5/public;
index index.php index.html index.htm index.nginx-debian.html;
server_name imooc-lemon.tk;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php${
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
重启nginx sudo service nginx restart
另外因为入口是index.php文件,所以说在访问其他模块的时候要把模块相关信息已参数的形式放到index.php后面。这其实是相当麻烦的。期望的是已目录的形式来存在。修改nginx配置。
server {
listen 80 default_server;
listen [::]:80 default_server;
root /home/wwwroot/default/tp5/public;
index index.php index.html index.htm index.nginx-debian.html;
server_name imooc-lemon.tk;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
try_files $uri $uri/ =404;
}
location ~ \.php$ {
set $script $uri;
set $path_info "/";
if ($uri ~ "^(.+.php)(/.+)") {
set $script $1;
set $path_info $2;
}
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
重启nginx sudo service nginx restart
浏览器输入域名/index/index/hello
这样thinkphp5就搭建完成了。