前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >lnmp - thinkphp6.0服务迁移实践笔记

lnmp - thinkphp6.0服务迁移实践笔记

原创
作者头像
stark张宇
修改2023-09-21 17:12:51
2580
修改2023-09-21 17:12:51
举报
文章被收录于专栏:stark张宇stark张宇

概述

最近入职一家初创公司从外包手机接下来一个项目,自己买了一个服务器迁移了一个项目,由外包的宝塔迁移到自己的服务器,主要说一下遇到的坑,进行一次总结,服务器是阿里云的。

配置Nginx

由于宝塔上的环境都是自己生成的配置,所以自己配置Nginx的时候要几个重要的技能点ssl证书、伪静态、防跨站攻击(open_basedir),迁移的时候配置了这几个重要的技术点

1. ssl证书

阿里云产品与服务->数据安全->数字证书管理服务,如果没有免费证书的话,可以先申请一个免费的证书,申请完免费证书如下图,点击下载以后有Nginx、Tomcat、Apache、IIS等等,我使用的是Nginx部署的ssl服务。

2.伪静态

伪静态Nginx 做了一个rewrite重写

代码语言:txt
复制
location ~* (runtime|application)/{
	return 403;
}
location / {
	if (!-e $request_filename){
		rewrite  ^(.*)$  /index.php?s=$1  last;   break;
	}
}

3.添加防跨站攻击(open_basedir)

迁移遇到最严重的问题是防跨站攻击(open_basedir),错误消息提示Warning: require(): open_basedir restriction in effect.

造成这个问题的原因是因为fastcgi.conf里的最底下open_basedir的地方设置注释掉,推荐做法是在再根目录,thinkphp的话是public目录,添加.user.ini文件:

代码语言:txt
复制
open_basedir=/home/wwwroot/tfb-web-api/:/tmp/

php.ini文件修改cgi.fix_pathinfo = 1 , 这样,所有问题都已经解决了。

代码语言:txt
复制
server
{
    listen 80;
    listen 443 ssl http2;
    server_name www.tufubao.cn;
    index index.php index.html index.htm default.php default.htm default.html;
    root /home/wwwroot/tfb-web-api/public;

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate      .pem 路径;
    ssl_certificate_key  .key 路径;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
    #SSL-END
    
    location ~ [^/]\.php(/|$)
    {
        try_files $uri =404;
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
    
    access_log  /www/wwwlogs/www.tufubao.cn.log;
    error_log  /www/wwwlogs/www.tufubao.cn.error.log;
}

Git版本库

刚开始的时候,我们使用补丁包的方式进行协作,后来使用了gitee.com,企业版5人之内的协作是免费的这个正好适合我们这种初创团队。

权限

因为安装的时候使用www的用户和用户组安装的,如果有权限的问题,执行命令chown -R www:www ./tfb-web-api

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
    • 配置Nginx
      • Git版本库
        • 权限
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档