LNP之PHP C 扩展 (Phalcon)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

Nginx的特性:

    高性能的静态web服务器

    作为smtp,httpd,tomcat,pop3等反向代理服务器

    10000个并发,仅消耗1M内存

    基于libevent库,支持event的epoll的边缘触发机制。

    异步IO,内存映射

    负载均衡、缓存

    支持ssl,https,fastcgi协议

    支持不停机升级,日志滚动,配置更新


安装方式:

    编译安装     

    rpm安装(epel)


编译安装nginx的步骤:

    开发环境:

    CentOS 6:  yum groupinstall "Development Tools" "Server Platform Development"

    CentOS 7:   yum groupinstall "Development Tools" 

    依赖的包

        yum install -y pcre-devel openssl-devel


    获取源码包: nginx.org

    编译安装:

        1、添加nginx用户

            useradd -r -g nginx

        2、编译

            tar xf  nginx-1.12.1.tar.gz  

            ./configure --with-debug --with-pcre --http-client-body-temp-path=/var/tmp/nginx/client-body --http-proxy-temp-path=/var/tmp/nginx/proxy --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-threads --user=nginx --group=nginx --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx/nginx.pid --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --conf-path=/etc/nginx/nginx.conf --prefix=/usr/local/nginx

        

            make -j 4 && make install

            install -d /var/tmp/nginx/{client-body,proxy,uwsgi,scgi,fastcgi}     

    

    编译后的完善:

        1、环境变量

            echo "export PATH=/usr/local/nginx/sbin:$PATH" > /etc/profile.d/nginx.sh

        2、配置文件的优化:

            1)优化性能相关的配置:

                worker_processes # ;  [main段] 所能够打开的worker进程的个数是"cpu物理核心数-1"

                worker_cpu_affinity auto; [main段] 增加缓存命中率

                worker_priority #; [main段] 数据越低,分配CPU的时间越多,越先被调度到CPU上运行。

             2)事件相关的配置:

                accept_mutex on|off; 主控进程轮流地序列化的调度请求至每个worker进程

                use method; 处理用户请求的方法prefork:select,poll; event:epoll

                worker_connections number; 一个worker进程所能够接收的最大并发连接数量。

                        worker_processes  3; * worker_connections  1024  < 65536

                        当前系统能够打开的总套接字数量:65536

                    

                注意修改配置后:

                    检测配置文件的语法:nginx -t 

                    重载配置文件:nginx -s reload


php安装:

php执行PHP脚本代码一般会经过如下4个步骤

    1、Scanning(Lexing) —— 将PHP代码转换为语言片段(Tokens)

    2、Parsing —— 将Tokens转换成简单而有意义的表达式

    3、Compilation —— 将表达式编译成Opocdes

    4、Execution —— 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能

phalcon的特点:

    低开销


    低内存消耗和 CPU 相比传统的框架


    MVC & HMVC


    模块、 组件、 模型、 视图和控制器


    依赖注入


    依赖注入和位置的服务和它的本身他们的容器。


    Rest


    在这种情况下,你可以使用任一微或完整的堆栈应用程序达到你的目标。此外,一套强大的 HTTP 助手。


    自动加载


    提供符合PSR-4标准的自动加载机制


    路由器


    Phalcon\Mvc\Router 提供了先进的路由功能。


编译安装php的步骤:

    开发环境:

        # yum -y groupinstall "Desktop Platform Development" 

    程序包:

        # yum -y install bzip2-devel libmcrypt-devel libxml2-devel

    获取源码包:php.net

    编译安装:

        tar xf  php-5.6.31.tar.xz

     ./configure --prefix=/usr/local/php --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-libxml-dir=/usr --enable-xml  --with-mhash --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-curl 

    make -j 4 && make install


    编译安装后续配置:

        配置文件:

            # cp php.ini-production /etc/php5/php.ini

        提供脚本

            # cd /usr/local/php

            # cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm

            # chmod +x /etc/rc.d/init.d/php-fpm

            # chkconfig --add php-fpm

        提供配置文件:

            # cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf 

        配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):

            # vim /usr/local/php5/etc/php-fpm.conf

            pm.max_children = 50

            pm.start_servers = 5

            pm.min_spare_servers = 2

            pm.max_spare_servers = 8

            pid = /usr/local/php5/var/run/php-fpm.pid 

     测试启动php-fpm

            service php-fpm start


加入phalcon模块

    1、获取phalcon源码

            phalconphp.com/zh/

    2、编译:

        git clone https://github.com/phalcon/cphalcon

        cd cphalcon/build 

        sudo ./install

    3、在php.ini中添加php扩展:

            extension=phalcon.so

   4、重启php-fpm,验证模块:

        php -m

        Array(   

        [0] => Core    

        [1] => libxml    

        [2] => filter    

        [3] => SPL    

        [4] => standard    

        [5] => phalcon    

        [6] => pdo_mysql

        )











本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1950946,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
运维 Unix Linux
Linux系统 PHP安装expect扩展详解
Linux系统 PHP安装expect扩展详解
93 5
|
3月前
|
设计模式 算法 数据库连接
PHP中的设计模式:提高代码的可维护性与扩展性本文旨在探讨PHP中常见的设计模式及其应用,帮助开发者编写出更加灵活、可维护和易于扩展的代码。通过深入浅出的解释和实例演示,我们将了解如何使用设计模式解决实际开发中的问题,并提升代码质量。
在软件开发过程中,设计模式是一套经过验证的解决方案模板,用于处理常见的软件设计问题。PHP作为流行的服务器端脚本语言,也有其特定的设计模式应用。本文将重点介绍几种PHP中常用的设计模式,包括单例模式、工厂模式和策略模式,并通过实际代码示例展示它们的具体用法。同时,我们还将讨论如何在实际项目中合理选择和应用这些设计模式,以提升代码的可维护性和扩展性。
68 4
|
2月前
|
NoSQL 安全 Linux
MongoDB PHP 扩展
10月更文挑战第19天
13 0
MongoDB PHP 扩展
|
3月前
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与应用在软件开发的浩瀚海洋中,PHP以其独特的魅力和强大的功能吸引了无数开发者。作为一门历史悠久且广泛应用的编程语言,PHP不仅拥有丰富的内置函数和扩展库,还支持面向对象编程(OOP),为开发者提供了灵活而强大的工具集。在PHP的众多特性中,设计模式的应用尤为引人注目,它们如同精雕细琢的宝石,镶嵌在代码的肌理之中,让程序更加优雅、高效且易于维护。今天,我们就来深入探讨PHP中使用频率颇高的一种设计模式——策略模式。
本文旨在深入探讨PHP中的策略模式,从定义到实现,再到应用场景,全面剖析其在PHP编程中的应用价值。策略模式作为一种行为型设计模式,允许在运行时根据不同情况选择不同的算法或行为,极大地提高了代码的灵活性和可维护性。通过实例分析,本文将展示如何在PHP项目中有效利用策略模式来解决实际问题,并提升代码质量。
|
4月前
|
安全 前端开发 PHP
PHP与现代Web开发:构建高效和可扩展的应用程序
【8月更文挑战第29天】在这篇文章中,我们将深入探讨PHP如何适应现代Web开发的需求。我们将通过实际案例分析,揭示PHP的核心优势,并展示如何利用这些优势来构建高性能、可扩展的Web应用。文章不仅提供理论知识,还包括具体的代码示例,旨在帮助开发者更好地理解和运用PHP解决实际问题。
|
4月前
|
SQL 关系型数据库 MySQL
PHP与数据库交互的艺术:深入探讨PDO扩展
【8月更文挑战第28天】在数字信息时代的海洋里,PHP作为一艘灵活的帆船,承载着无数网站和应用的梦想。而PDO扩展,则是这艘帆船上不可或缺的导航仪,指引着数据安全与效率的航向。本文将带你领略PHP与数据库交互的艺术,深入浅出地探索PDO的世界,从连接数据库到执行复杂的查询,每一步都清晰可见。我们将一起航行在这段奇妙的旅程上,解锁数据的奥秘,体验编程的乐趣。
71 1
|
4月前
|
存储 安全 Linux
【Azure 应用服务】App Service For Linux 怎么安装Composer,怎么安装PHP扩展,怎么来修改站点根路径启动程序?
【Azure 应用服务】App Service For Linux 怎么安装Composer,怎么安装PHP扩展,怎么来修改站点根路径启动程序?
|
5月前
|
运维 Serverless API
函数计算产品使用问题之如何使用PHP Runtime非内置扩展
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
Ubuntu 中间件 Linux
linux php添加扩展zip libzip ZipArchive功能
linux php添加扩展zip libzip ZipArchive功能
211 1