因为一时对微信小程序感起了兴趣,所以想要学习怎么自己写个小程序玩下,在网上看了挺多的教程,不过主要都是微信小程序的页面开发,有实战的却要钱,而且好像也是主打小程序的前端。

在这里,我先写下我怎么入坑PhaApi框架的。我没有学过后端,也没有写过app,所以对微信小程序后端和前端的数据交互是一脸懵逼,去网上看了教程,发现php做后端好像挺火的,而且同学那正好有一本相关的书,所以就直接选定了php作为我第一小程序的后端语言,学了一段时间发现php确实简洁好学,但tm的学完在去看网上那些教程都是教怎么写网页后端的,作为一个初学者根本弄不懂网页后端跟app后端怎么转换,所以只能网上查了,一个看不懂就多看几个,慢慢才了解什么是网页什么是api(二者到底有什么本质的区别我也不知道,只是知道了数据格式不同)。好了,话题回到怎么学后端这个坑,特么真坑,一开始看到Thinkphp这个框架,还是国产的,抱着支持国产的心里就去各个学习网站看关于ThinkPHP的课程了,可是这个框架是定位在能开发企业级的网页的(我就是想写个简单的小程序装装逼而已),基础课程里讲的大部分都是怎么配置mvc,什么工厂模式什么什么生产模式啊什么的,讲的详细到我都哭了但还是不知道怎么写,所以果断的放弃了(这里不是黑,这是成熟的框架所应该具备的的,只是我因为有其他事而且专业不对口所以花不了太多时间在上面又想能快速做出点什么东西来所以才放弃),之后又找了下laravel框架,发现也跟ThinkPHP是一个等级的,所以也就没学,但是突然在无意中发现了一个论坛推荐了专门写Api的php框架而且急速入门,我去,这不是正是我梦寐以求的吗,找到这个的框架的官网发现还是国人写的,壮哉,首页介绍内容直接写一个怎么极速创建一个api的例子简直让我像饿了几天的人看到一顿大餐一样兴奋,当即就选择入坑了。

可是后来发现这个框架是一个新生的框架,而且开发团队和社区的活跃度感觉很有限,能让我找到这个框架也不知道算运气好还是坏,不过都已经入坑了就先被坑几把再说,首当其冲的坑就是配置环境了,而且官网推荐使用nginx,反正我啥也没用过,他们说用什么我就用什么吧,在这我先介绍下我的环境:

腾讯云的学生服务器(感谢马化腾)       服务器系统是Ubuntu16.x      用sudo apt-get install 安装的php nginx

用远程登录服务器git clone  Phalapi框架下来,然后按照官网的手册配置nginx,然后就来坑了,虽然这个框架是个新生的框架,但也有两岁多了,我的系统和nginx版本都跟手册对不上,按照手册写的配置的nginx直接用不了,而官网的手册走心程度有限,代码什么的都没个注释,而且直接是描述过程而不解释作用,本来看到这我就想直接弃了,可是不知道哪来的倔劲让我跟他刚了起来,我去找了nginx的课程,借鉴了里面的基础配置,而且去网上百度了一堆的nginx配置名称解释,最后再加上Phalapi手册里的配置硬是拼接了一个可行的配置

server {listen 80 ;server_name api.phalapi.net;  #设置成自己的服务器的域名能远程访问了。root /home/ubuntu/PhalApi/Public;charset utf-8;# Add index.php to the list if you are using PHPindex index.html index.htm index.php index.nginx-debian.html;location / {
index index.html index.htm index.php;try_files $uri $uri/ =404;}
location ~ \.php$ {root /home/ubuntu/PhalApi/Public;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass unix:/run/php/php7.0-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}}

这个配置内容不一定全对,但实测有用(是我一条一条增删得出来的),可是这时候,问题又来了,这个框架创建一个项目不是以手动的形式而是用浏览器浏览特定的本地网址再在网页输入参数才能,我去,我的服务器系统是都没个图形界面还怎么浏览,而官网手册又没给其他办法,还好我机智,替换了server_name 的参数,这个配置项表示通过这个网址(写入的参数)还有listen的端口访问会转发到root 目录下的服务。

然而坑又来了,虽然可以远程访问那个网址,但是依然符合不了框架的要求,提示创建成功但找到手册所说的文件,就算我安装上了PHP的Memcache扩展也还是没用。

不过,哈哈,我发现框架自带的Demo项目可以正常使用(正常使用指的的是能访问到数据,而且可以完成手册前面给的例程),所以我就跳过网页的方式,直接用复制文件夹的方法,用cp命令复制Phalapi目录的Demo文件夹并且重命名为Test(注意这里又是一个坑,一定要首字母大写,不知道是不是因为我的方法问题还是),在用复制Phalapi目录下的Public下的demo文件夹并且重命名为test(这里好像也写成Test更好,不过访问的路径也要为Test)。然后你就可以照着官网手册做例程了。

这篇笔记我也只是刚开始学时写的,所以并没有太多实际内容,只是我个人初学PhalApi的经验和方法,希望对有同样想法的同学有点用。也希望PhalApi框架能越来越好(虽然现在确实还很不完善,但框架确实简单易用,而且为api而生的立义真的很不错,如果想只是简单入门下api开发考虑这个框架还是可以的)

复制完了一定要更改下文件内容,使入口文件能定位到你项目目录相应的文件夹中。

PhalApi框架新手脱坑笔记(一)相关推荐

  1. express模板引擎 html,Express新手入坑笔记之动态渲染HTML

    在日常项目中,我喜欢用Django做后端, 因为大而全 如果只是写一个简单服务的话, Express是更好的选择, Express是基于nodejs的一个后端框架,特点是简单,轻量, 容易搭建, 而且 ...

  2. 一步步yum安装LNMP,脱坑笔记!!!

    更改国内yum源: 1.备份yum源文件,位置在/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/ ...

  3. R语言笔记——”org.Hs.eg.db“脱坑记录

    R语言笔记--"org.Hs.eg.db"脱坑记录 "org.Hs.eg.db"是发布在bioconductor平台上面的一个数据库文件,该包中装有较多的主流数 ...

  4. PHP学习笔记——在phalapi框架内的orm数据库操作

    今天将自己的聚合支付接口集成到了phal框架内,由于在phalapi框架内如何返回视图不知道,因此需要将原本的wap站点的sdk包转化为api资源.具体过程稍晚点记录,现在将phalapi框架内的数据 ...

  5. 我好像上瘾了-王者农药(脱坑篇)

    与她结识 时间追溯到​2015年11月26日,这是一个特殊的日子,因为她来了--王者农药. 还记得刚开始,我是在上初中,刚开始接触是因为朋友叫我一起玩,当时游戏刚刚上线,玩的人也不像现在那么多. 记得 ...

  6. 快递鸟平台,查询快递信息。已脱坑

    快递鸟平台,查询快递信息.已脱坑 写在前面 技术更新迭代,但总能有迹可循. 无休止的造轮子,早已让人精疲力竭. 自己跳过的坑,分享最终的成果,只为让痛苦不再重复. 一 背景 商城项目中,需要根据订单号 ...

  7. 《Scala入坑笔记》一、Scala简介

    Scala 是 Scalable Language 的简写,网上没有发现谁问 Scala 怎么读,你是按 Scalable 的发音读作 ['skeɪlə] 还是喜欢读作斯卡拉? Scala 是一门多范 ...

  8. Android 7.0脱坑指南

    本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发. Android适配系列: Android 6.0 的动态权限管理 Android 7.0脱坑指南 Android 8.0适配指北 ...

  9. Beego脱坑(一)Beego简介和安装

    title: Beego脱坑(一)Beego简介和安装 tags: go,beego author: Clown95 beego 简介 beego 是一个快速开发 Go 应用的 HTTP 框架,也是一 ...

  10. 技术人综合症脱坑指南

    We_Can_Do_It.jpg 上周遇到一设计师,改了几次设计稿,在电话中尥蹶子不干了.boss在边低声问:"设计师都这样?" 其实心高气傲的岂止是设计师?程序员,工程师,大部分 ...

最新文章

  1. 自学必看篇:从零基础到精通的Python学习路线(附加教程)
  2. C++ demo:文本搜索以及'指针的引用'的思考
  3. Linux学习笔记13:把网卡名字都修改成eth*
  4. 织梦添加幻灯片的方法
  5. if语句的一个错误记录,多了个“;”号
  6. Python这门语言为什么适合初学者?88.7%的小白听了会感谢选择它
  7. wxWidgets:wxSymbolPickerDialog类用法
  8. 这一次,终于弄懂了协变和逆变
  9. LeetCode 733. 图像渲染(DFS/BFS)
  10. centos6.5安装Chrome
  11. xrdp协议_XRDP与VNC的关系(转载)
  12. The least round way CodeForces - 2B (DP 矩阵 路径)
  13. hbase占用内存过高_Hbase探究——如何避免一行数据过大导致加载至内存出现out of memory的情况...
  14. unity3d 挂载脚本_Unity3D加载资源的四种方式
  15. BigWorld用到的第三方库
  16. 在虚拟机上安装使用LoadRunner教程
  17. 判断中心对称图形C语言
  18. uni-app 实现搜索关键词高亮效果
  19. 3年经验Java程序员面阿里P6 差距在哪里
  20. android删除界面工具,Android手机添加/删除桌面图标和插件(图文)

热门文章

  1. mysql 将年月日转换成年_SQL数据库中怎么将时间格式转换到年和月?
  2. Simulink代码生成:通过Matlab Function集成C函数
  3. FRM P1B3笔记:Introduction to Financial Markets and Products
  4. 安卓模拟经营类游戏_十大最诱人手机模拟经营类游戏专题
  5. 模拟人生畅玩版正在连接至服务器,模拟人生™:畅玩版无法连接服务器如何解决...
  6. matlab中count()怎么用,count(1)这里面的1是什么意思
  7. 计算机保研英语常见问题
  8. 世界著名大学校训(中英文版)
  9. 解决一下 WebView2 不能用 socket5代理的问题。
  10. 使用web-play开发web应用