谢烟客-----LNP之PHP C 扩展 (Phalcon)

web开发作者:dayu日期:11天前点击:4

CentOS 7: yum groupinstall "Development Tools"

依赖的包

yum install -y pcre-devel openssl-devel


获取源码包: nginx.org

编译安装:

1、添加nginx用户

useradd -r -g nginx

2、编译

tar xfnginx-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

)


本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1950946

谢烟客-----LNP之PHP C 扩展 (Phalcon)

原文地址:http://sonlich.blog.51cto.com/12825953/1950946


下一篇       上一篇