1. 程式人生 > >謝煙客-----LNP之PHP C 擴展 (Phalcon)

謝煙客-----LNP之PHP C 擴展 (Phalcon)

linux

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

)


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

謝煙客-----LNP之PHP C 擴展 (Phalcon)