zoukankan      html  css  js  c++  java
  • thinkphp5项目如何在阿里云云虚拟主机部署

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

    环境
    thinkphp 5.0.11
    阿里云云虚拟系统CentOS

    第一步
    修改移动入口文件位置,把它移动到根目录下(即htdocs)。
    修改index.php入口文件内容

    1. // 定义应用目录
    2. define('APP_PATH', __DIR__ . '/application/');
    3. // 加载框架引导文件
    4. require __DIR__ . '/thinkphp/start.php';
    复制代码

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

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

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

    第三步
    安全性!
    因为你将入口文件移到了跟目录,框架下的所有目录已经暴露了。
    如果apache服务器没处理。那就可以直接访问重要文件。
    不管他有没有做处理,直接跟目录下的每个目录都来个.htaccess。然后写入deny from all。

    1. deny from all
    复制代码

    第四步
    解决:css、js、图片等静态资源404了。
    因为移出了public目录,所以文件找不到了。
    需要替换全部目录路径。

    如果你是使用__PUBLIC__,__STATIC__,__CSS__,__JS__等来写
    那么恭喜你,直接在配置改view_replace_str就行了

    1. 'view_replace_str'       => [
    2.     '__PUBLIC__' => '/public',
    3.     '__STATIC__' => '/public/static',
    4.     '__CSS__'    => '/public/static',
    5.     '__JS__'     => '/public/static',
    6. ],
    复制代码

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

    1. /public/static
    复制代码

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

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

    例如你的:
    控制器方法名是:public function userCenter()
    对应视图文件是:userCenter.html,
    那么你访问的时候发现视图文件找不到,报错了。
    解决办法:
    方法1、改模板文件名全为小写;
    方法2、$this->fetch('模板文件名');
    方法3、$this->fetch(__FUNCTION__),但要求视图文件名要跟方法名一样。

  • 相关阅读:
    @RequestParam注解使用:Name for argument type [java.lang.String] not available, and parameter name information not found in class file either.
    cglib动态代理导致注解丢失问题及如何修改注解允许被继承
    springboot Autowired BeanNotOfRequiredTypeException
    git根据用户过滤提交记录
    不同包下,相同数据结构的两个类进行转换
    How to use Jackson to deserialise an array of objects
    jooq实践
    java如何寻找main函数对应的类
    Python--matplotlib
    Python 和 Scikit-Learn
  • 原文地址:https://www.cnblogs.com/swmin/p/10032276.html
Copyright © 2011-2022 走看看