简介

Phalcon 是开源、全功能栈、使用 C 扩展编写、针对高性能优化的 PHP 5 框架。 开发者不需要学习和使用 C 语言的功能, 因为所有的功能都以 PHP 类的方式暴露出来,可以直接使用。 Phalcon 也是松耦合的,可以根据项目的需要任意使用其他对象。

编译与安装

我这里使用的是docker来搭建运行环境,Dockerfile文件如下:

FROM daocloud.io/library/php:7.0.10-fpm

MAINTAINER Minho

RUN apt-get update && apt-get install -y \

libfreetype6-dev \

libjpeg62-turbo-dev \

libmcrypt-dev \

libpng12-dev \

libpcre3-dev \

gcc \

make \

bzip2 \

libbz2-dev \

libmemcached-dev \

git \

&& rm -rf /var/lib/apt/lists/* \

&& docker-php-ext-install mbstring \

&& docker-php-ext-install iconv mcrypt \

&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \

&& docker-php-ext-install gd \

&& docker-php-ext-install mysqli \

&& docker-php-ext-install bz2 \

&& docker-php-ext-install ctype \

&& docker-php-ext-install zip \

&& docker-php-ext-install pdo \

&& docker-php-ext-install pdo_mysql \

&& apt-get -y autoremove \

&& apt-get -y autoclean

WORKDIR /usr/src/php/ext/

RUN git clone -b php7 https://github.com/php-memcached-dev/php-memcached.git \

&& docker-php-ext-configure php-memcached \

&& docker-php-ext-install php-memcached \

&& rm -rf php-memcached \

&& git clone -b php7 https://github.com/phpredis/phpredis.git \

&& docker-php-ext-configure phpredis \

&& docker-php-ext-install phpredis \

&& rm -rf phpredis

ENV PHALCON_VERSION=3.0.1

# Compile Phalcon

RUN set -xe && \

curl -LO https://github.com/phalcon/cphalcon/archive/v${PHALCON_VERSION}.tar.gz && \

tar xzf v${PHALCON_VERSION}.tar.gz && cd cphalcon-${PHALCON_VERSION}/build && ./install && \

echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/phalcon.ini && \

cd ../.. && rm -rf v${PHALCON_VERSION}.tar.gz cphalcon-${PHALCON_VERSION}

# Insall Phalcon Devtools, see https://github.com/phalcon/phalcon-devtools/

#curl -LO https://github.com/phalcon/phalcon-devtools/archive/v${PHALCON_VERSION}.tar.gz && \

#tar xzf v${PHALCON_VERSION}.tar.gz && \

#mv phalcon-devtools-${PHALCON_VERSION} /usr/local/phalcon-devtools && \

#ln -s /usr/local/phalcon-devtools/phalcon.php /usr/local/bin/phalcon

#Composer

RUN curl -sS https://getcomposer.org/installer | php \

&& mv composer.phar /usr/local/bin/composer

# PHP config

ADD conf/php.ini /usr/local/etc/php/php.ini

ADD conf/www.conf /usr/local/etc/php-fpm.d/www.conf

EXPOSE 9000

如果是普通机器安装可以参考 Compile Phalcon 段的代码。

在编译Phalcon时会出现长时间等待,我是在VM上编译1G内存需要等待将近十多分钟。

安装完成后打印phpinfo信息会看到如下信息:

说明安装成功。

安装Phalcon Developer Tools

Phalcon提供的这个开发工具主要是用来辅助开发,比如生成一些程序的基本框架,生成控制器模型等。使用这个工具我们只需要一个简单的命令即可生成应用的基本框架。

我是用的是composer安装,在机器的某个目录添加一个composer.json文件内容如下:

{

"require": {

"phalcon/devtools": "dev-master"

}

}

控制台切换到该目录执行:

composer install

执行完成后会在目录下生成一个vendor目录,结构如下:

设置环境变量并指向 /vendor/phalcon/devtools 目录。然后执行 phalcon.bat验证是否成功。

创建项目

phalcon项目可以手动搭建目录结构,也可以使用devtools工具自动搭建,devtools工具搭建项目命令如下:

phalcon.bat project demo --enable-webtools

在一个目录中执行以上方法会自动创建出一个phalcon项目的目录结构和入口文件。大致如下:

我们的业务逻辑代码一般写到app目录,public目录放置的是静态文件和一个入口文件。

如果使用phpstrom开发,需要包含Exteral Libraries包,设置如下:

在Exteral Libraries上右键选择 Configure PHP Include Paths,然后添加Phalcon Developer Tools工具的目录入下:

确定后就会有自动提示功能。

Nginx配置

Phalcon是PHP的一个插件,可以使用任何Web容器来运行,我这里使用的是Nginx,Nginx配置入下:

server {

listen 80;

server_name phalcon.demo.com;

charset utf-8;

#access_log /var/log/nginx/host.access.log main;

set $root_path '/mnt/hgfs/cphalcon/public';

root $root_path;

try_files $uri $uri/ @rewrite;

index index.php index.html;

location @rewrite {

rewrite ^(.*)$ /index.php?_url=$1;

}

location ~ \.php$ {

fastcgi_index index.php;

fastcgi_split_path_info ^(.+\.php)(/.+)$;

fastcgi_pass 127.0.0.1:9000;

fastcgi_param PATH_INFO $fastcgi_path_info;

fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {

root $root_path;

}

}

更多配置可以参考官方手册。

打开网址看到如下界面就代表运行成功:

参考

phalcon index.php,Phalcon环境搭建与项目开发相关推荐

  1. 区块链 Hyperledger Composer 使用教程(环境搭建、项目开发 一)

    Hyperledger Composer使用教程 基本概念介绍 1. 欢迎来到Hyperledger作曲家 Hyperledger Composer是一个广泛的,开放的开发工具集和框架,可以使开发区块 ...

  2. 基于阿里云服务器环境搭建到项目上线系列文章之六——项目部署

    基于阿里云服务器环境搭建到项目上线系列 前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章 基于阿里云服务器环境搭建到项目上线系 ...

  3. Java web小项目_个人主页(1)—— 云环境搭建与项目部署

    摘自:Java web小项目_个人主页(1)-- 云环境搭建与项目部署 作者:丶PURSUING 发布时间: 2021-03-26 23:59:39 网址:https://blog.csdn.net/ ...

  4. chatbot聊天机器人环境搭建以及项目运行指南

    项目地址 网传有一位程序员因忙于工作,无暇陪伴女友,便做了个聊天机器人的软件来陪女友聊天,然后自己就安心工作去了.等到程序员下班时一看,机器人已经和女友聊到了二胎的娃叫啥名了.博主不明觉厉,便去拷贝一 ...

  5. 基于阿里云服务器环境搭建到项目上线系列文章之三——安装git

    基于阿里云服务器环境搭建到项目上线系列 前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章 基于阿里云服务器环境搭建到项目上线系 ...

  6. 基于阿里云服务器环境搭建到项目上线系列文章之四——安装composer

    基于阿里云服务器环境搭建到项目上线系列 前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章 基于阿里云服务器环境搭建到项目上线系 ...

  7. 基于阿里云服务器环境搭建到项目上线系列文章之一——putty使用秘钥登录远程服务器

    基于阿里云服务器环境搭建到项目上线系列 前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章 基于阿里云服务器环境搭建到项目上线系 ...

  8. 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第二节:Cocos引擎开发环境搭建与项目创建!

    <使用Cocos2d-x 开发3D游戏>系列在线课程 第二节:Cocos引擎开发环境搭建与项目创建! 视频地址:http://edu.csdn.net/course/detail/1330 ...

  9. osgi php,idea搭建osgi项目开发学习

    本文介绍了用Idea搭建OSGI项目开发的过程,演示使用的JDK8,Equinor OSGI Framework. OSGI简介 OSGI的全称是Open Service Gateway Initia ...

最新文章

  1. 前端开发的正确姿势——各种文件的目录结构规划及引用
  2. Android—Bitmap图片大小计算、压缩与三级缓存
  3. 【论文速读】ChengLin_Liu_ICCV2017_Deep_Direct_Regression_for_Multi-Oriented_Scene_Text_Detection...
  4. js src 变量_人人都能看懂的鸿蒙 “JS 小程序” 数据绑定原理
  5. 基于微信小程序的超市购物系统
  6. 旋转跳跃加后空翻,波士顿动力机器人Atlas的“变态程度”又升级了
  7. 使用Excel时计算剩余时间
  8. Python数据分析与可视化概述
  9. 青蛙跳台阶变态青蛙跳台阶
  10. python绘图坐横坐标轴显示
  11. matlab交叉耦合,交叉耦合滤波器怎么从耦合矩阵得出频率响应
  12. 长江商学院薛云奎的价值投资课【入门】
  13. 如何用c语言实现ax+by+cz=G所有的正整数的解的输出丫?
  14. laravel小程序微信支付
  15. 10系统连服务器,客户端装的win10系统,连接不了不服务器。怎么设置才能连通...
  16. 第14讲:Python使用加法和乘法运算符操作列表
  17. SQL Sever 2000/2005/2008下载地址集合
  18. 双11前夕,阿里启用机房巡检机器人、京东加了2000+台服务器!这下你们可以放心剁手了...
  19. Vuex3 / Vuex4 使用指南
  20. javascript生成二维码

热门文章

  1. socket协议和http协议性能对比
  2. 如何在JAVA编程语言程序开发中更好的利用数据库中2两张表?
  3. 循环、选择要注意的复合语句
  4. 修改Typora的快捷键【markdown软件】
  5. 某考试 T1 arg
  6. Emmet 快速编写html代码
  7. 仿新浪邮件输入自动提示jQuery插件
  8. 【Scala】使用Scala语言定义函数和函数使用(比较两个数的大小代码)
  9. 接口测试人员需要掌握的知识技能
  10. JMETER性能测试从入门到精通高级篇 - 分布式压测部署之负载机的设置(详解教程)