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

來源:互聯網
上載者:User

標籤: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)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.