在云虚拟主机部署thinkphp5项目的步骤详解


Posted in PHP onDecember 21, 2017

前言

Thinkphp作为开源的PHP框架发展到今天,无疑是国内最适合PHP学员学习和使用的框架,除了简单容易上手,更大的优点是开发文档完善、插件丰富。本文将给大家详细介绍关于在在云虚拟主机部署thinkphp5项目的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

查阅ThinkPHP5.0完全开发手册->部署->虚拟主机环境,了解情?r后,开始修改。

环境

  • thinkphp 5.0.11
  • 阿里云云虚拟系统CentOS

第一步

修改移动入口文件位置,把它移动到根目录下(即htdocs)。

修改index.php入口文件内容

// 定义应用目录
define('APP_PATH', __DIR__ . '/application/');
// 加载框架引导文件
require __DIR__ . '/thinkphp/start.php';

这下可以访问了,但点下内页看看,路径重写不生效了。因为缺少了.htaccess文件。

第二步

把.htaccess文件也移动到根目录下。

至此可能你已经解决了问题。没解决的接下来继续看。

第三步

安全性!

因为你将入口文件移到了跟目录,框架下的所有目录已经暴露了。

如果apache服务器没处理。那就可以直接访问重要文件。

不管他有没有做处理,直接跟目录下的每个目录都来个.htaccess。然后写入deny from all。

deny from all

好了。

第四步

解决:css、js、图片等静态资源404了。

因为移出了public目录,所以文件找不到了。

需要替换全部目录路径。

如果你是使用__PUBLIC__,__STATIC__,__CSS__,__JS__等来写

那么恭喜你,直接在配置改view_replace_str就行了

'view_replace_str'  => [
 '__PUBLIC__' => '/public',
 '__STATIC__' => '/public/static',
 '__CSS__' => '/public/static',
 '__JS__'  => '/public/static',
],

如果不是,那就全部视图文件,所有用到用到路径的地方全盘替换目录

/public/static

特别容易忽略的地方是css里面的background路径,和自定义上传路径,请注意。

第五步

Linux下的文件路径大小写敏感。

例如你的:

控制器方法名是:public function userCenter()

对应视图文件是:userCenter.html,

那么你访问的时候发现视图文件找不到,报错了。

解决办法:

方法1、改模板文件名全为小写;

方法2、$this->fetch('模板文件名');

方法3、$this->fetch(__FUNCTION__),但要求视图文件名要跟方法名一样。

测试下网站所有功能,ok没问题,部署配置完毕。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php 时间计算问题小结
Jan 04 PHP
php读取html并截取字符串的简单代码
Nov 30 PHP
PHP设计模式 注册表模式(多个类的注册)
Feb 05 PHP
PHP setTime 设置当前时间的代码
Aug 27 PHP
php 检查电子邮件函数(自写)
Jan 16 PHP
php二分查找二种实现示例
Mar 12 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
学习PHP session的传递方式
Jun 15 PHP
thinkPHP数据库增删改查操作方法实例详解
Dec 06 PHP
thinkPHP5.0框架应用请求生命周期分析
Mar 25 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
thinkPHP5使用Rabc实现权限管理
Aug 28 PHP
php获取微信共享收货地址的方法
Dec 21 #PHP
php实现socket推送技术的示例
Dec 20 #PHP
PHP实现模拟http请求的方法分析
Dec 20 #PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 #PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 #PHP
PHP实现的最大正向匹配算法示例
Dec 19 #PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 #PHP
You might like
require(),include(),require_once()和include_once()区别
2008/03/27 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
innerHTML 和 getElementsByName 在IE下面的bug 的解决
2010/04/09 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
Python中文件遍历的两种方法
2014/06/16 Python
Python批量发送post请求的实现代码
2018/05/05 Python
Python一行代码实现快速排序的方法
2019/04/30 Python
Python内存管理实例分析
2019/07/10 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
如何利用python读取micaps文件详解
2020/10/18 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
怎样自定义一个异常类
2016/09/27 面试题
淘宝活动策划方案
2014/02/06 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
2014年业务工作总结
2014/11/17 职场文书
Nginx反向代理学习实例教程
2021/10/24 Servers