vagrant的学习 之 ThinkPHP5.1


本文根据慕课网的视频教程练习,感谢慕课网!

慕课视频学习地址:https://www.imooc.com/video/14218

慕课的参考文档地址:https://github.com/apanly/mooc/tree/master/va


(1)下载ThinkPHP5.1的框架:

如果使用git克隆框架,需要先安装git:

sudo apt-get install  git

创建web目录:

mkdir /home/www

在www目录:

cd /home/www
sudo git clone https://github.com/top-think/think.git tp5

然后进入自动创建的tp5目录,进行克隆核心代码:

cd tp5
sudo git clone https://github.com/top-think/framework thinkphp

(2)如果web服务器时nginx:

配置nginx:

cd /etc/nginx/conf.d/

创建tp5.conf

server{
server_name study.tp5.com;
root /home/www/tp5/public;
index index.php index.html;
location / {
if ( -f $request_filename){
break;
}
if ( !-e $request_filename){
rewrite ^/(.*)$ /index.php/$ last;
break;
}
} location ~ \.php{
set $script $uri;
set $path_info "";
if ($uri ~ "^(.+\.php)(/.+)"){
set $script $;
set $path_info $;
}
include fastcgi_params;
fastcgi_pass 127.0.0.1:;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $script;
try_files $uri = ; }
}

然后重启nginx:

方式一:sudo /etc/init.d/nginx restart

方式二:sudo service nginx restart

如果重启nginx失败,例如:

sudo /etc/init.d/nginx restart

* Restarting nginx nginx               [fail]

解决方法,使用 sudo nginx -t查看错误原因:

nginx: [emerg] unknown directive "if(" in /etc/nginx/conf.d/tp5.conf:
nginx: configuration file /etc/nginx/nginx.conf test failed

可以看出是if(的地方有问题,if和(中间增加空格后错误消失。

* Restarting nginx nginx               [OK]

配置虚拟域名:

sudo vim /etc/hosts
ip地址  study.tp5.com

然后测试:

vagrant@vagrant-ubuntu-trusty:/etc$ curl -I 'study.tp5.com'
HTTP/1.1 Bad Gateway
Server: nginx/1.4. (Ubuntu)
Date: Thu, Aug :: GMT
Content-Type: text/html
Content-Length:
Connection: keep-alive

发现报502错误,查看nginx的错误日志,

打开nginx的配置文件,找到错误日志的文件的位置,然后打开查看具体错误。

cat /etc/nginx/nginx.conf

查找error_log的配置:

error_log /var/log/nginx/error.log;

cat /var/log/nginx/error.log

[error] #: * connect() failed (: Connection refused) while connecting to upstream, 
client: 192.168.8.172, server: study.tp5.com, request: "HEAD / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "study.tp5.com"

连接被拒绝,进入php的配置 :

cd /etc/php5/fpm/pool.d

编辑www.conf:

sudo vim www.conf

找到 listen监听的位置:

listen = /var/run/php5-fpm.sock

sock域方式没有端口方式稳定,修改为端口监听。

listen = 127.0.0.1:

重启fpm:

方式一:sudo service php5-fpm restart

方式二:sudo /etc/init.d/php5-fpm restart

再次访问域名,发现报500错误:

[error] #: * FastCGI sent in stderr: "PHP message: PHP Parse error:  syntax error, unexpected '.', 
expecting '&' or variable (T_VARIABLE) in /home/www/tp5/thinkphp/library/think/Loader.php on line 391" while reading response header from upstream,
client: 192.168.8.172, server: study.tp5.com, request: "HEAD / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "study.tp5.com"

打开文件:thinkphp/library/think/Loader.php,找到391行,发现

public static function factory($name, $namespace = '', ...$args)
这个$args参数前多了三个点,可能是这个错误,于是就删除这三个点,重新访问 study.tp5.com 。
显示 ThinkPHP V5.1的界面,访问成功!

(3)如果web服务器时apache:
进入apache的配置目录,新建一个单独的tp5的配置文件,
cd /etc/apache2/sites-enabled
sudo touch tp5.conf

编辑文件:

  <VirtualHost *:>
ServerName study.tp5.com
DocumentRoot /home/www/tp5/public/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

然后就可以访问了,接下来配置url重写,

tp5框架下的目录public下的.htaccess默认是不生效的,需要开启apache的重写模块:

sudo a2enmod rewrite

然后修改apache的配置:

<Directory />
Options FollowSymLinks
AllowOverride None #修改成AllowOverride ALL 打开rewrite
#Require all denied #把这行屏蔽掉,拒绝一切链接
</Directory>

然后重启apache
sudo service apache2 restart 或者 sudo /etc/init.d/apache2 restart

测试 http://study.tp5.com:8888,显示:

:)
ThinkPHP V5.1
12载初心不改(2006-2018) - 你值得信赖的PHP框架

配置成功!


总结:

  安装过程中出现了很多错误,有不小心敲错的,也有可能是框架里边的错误,需要一步一步耐心解决。

  欢迎大家指点~



vagrant的学习 之 ThinkPHP5.1的更多相关文章

  1. vagrant的学习之Git学习

    vagrant的学习之Git学习 参考学习网址: http://www.runoob.com/git/git-install-setup.html. http://www.bootcss.com/p/ ...

  2. vagrant的学习 之 打包分发

    vagrant的学习 之 打包分发 一.打包Box: (1)关闭虚拟机. vagrant halt (2)打包: vagrant package 这样打包出来的文件叫package.box. 指定生成 ...

  3. vagrant的学习 之 优化

    vagrant的学习 之 优化 一.修改虚拟机名字: 默认的虚拟机的名字很长:study_default_1535505004652_97747. (1)打开Vagrantfile文件:(2)找到: ...

  4. vagrant的学习 之 Laravel

    vagrant的学习 之 Laravel 本文根据慕课网的视频教程练习,感谢慕课网! 慕课视频学习地址:https://www.imooc.com/video/14218. 慕课的参考文档地址:htt ...

  5. vagrant的学习 之 Yii2

    vagrant的学习 之 Yii2 本文根据慕课网的视频教程练习,感谢慕课网! 慕课视频学习地址:https://www.imooc.com/video/14218. 慕课的参考文档地址:https: ...

  6. vagrant的学习 之 ThinkPHP3.2

    vagrant的学习 之 ThinkPHP3.2 (1)在web目录下新建tp32目录: cd /home/www/ mkdir tp32 (2)下载框架 我从ThinkPHP官网下载了ThinkPH ...

  7. vagrant的学习 之 LNMP和LAMP

    vagrant的学习 之 LNMP和LAMP 本文根据慕课网的视频教程练习,感谢慕课网! 慕课的参考文档地址:https://github.com/apanly/mooc/tree/master/va ...

  8. vagrant的学习 之 基础学习

    vagrant的学习 之 基础学习 本文根据慕课网的视频教程练习,感谢慕课网! 慕课的参考文档地址:https://github.com/apanly/mooc/tree/master/vagrant ...

  9. 【环境学习】ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞

    环境保留:2019.4.4-4.10 环境搭建: 这里我使用的是:vulhub vulhub目录结构:vulhub/thinkphp/5-rcess 测试地址(开放一段时间供大家学习):http:// ...

随机推荐

  1. HBase简介(很好的梳理资料) 转

    一. 简介 history started by chad walters and jim 2006.11 G release paper on BigTable 2007.2 inital HBas ...

  2. easy ui diglog 点击关闭,触发事件

    $('#dialogDiv').dialog({ onClose:function(){ alert('11111111') ; }});

  3. AJPFX关于多态中的动态绑定和静态绑定的总结

    在多态中:成员变量和静态方法编译和运行都看左边:成员方法编译看左边,运行看右边,这是为什么:在Java中存在两种绑定方式,一种为静态绑定,又称作早期绑定.另一种就是动态绑定,亦称为后期绑定1.静态绑定 ...

  4. [BZOJ1009][HNOI2008]GT考试 DP+矩阵快速幂+KMP

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1009 我们令$dp(i,j)$表示已经填了$i$位,而且后缀与不幸运数字匹配了$j$位,那 ...

  5. 洛谷 P1569 [USACO11FEB]属牛的抗议Generic Cow Prote…

    题目描述 Farmer John's N (1 <= N <= 100,000) cows are lined up in a row and numbered 1..N. The cow ...

  6. HR教你面试时怎么谈出高工资

    不是任何时候谈钱都会伤感情,比如跟客户谈合同报价,跟房东谈房租,以及面试时和公司HR谈新工作的薪酬待遇. 这事儿一般不需要你先开口.在面试进入尾声的时候,如果HR对你还算满意,通常就会开始问你目前的薪 ...

  7. mysql图形化工具获取表的源码

    打开数据库,选择要查看的表,点击右键>对象信息>DDL:

  8. Javascript中的For循环

    在开发的过程中,遍历是一个经常遇到的.而for循环则是Javascript工具箱里一个好用的,也常用的工具.每个人的习惯不同,for循环的写法也不尽相同. 1.不写声明变量的写法: for(var i ...

  9. Codeforces Beta Round #1 补题题解

    A Theatre Square(数学) 算出每行能装多少乘以每列能装多少就行 公式 ans=ceil(n/a)+ceil(m/a) 代码 #include <bits/stdc++.h> ...

  10. python在linux下的使用

    1.查看python(解释器)的版本(什么版本的解释器支持哪一版版的语言标准) 一般在linux上已经预装了python,只要在Bash Shell中输入python,即可看到如下版本信息: 按Ctr ...