標籤:linux
Nginx的特性:
高效能的靜態web伺服器
作為smtp,httpd,tomcat,pop3等反向 Proxy伺服器
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)