用阿里云函数计算部署thinkphp5.1
thinkphp国内还是用的很多的哈,我自己就用哈。所以研究了一下用函数计算部署tp5。
其中借鉴和学习了@rsong 的文章:《十分钟上线-函数计算玩转 WordPress》
这里是TP5的演示:https://31199382.cn-beijing.fc.aliyuncs.com/2016-08-15/proxy/web-site/tp5/
其实也没什么好演示的,就是纯净的tp5 ( ̄▽ ̄)~*
步骤:
1.后台创建php7.2环境的函数,创建http触发器,这些就不详细写了,可以去看文档。
2.打开tp5的入口文件(/public/index.php)在namespace think;
这句的下面,加如下代码:
if(!$_SERVER['PATH_INFO']) $_SERVER['PATH_INFO'] = preg_replace("/^(\?s\=\/)/","",$_SERVER['REQUEST_URI']);
3.准备tp5源码,在根目录创建index.php文件(作为函数的入口文件),代码如下:
(第一次在阿里云博客上写文章哈,有点手生)
<?php #自定义的域名,绑定了自定义域名的,可以换成自己自定义的。 $MY_HOST = "31199382.cn-beijing.fc.aliyuncs.com"; #web目录,默认是tp5的public目录,绝对路径,如:/code/public $WWW_DIR = '/code/public'; function handler($request, $context){ #如果不使用函数计算后台提供的那个厂厂的域名,这句可以注释掉。 if(strpos($request->getAttribute("requestURI"),"/2016-08-15/proxy") !== false) $request = clearFcHost($request,$context);#兼容 fc后台的url地址 $uri = $request->getAttribute("requestURI"); $file = explode("?", $uri)[0]; if($file=='/') $uri='/';# $file = $GLOBALS['WWW_DIR'].$file; if(file_exists($file) and $uri!='/'){ if(strpos($uri,".php")) return php_run(basename($file), $request, $context);#php_run return static_run($uri);#static_run } $request = $request->withAttribute("requestURI", "?s=".$uri); return php_run('index.php', $request, $context);# php_run } function php_run($name,$request, $context) { return $GLOBALS['fcPhpCgiProxy']->requestPhpCgi($request, $GLOBALS['WWW_DIR'], $name,['SERVER_NAME' => $GLOBALS['MY_HOST'], 'SERVER_PORT' => '80', 'HTTP_HOST' => $GLOBALS['MY_HOST']],['debug_show_cgi_params' => false, 'readWriteTimeout' => 15000]); } use RingCentral\Psr7\Response; function static_run($uri): Response{ $file_dir = $GLOBALS['WWW_DIR'].$uri; #完整文件路径 $file_dir = explode("?", $file_dir)[0]; #去掉动态路径 if(is_dir($file_dir)) $file_dir .= '/index.html';# 可以这里定义目录的默认索引页 $handle = fopen($file_dir, "r"); $contents = fread($handle, filesize($file_dir)); fclose($handle); return new Response(200, ['Content-Type' => $GLOBALS['fcPhpCgiProxy']->getMimeType($file_dir),'Cache-Control' => "max-age=8640000",'Accept-Ranges' => 'bytes'], $contents); } function clearFcHost($request,$context){ $uri = $request->getAttribute("requestURI"); $uri = str_replace("/2016-08-15/proxy/".$context['service']['name']."/".$context['function']['name'],"",$uri); $request = $request->withAttribute("requestURI", $uri); return $request; } #错误处理 function error($code) { #if($resp->getStatusCode() !=200) return error($resp->getStatusCode()); return '这里还木有写哈~~'; }
4.由于函数计算只有/tmp 目录可写,所以要改一下tp5的配置文件
编辑/config/log.php
'path' => '/tmp/log',
编辑/config/cache.php
'path' => '/tmp/cache',
好了,至此就部署好了。
ps.简单的测试了一下,应该没什么问题。首次发布在阿里云博客,有什么问题请来原文留言哈。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
fast.ai 深度学习笔记:第一部分第一课
原文:Deep Learning 2: Part 1 Lesson 1 作者:Hiromi Suenaga 课程论坛 入门 [0:00]: 为了训练神经网络,你肯定需要图形处理单元(GPU) - 特别是 NVIDIA GPU,因为它是唯一支持 CUDA(几乎所有深度学习库和从业者都使用的语言和框架)的设备。 租用 GPU 有几种方法:Crestle [04:06] ,Paperspace [06:10] Jupyter 笔记本和猫狗识别的介绍[12:39] 你可以通过选择它并按下shift+enter来运行单元格(你可以按住shift并多次按enter键来继续下拉单元格),或者你可以单击顶部的“运行”按钮。单元格可以包含代码,文本,图片,视频等。 Fast.ai 需要 Python 3 %reload_ext autoreload %autoreload 2 %matplotlib inline # This file contains all the main external libs we'll use from fastai.imports import * from fast...
- 下一篇
背包九讲问题
引言 通过学习背包九讲这个文档,掌握动态规划题目的解决方法。 1 背包问题 有N 件物品和一个容量为V 的背包。第i 件物品的费用(体积)是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。这里每一件物品只能取一次 1.1 思路 根据子问题定义状态,找出状态转移方程。子问题就是:第i件物品是否放入背包。如果不放,那么第i件物品放入背包中的总价值和第i-1件物品放入背包的总价值相当。如果放入背包,也就是求出第i-1件物品放入v-c[i]的背包中时的值与第i件物品的价值的和,得到的就是总价值。 fi=max{fi-1,fi-1]+w[i]} 核心代码如下: 以下代码中,注意i和j的起始遍历位置,从第1行和第1列开始,此时的1表示的就是物品的编号。 //traverse N goods for(int i = 1;i<=N;i++){ for(int j = 1;j<=V;j++){ if(j-C[i]>=0){ f[i][j] = Math.max(f[i-1][j],f[i-1][j-C[i]]+W[i]); }else{ f[i][j] = f[i-1...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器