国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Tengine2.1.0 PHP5.6.8 Nodejs 的編譯安裝和配置

XanaHopper / 1648人閱讀

摘要:執行時,可能會報各種依賴包不存在的提示,比如,如果是開發環境或者對這些依賴程序的版本沒有要求的話,可以直接通過的方式安裝這些依賴包。新建一個文件寫入這樣的話,如果以后我們不需要擴展時,可以直接刪除配置文件即可。

淘寶Tengine的編譯安裝

Tengine的官網:http://tengine.taobao.org/

下載源碼包
wget http://tengine.taobao.org/download/tengine-2.1.0.tar.gz`

tar -zxvf tengine-2.1.0.tar.gz

cd tengine-2.1.0

需要注意的是,我希望用Jemalloc來分配和釋放tengine內存(比默認的內存管理好多了),所以編譯選項設置了--with-jemalloc的源碼路徑,源碼包的獲得具體通過以下方式:

Jemalloc方面

官網 http://www.canonware.com/jemalloc/

解壓至指定目錄
wget https://github.com/jemalloc/jemalloc/releases/download/3.6.0/jemalloc-3.6.0.tar.bz2

tar -jxvf jemalloc-3.6.0.tar.bz2 -C /usr/local/src
編譯配置
./configure 
--prefix=/usr/local/nginx 
--with-jemalloc=/usr/local/src/jemalloc-3.6.0/ 
–-user=www-data 
–-group=www-data 

如果想知道更多詳細的編譯參數的話可以執行./configure --help,會打印出所有的編譯選項,可以按需添加或者禁用一些tengine模塊,也可以在以后的使用中按需添加編譯屬性然后重新編譯安裝即可。
執行configure時,可能會報各種依賴包不存在的提示,比如openssl,如果是開發環境或者對這些依賴程序的版本沒有要求的話,可以直接通過apt-get install libxxx的方式安裝這些依賴包。

編譯安裝
make
make test
make install
配置Tengine

make install之后會安裝在/usr/local/nginx目錄下,其中conftengine的配置文件目錄,我們修改一下/usr/local/nginx/conf/nginx.conf這個配置文件:
如果有像Apachevhost需求的話,可以在conf目錄下新建一個文件夾vhost,然后所有虛擬主機的配置文件都放到vhost這里面:

cd /usr/local/nginx/conf
mkdir vhost
vim nginx.conf

打開nginx.conf配置文件后,最基礎的需要做以下幾個地方的修改(所提到的地方都要去除前面的#號注釋,只修改提到的地方,其它地方保留默認即可):

#Tengine的進程以www-data用戶啟動
user www-data;
#自動以CPU核心數啟動相應數量的進程
worker_processes auto;
#開啟gzip支持
gzip on
#全局的錯誤日志地址,方便調試
error_log /home/jason/BigDisk/nginx/error.log;
server {
        #設置默認訪問的server(default是指通過ip或者servername未定義的域名進行訪問時就走到這個server)
        listen       80 default;
        #默認訪問的路徑
        root /home/jason/Work/nginx-default;
        location / {
            index index.php  index.html index.htm;
        }
        #默認錯誤頁面
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        #抓發到php-fpm
        location ~ .php$ {
            fastcgi_pass   unix:/var/run/php-fpm.socket;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
    #引用其他的vhost配置文件
    include vhost/*.conf;
啟動腳本

安裝好Tengine后需要啟動它,github上有人已經做了一份比較完美的nginx啟動腳本,我們直接拿下來用:
wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx

賦予可執行的權限:
chmod +x /etc/init.d/nginx

啟動Tengine:
/etc/init.d/nginx start

這樣基本上就配置好了Tengine

PHP的編譯安裝

PHP的官網:http://php.net/
安裝的php版本為5.6.8

下載源碼包
wget http://cn2.php.net/distributions/php-5.6.8.tar.bz2

tar jxvf php-5.6.8.tar.bz2

cd php-5.6.8
編譯
./configure --prefix=/usr/local/php 
--with-config-file-path=/usr/local/php/etc 
--with-config-file-scan-dir=/usr/local/php/etc/extends 
--enable-fpm 
--with-fpm-user=www-data 
--with-fpm-group=www-data 
--with-mysql=shared,mysqlnd 
--enable-sockets 
--with-mcrypt 
--with-curl 
--with-openssl 
--with-mysql 
--enable-mbstring

編譯參數帶上了--enable-fpm,這樣編譯時就會自動為我們編譯php-fpm
--with-config-file-path 指定php的配置文件目錄
--with-config-file-scan-dir 指定php的其它配置文件放到哪個目錄下
同樣,執行configure的時候會出現各種依賴庫未找到的錯誤,還是可以通過apt-get install libxxx的方式添加這些庫,或者自己下載源碼編譯安裝這些庫。

make
make test
make install
配置PHP

把php的一些二進制執行文件軟鏈接到系統執行目錄中
ln -s /usr/local/php/bin/php /usr/local/bin/php
ln -s /usr/local/php/bin/phpize /usr/local/bin/phpize

進入php的配置文件
cd /usr/local/php/etc

從源碼包中復制php.ini-development或者php.ini-production文件到此目錄下,并修改名字為php.ini
其中
php.ini-development 適合開發環境下的php配置文件
php.ini-production 適合生產環境下的php配置文件

打開php-fpm的配置文件,做如下修改:
vim php-fpm.conf

//php-fpm程序運行的pid記錄文件
pid = /var/run/php-fpm.pid

//在[www]區域的配置
user = www-data
group = www-data
//這樣設置的目的是讓tengine與php-fpm通過這個socket地址進行通信
listen = /var/run/php-fpm.socket
//創建socket地址時的用戶、組、權限,
//最好以tengine運行的用戶一致,這樣tengine才有權限與php-fpm進行通信
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
編譯php擴展及配置

進入php源碼包中的ext目錄
cd php-5.6.8/ext

舉個例子吧,假如說我們要編譯一個mcrypt擴展
進入mcrypt模塊的源碼目錄
cd mcrypt

執行phpize來動態添加php擴展
phpize

編譯安裝
./configure
make
make install

安裝好后,我們之前編譯php時設置的--with-config-file-scan-dir就派上用場了,
進入設置的/usr/local/php/etc/extends目錄,如果沒有extends目錄可以mkdir一個。
新建一個mcrypt.conf文件
vim mcrypt.conf
寫入

extension=mcrypt.so

這樣的話,如果以后我們不需要mcrypt擴展時,可以直接刪除/usr/local/php/etc/extends/mcrypt.conf配置文件即可。

php-fpm的啟動腳本

php源碼包中已自帶php-fpm的啟動腳本,我們將它復制到/etc/init.d/
cp php-5.6.8/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

修改php-fpm文件
vim /etc/init.d/php-fpm

prefix=/usr/local/php
//這里的pid文件路徑就是上面(php-fpm.conf)配置文件中所設置的pid
php_fpm_PID=/var/run/php-fpm.pid

賦予可執行的權限:
chmod +x /etc/init.d/php-fpm

啟動php-fpm:
/etc/init.d/php-fpm start

這樣phpphp-fpm的配置基本就完成了,關于如何配合Tengine使用在最下面會說。

NODE.JS的安裝

官網 https://nodejs.org

下載源碼
wget http://nodejs.org/dist/v0.12.2/node-v0.12.2.tar.gz

tar zxvf node-v0.12.2.tar.gz

cd node-v0.12.2
編譯安裝

nodejs的編譯安裝不需要太多配置

./configure
make
make install

這樣npmnode 就一并安裝好了

Tengine代理PHP-FPM

進入先前設置好的Tengine的vhost配置目錄:
cd /usr/local/nginx/conf/vhost

假設我們的web目錄是在/opt/www,域名為test.com
新建一個test.com.conf配置文件

server {
    #訪問端口
    listen       80;
    #所綁定的域名
    server_name test.com;
    #access_log  logs/host.access.log  main;

    location / {
        root /opt/www;
        index index.php index.html;
    }
    #設置php文件的代理轉發
    location ~ .php$ {
        root /opt/www;
        #轉發至php-fpm配置文件中設置的socket通信地址
        fastcgi_pass   unix:/var/run/php-fpm.socket;
        fastcgi_index  index.php;
        #所訪問的php文件路徑地址
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

配置文件創建成功后執行
/etc/init.d/nginx reload
即可

Tengine代理NODE.JS

假設我們運行了一個端口號3000的node.js的web應用
我們的域名為testnode.com
新建一個testnode.com.conf配置文件

#設置轉發池
upstream testnode {
    #我們的nodejs應用地址,可添加多個
    #這塊的意義是,我們可以啟動多個相同的nodejs應用,并設置不同的端口號,或者有多臺同服務的nodejs服務器,負載均衡
    server 127.0.0.1:3000;
    server 127.0.0.1:3001;
    server 127.0.0.1:3002;
    ....
    keepalive 64;
}

server {
    listen       80;
    server_name testnode.com;

    location / {
        #這塊設置的意義是當所有請求轉發至nodejs應用時,除了客戶端發來的請求頭之外再攜帶以下這些頭信息
        proxy_set_header X-Real-IP remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header Connection "";
        #http1.1比http1.0的效率要高的多
        proxy_http_version 1.1;
        #填上面定義的轉發池名稱
        proxy_pass http://testnode;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

配置文件創建成功后執行
/etc/init.d/nginx reload
即可

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39135.html

相關文章

  • Tengine2.1.0 PHP5.6.8 Nodejs 編譯安裝配置

    摘要:執行時,可能會報各種依賴包不存在的提示,比如,如果是開發環境或者對這些依賴程序的版本沒有要求的話,可以直接通過的方式安裝這些依賴包。新建一個文件寫入這樣的話,如果以后我們不需要擴展時,可以直接刪除配置文件即可。 淘寶Tengine的編譯安裝 Tengine的官網:http://tengine.taobao.org/ 下載源碼包 wget http://tengine.taobao...

    TesterHome 評論0 收藏0
  • (小白指南)在 Linux 服務器上安裝 Nodejs、Nginx 以及部署 Web 應用

    摘要:首先,的命令和并不能在全局使用。文章有意將瀏覽器不能訪問服務器的兩個問題寫出來,是因為作者在排查問題的時候,發現在服務器直接訪問的頁面,能很好地檢查排除問題在百度尋找問題答案的時候,發現這種做法也得到了不少人的肯定。 前段時間要把項目部署到服務器,期間踩了不少的坑。故寫下這篇文章,從零開始把自己部署的過程都記錄下來,希望能給其他像我一樣的小白一點幫助。如果有疏漏的地方,請各位客官指出,...

    glumes 評論0 收藏0

發表評論

0條評論

XanaHopper

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<