Phalcon简介

由于半路出家的缘故,没用过几个PHP框架,第一个了解的框架是公司自己的,然后又试着用了Yii,CI。在读了CSDN在某度的高排名翻译文章(PHP开发框架流行度排名:Laravel居首)后,看了Laravel的皮毛。不得不说Laravel的文档真是漂亮,但是作为一个后台程序开发者,总觉得也不是自己想要的。

框架的作用:前后端代码解耦;数据库操作封装;内置通用程序模块(比如路由、认证、加密等);

虽然整个网站中,框架性能并非主要因素,但是还是想把它发挥到极致,只能说是程序员的理想主义在作祟啦。
phalcon就是这种框架。PHP框架这么一个直接跟业务代码打交道的东西,都用本地化语言编写,够Geek。事实上,虽说框架只是提供代码调度和封装,其本身的性能也不容忽视。

本地化语言:就是可以编译成机器码(那种可以直接跑在本机CPU上的代码啦)的语言,C/C++/Obj-C, ASM这种的。优点是执行起来快快快,且有些硬件API,也许只有C接口,因此较解释型语言更适合嵌入式领域,缺点是需重新编译才能实现跨平台,且同样的功能,开发起来复杂度比脚本和Java要高

1. Ubuntu编译

Phalcon的方式是通过PHP扩展,将框架代码编译进去,使得编译后的php命令支持一些框架类和依赖注入。编译非常简单

#下载安装依赖库
sudo apt-get install php5-dev libpcre3-dev gcc make php5-mysql php5-fpm #下载git库
git clone --depth=1 git://github.com/phalcon/cphalcon.git
cd cphalcon/build
sudo ./install
#增加/etc/php5/fpm/conf.d/30-phalcon.ini
sudo echo 'extension=phalcon.so' > /etc/php5/fpm/conf.d/30-phalcon.ini
#增加/etc/php5/cli/conf.d/30-phalcon.ini
sudo echo 'extension=phalcon.so' > /etc/php5/cli/conf.d/30-phalcon.ini

2. 检查php扩展

现在检查下安装是否成功。

php -r 'echo phpinfo();' | grep -i phalcon

如果输出下面这样算作成功

/etc/php5/cli/conf.d/30-phalcon.ini
phalcon
Phalcon Framework => enabled
Phalcon Version => 1.3.4
phalcon.db.escape_identifiers => On => On
phalcon.orm.column_renaming => On => On
phalcon.orm.enable_literals => On => On
phalcon.orm.events => On => On
phalcon.orm.exception_on_failed_save => Off => Off
phalcon.orm.not_null_validations => On => On
phalcon.orm.virtual_foreign_keys => On => On
phalcon.register_psr3_classes => Off => Off

也可以通过下面这种方式检测:

php -r 'echo print_r(get_loaded_extensions());'

如果输出下面这样算作成功

Array
([0] => Core[1] => date[2] => ereg[3] => libxml[4] => openssl...

3. Nginx配置

Nginx的安装略去

配置修改:修改/etc/nginx/site-avaliable/default 或 /etc/nginx/conf.d/default,取决于/etc/nginx/nginx.conf的配置和个人喜好

这里为了测试,在default文件中配置了两个域名,共用8080端口

server {listen   8080 default_server;server_name ~^(.+)$;index index.php index.html index.htm;set $root_path '/srv/www/htdocs/phalcon-website/public';root $root_path;try_files $uri $uri/ @rewrite;location @rewrite {rewrite ^/(.*)$ /index.php?_url=/$1;}location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {root $root_path;}location ~ /\.ht {deny all;}location ~ \.php$ {fastcgi_index /index.php;fastcgi_pass unix:/var/run/php5-fpm.sock;include fastcgi_params;fastcgi_split_path_info       ^(.+\.php)(/.+)$;fastcgi_param PATH_INFO       $fastcgi_path_info;fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}
}
server {listen   8080;#这里在测试时用store_server域名,本机需要绑定hosts才能解析server_name store_server;index index.php index.html index.htm;set $root_path '/srv/www/htdocs/store/public';root $root_path;try_files $uri $uri/ @rewrite;location @rewrite {rewrite ^/(.*)$ /index.php?_url=/$1;}location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {root $root_path;}location ~ /\.ht {deny all;}location ~ \.php$ {fastcgi_index /index.php;fastcgi_pass unix:/var/run/php5-fpm.sock;include fastcgi_params;fastcgi_split_path_info       ^(.+\.php)(/.+)$;fastcgi_param PATH_INFO       $fastcgi_path_info;fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}
}

4. phalcon-devtools安装

这个是phalcon的脚手架工具,支持一组命令,能够为您自动生成代码。

git clone git://github.com/phalcon/phalcon-devtools.git
cd phalcon-devtools/ && sudo ln -s ~/devtools/phalcon.php /usr/bin/phalcon

然后执行phalcon commands,会出现命令提示

Phalcon DevTools (1.3.4)Available commands:commands (alias of: list, enumerate)controller (alias of: create-controller)model (alias of: create-model)all-models (alias of: create-all-models)project (alias of: create-project)scaffoldmigrationwebtools

执行create-project就能生成一套框架代码啦!

cd /srv/www/htdocs/ && phalcon create-project store

5. 启动服务器

终于到了一个兴奋点了,哈哈

#重启fpm和nginx
sudo service php5-fpm restart
sudo service nginx restart

然后本机绑定host: store_server,在浏览器栏输入store_server:8080,就能看到大大的Congratulations了!

6. 服务器虚拟用户名修改

期间可能会遇到权限问题,原因是无论nginx创建子进程,还是php5-fpm创建子进程,用得都是www-data的用户名和群组。
要修改默认值,赋值为自定义的值。请分别修改/etc/nginx/nginx.conf和/etc/php5/fpm/pool.d/www.conf的user和group


至此,环境搭建完毕,接下来去探索Phalcon的各种内部机制吧!

GY的实验室 - Phalcon+Nginx+PHP-FPM环境搭建相关推荐

  1. 【CentOS】 Nginx+jdk+tomcat 环境搭建

    CentOS  Nginx+jdk+tomcat 环境搭建 一.jdk安装 jdk下载地址:http://www.oracle.com/technetwork/java/javasebusiness/ ...

  2. 阿里云 Ubuntu PHP7 Nginx Mysql 开发环境搭建

    记录下在阿里云搭建 PHP7 开发环境 安装 nginx sudo apt-get update sudo apt-get install nginx安装完成后会自动开启,通过命令查看 # ps -a ...

  3. Nginx uWsgi Django环境搭建

    2019独角兽企业重金招聘Python工程师标准>>> 由于一个监控项目(使用django开发)交接到所在项目组,需要了解python的web开发和环境搭建. 这里记录环境的搭建流程 ...

  4. ecstore安装 mysql_Ecstore Nginx+php+mysql 环境搭建

    1.系统环境 Linux CentOS 6.5 x86_64 MySQL 5.1 Nginx 1.4 以上 PHP 5.3 2.安装ECStore(设置目录的权限) tar zxvf ecstore. ...

  5. keepalived+php,Nginx+PHP+Keepalived环境搭建说明文档

    1.安装PHP程序 1.1.PHP程序依赖包安装 yum -y install curl curl-devel tcl* libxml2-devel gd gd-devel gmp-devel lib ...

  6. 【linux下多实例Tomcat+Nginx+redis+mysql环境搭建】

    一.搭建环境之前最好自己先创建一个文件夹,再次文件夹下在创建文件夹来安放项目包和Tomcat等应用以及性能测试监控的文件 1.项目存放地址: mkdir export (创建一个文件),mkdir a ...

  7. VUE-cli环境搭建(SHD创新实验室第三次任务环境搭建)

    目录 1.安装node.js 2.安装VUE 3.使用VS code 打开vue项目工程 本文由SHD实验室杨杭创作,具体问题在群里联系杨杭学长 1.安装node.js Node.js官网下载 直接安 ...

  8. Win10+Python+Django+Nginx+MySQL开发教程及实例(1)——开发环境搭建

    Win10+Python+Django+Nginx+MySQL开发教程及实例 PaulTsao 本教程共有三篇内容: 第一篇:Win10+Python+Django+Nginx+MySQL 开发环境搭 ...

  9. Nginx_环境搭建

    主要是讲Nginx,相信很多人都用过,如果你是JAVA的话,Nginx你可能接触的比较少,那你可能都了解,因为像互联网行业,像Nginx,并不是JAVA,或者程序员,其他的人要关心的事,但是咱们作为互 ...

最新文章

  1. 浅析data:image/png;base64的应用
  2. boost::safe_numerics模块测试 constexpr 转换
  3. 解决MySQL报错ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘ (10061)
  4. SAP的SqlAnyWhere中数据库日志文件删除后如何新建
  5. ASP.NET Core开发者成长路线图
  6. NYOJ-14 会场安排问题(经典贪心,区间完全不覆盖模板)
  7. php 接受 amp,php中amp;amp;和||的用法
  8. 基于大数据搭建社交好友推荐系统
  9. 13 岁自学编程,提出演进式架构的她,成 ThoughtWorks CTO!
  10. pyqt5——控件1
  11. 测试标准I/O缓冲的代码,
  12. python大数据之数据分割(含k折交叉验证)
  13. 操作系统介绍,为什么使用虚拟机,虚拟机使用原理透彻解释
  14. 《性能之巅—洞悉系统、企业与云计算》读书笔记---第二章
  15. Jupyter notebook用谷歌浏览器打开
  16. 信息化教学设计与评价方法
  17. akka java ask_Akka Stream之集成
  18. python+playwright 学习-6.截图使用
  19. 军队计算机操作员技能鉴定,计算机操作员职业技能鉴定标准.doc
  20. 用C语言制作Fly bird飞鸟游戏

热门文章

  1. Nvidia Jetson TX2入门指南(白话版)
  2. 栈的顺序存储及实现(一)
  3. CSS3动画常用贝塞尔曲线-效果演示
  4. Eclipse的PyDev插件安装及解决安装后找不到的问题
  5. HTML基础(2)——边框
  6. ListView setOnItemClickListener无效
  7. 使用FreeImage加载纹理
  8. vb.net利用SerialPort进行读取串口操作
  9. 【转载】ADS分散加载文件使用总结(lpc23xx)
  10. 解决在全文搜索中搜索中文字符