摘要:執行時,可能會報各種依賴包不存在的提示,比如,如果是開發環境或者對這些依賴程序的版本沒有要求的話,可以直接通過的方式安裝這些依賴包。新建一個文件寫入這樣的話,如果以后我們不需要擴展時,可以直接刪除配置文件即可。
淘寶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目錄下,其中conf為tengine的配置文件目錄,我們修改一下/usr/local/nginx/conf/nginx.conf這個配置文件:
如果有像Apache的vhost需求的話,可以在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
這樣php和php-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
這樣npm 和 node 就一并安裝好了
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
即可
假設我們運行了一個端口號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/30240.html
摘要:執行時,可能會報各種依賴包不存在的提示,比如,如果是開發環境或者對這些依賴程序的版本沒有要求的話,可以直接通過的方式安裝這些依賴包。新建一個文件寫入這樣的話,如果以后我們不需要擴展時,可以直接刪除配置文件即可。 淘寶Tengine的編譯安裝 Tengine的官網:http://tengine.taobao.org/ 下載源碼包 wget http://tengine.taobao...
摘要:首先,的命令和并不能在全局使用。文章有意將瀏覽器不能訪問服務器的兩個問題寫出來,是因為作者在排查問題的時候,發現在服務器直接訪問的頁面,能很好地檢查排除問題在百度尋找問題答案的時候,發現這種做法也得到了不少人的肯定。 前段時間要把項目部署到服務器,期間踩了不少的坑。故寫下這篇文章,從零開始把自己部署的過程都記錄下來,希望能給其他像我一樣的小白一點幫助。如果有疏漏的地方,請各位客官指出,...
閱讀 2020·2023-04-25 22:50
閱讀 2833·2021-09-29 09:35
閱讀 3390·2021-07-29 10:20
閱讀 3152·2019-08-29 13:57
閱讀 3355·2019-08-29 13:50
閱讀 3031·2019-08-26 12:10
閱讀 3529·2019-08-23 18:41
閱讀 2633·2019-08-23 18:01