vagrant的学习 之 ThinkPHP5.1
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的更多相关文章
- vagrant的学习之Git学习
vagrant的学习之Git学习 参考学习网址: http://www.runoob.com/git/git-install-setup.html. http://www.bootcss.com/p/ ...
- vagrant的学习 之 打包分发
vagrant的学习 之 打包分发 一.打包Box: (1)关闭虚拟机. vagrant halt (2)打包: vagrant package 这样打包出来的文件叫package.box. 指定生成 ...
- vagrant的学习 之 优化
vagrant的学习 之 优化 一.修改虚拟机名字: 默认的虚拟机的名字很长:study_default_1535505004652_97747. (1)打开Vagrantfile文件:(2)找到: ...
- vagrant的学习 之 Laravel
vagrant的学习 之 Laravel 本文根据慕课网的视频教程练习,感谢慕课网! 慕课视频学习地址:https://www.imooc.com/video/14218. 慕课的参考文档地址:htt ...
- vagrant的学习 之 Yii2
vagrant的学习 之 Yii2 本文根据慕课网的视频教程练习,感谢慕课网! 慕课视频学习地址:https://www.imooc.com/video/14218. 慕课的参考文档地址:https: ...
- vagrant的学习 之 ThinkPHP3.2
vagrant的学习 之 ThinkPHP3.2 (1)在web目录下新建tp32目录: cd /home/www/ mkdir tp32 (2)下载框架 我从ThinkPHP官网下载了ThinkPH ...
- vagrant的学习 之 LNMP和LAMP
vagrant的学习 之 LNMP和LAMP 本文根据慕课网的视频教程练习,感谢慕课网! 慕课的参考文档地址:https://github.com/apanly/mooc/tree/master/va ...
- vagrant的学习 之 基础学习
vagrant的学习 之 基础学习 本文根据慕课网的视频教程练习,感谢慕课网! 慕课的参考文档地址:https://github.com/apanly/mooc/tree/master/vagrant ...
- 【环境学习】ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞
环境保留:2019.4.4-4.10 环境搭建: 这里我使用的是:vulhub vulhub目录结构:vulhub/thinkphp/5-rcess 测试地址(开放一段时间供大家学习):http:// ...
随机推荐
- hdu 1695 GCD 欧拉函数 + 容斥
http://acm.hdu.edu.cn/showproblem.php?pid=1695 要求[L1, R1]和[L2, R2]中GCD是K的个数.那么只需要求[L1, R1 / K] 和 [L ...
- 定时清除 /var/log/massage 下的信息脚本文件
定时清除 /var/log/massage 下的信息脚本 #!/bin/sh #Date: 0:07 #Author: Xiaodong #Mail: 990974238@qq.com #Puncti ...
- sdut2784&cf 126b Good Luck!(next数组)
链接 next数组的巧妙应用 学弟出给学弟的学弟的题.. 求最长的 是前缀也是后缀同时也是中缀的串 next的数组求的就是最长的前后缀 但是却不能求得中缀 所以这里 就把尾部去掉之后再求 这样就可 ...
- 深入学习数据结构之bitmap(四)
Bitmap,今天我们来分析一下bitmap的实现原理以及它的使用场景. 一.使用场景: 1.对于大量数据(几千个数据的就不要在废话了),且无重复或者可以忽略重复的数字.为啥这里要强调无重复,因为在b ...
- poj2886 Who Gets the Most Candies?
思路: 先打反素数表,即可确定因子最多的那个数.然后模拟踢人的过程确定对应的人名.模拟的过程使用线段树优化加速. 实现: #include <cstdio> #include <cs ...
- Farseer.net轻量级开源框架说明及链接索引
Farseer.net是什么? 基于.net framework 4 开发的一系列解决方案. 完全开源在GitHub中托管.并发布到NuGet中. Farseer.Net由最初的关系数据库ORM框架后 ...
- 2015年度精品 最新力作32位和64位xp,win7,win8,win10系统下载(电脑城专用版)
一.系统主要特点 1.安装维护方便快速 - 全自动无人值守安装,采用万能GHOST技术,安装系统过程只需3-5分钟,适 合新旧各种机型. - 集成常见硬件驱动,智能识别+预解压技术,绝大多数硬件可以快 ...
- C#筆記--DataGridView使用
1.databingcomplete 当数据源的内容更改时,或者当 DataSource.DataMember 或 BindingContext 属性的值更改时,会引发此事件. 例如,如果要基于内容更 ...
- 導出Excel方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- 拼字符串 showArray.push(data); showArray.join(",")
//---// var showColumns = getShowColsRows("table");// var showArray = [];// $.each(showCol ...