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,如需轉載請自行聯系原作者