基於webrtc的apprtc伺服器搭建(ubuntu14.04 64位)
備註:1.下載的過程需要翻牆,可以確保有穩定的vpn
2.webrtc伺服器所需要的證書必須是第三方簽名機構頒發的證書,自簽證書不起作用
一、伺服器組成
2、Collider 信令伺服器 上邊原始碼裡自帶
4、還需要自己實現一個 coTurn 連線資訊(主要是使用者名稱、密碼的配置)獲取介面,通常叫做 TURN REST API。
二、搭建roomserver
1.下載房間伺服器原始碼
sudo apt-get install git(可輸入git version檢查是否安裝git環境,若有此步驟可忽略)
如果獲取失敗,更新後再安裝
sudo apt-get update
2.安裝依賴項
sudo apt-get install nodejs
sudo apt-get install npm
sudo npm install -g npm
sudo apt-get install nodejs-legacy
sudo npm -g install grunt-cli
切換至原始碼目錄(有package.json)
cd apprtc
npm install(安裝依賴模組在node_modules資料夾下)要翻牆,否則有錯
sudo apt-get install Python-webtest
grunt build
( 注:npm命令用來安裝nodejs的模組
切換到Documents/apprtc 目錄下
- package.json定義了需要安裝哪些依賴項,在package.json所在目錄下執行npm install,安裝依賴模組在這個目錄的node_modudles資料夾下。
- 如果執行npm install -g則是安裝在全域性的地方,所有node專案都是可以使用這個module,安裝路徑可以通過npm config get prefix檢視)
編譯之後在 Documents/apprtc目錄下會多出out目錄,下載Google App Engine SDK for Python(需要翻牆),首先確保系統已經有python,下載地址
下載完後配置環境變數
sudo gedit ~/.profile
source ~/.profile
3.修改配置檔案
- apprtc.py
搜make_pc_config(ice_transports)
config = {'iceServers': [{
"url": "stun:windlazio.cn"
},{
"url": "turn:windlazio.cn",
"username":"apprtc",
"credential": "0xeddf0d3db115c58fd519c1bbd5430a32"
}]
一些資料要搜get_wss_parameters(request),將wss:改為ws:,https:改為http:,是為了不要讓客戶端和瀏覽器去使用ssl連線,如果有第三方根證書的簽名機構頒發的證書就可以不改這裡。if wss_tls and wss_tls == 'false':
wss_url = 'ws://' + wss_host_port_pair + '/ws'
wss_post_url = 'http://' + wss_host_port_pair
else:
wss_url = 'wss://' + wss_host_port_pair + '/ws'
wss_post_url = 'https://' + wss_host_port_pair
- constants.py
修改TURN_BASE_URL = 'https://windlazio.cn',這個是coturn所對應的連線資訊介面的地址
ICE_SERVER_BASE_URL = 'https://windlazio.cn'
CEOD_KEY = 'apprtc' ,這個和coturn turnserver.conf 中static-auth-secret的值一致
WSS_INSTANCE_HOST_KEY = 'windlazio.cn'
WSS_INSTANCE_NAME_KEY = 'vm_name'
WSS_INSTANCE_ZONE_KEY = 'zone'
WSS_INSTANCES = [{
WSS_INSTANCE_HOST_KEY: 'windlazio.cn:4432',
WSS_INSTANCE_NAME_KEY: 'wsserver-std',
WSS_INSTANCE_ZONE_KEY: 'us-central1-a'
}, {
WSS_INSTANCE_HOST_KEY: 'windlazio.cn:4432',
WSS_INSTANCE_NAME_KEY: 'wsserver-std-2',
WSS_INSTANCE_ZONE_KEY: 'us-central1-f'
}]
WSS_INSTANCE_HOST_KEY將其改為信令伺服器可訪問的地址,不需要協議,沒有URL。 - 切換到Documents/apprtc 目錄下,重新編譯
grunt build
修改apprtc/src/app_engine/apprtc.py,修改後編譯同步到apprtc/out/app_engine/apprtc.py
修改apprtc/src/app_engine/constants.py,修改後編譯同步到apprtc/out/app_engine/constants.py
4.執行roomserver
dev_appserver.py --host=windlazio.cn ./out/app_engine
遇到的問題
1. 按照網上的做法,在google_appengine根目錄下找到dev_appserver指令碼,就可以執行roomserver。但是執行失敗,要執行以下步驟:
install.sh
安裝後初始化SDK
google-cloud-sdk/bin/gcloud init(翻牆)
- 建立Google Account
- gcloud init
試gcloud auth list 的命令是否可用
切換至根目錄(dev_appserver可全域性使用),執行房間伺服器:
dev_appserver.py --host=windlazio.cn ./out/app_engine
2.若在~/Downloads/google-cloud-sdk/bin目錄下執行 dev_appserver.py --host=windlazio.cn ./out/app_engine,就會出現如下錯誤:
- InvalidCWDError:Your current working directory is inside the cloud SDK install root:/home/apprtc/Downloads/google-cloud-sdk.
In order to perform this update,run the command from outside of this directory.
切換至根目錄下執行dev_appserver.py --host=windlazio.cn ./out/app_engine,終端資訊:
提示Restart command,執行
$dev_appserver.py --host=windlazio.cn ./out/app_engine
- TypeError:unsupported operand types for datetime,datetime and 'None type'
測試: grunt runPythonTests,出錯:
- SyntaxError:Use of const in strict build
錯誤提示:nodejs版本過低,升級nodejs
sudo npm install -g n
sudo n stable(獲取穩定版)
node -v(檢視nodejs版本是否升級成功)
執行dev_appserver.py --host=windlazio.cn ./out/app_engine成功。
3.客戶端提示not access getUserMedia();
電腦本身沒有音視訊裝置,獲取媒體資料失敗
4.grunt build 出錯:在grunt build時提示requests包找不到
需要使用pip包安裝requests庫
- sudo apt-get pip
- pip install requests
5.npm install需要翻牆
EC2北京區1.通過VPC連線VPN,要收費
3.EC2上配置vpn
然後執行命令:sudo npm install -g
三、搭建信令伺服器
1.下載go原始碼
- 拷貝collider原始碼 在home下建立資料夾collider_root,並在collider_root下建立src
mkdir ~/collider_root
~/colldier_root$ mkdir src
然後修改將之前下載的apprtc原始碼中/apprtc/src/collider的三個資料夾拷貝到~/collider_root/src目錄下
cp -r ~/Documents/apprtc/src/collider ~/collider_root/src
解壓 tar -xf go1.4.linux-amd64.tar.gz
切換到解壓目錄下,/home/apprtc/go
安裝$ cd go
$ cd src
$ ./all.bash
2.設定環境變數
sudo gedit ~/.profile
export GOPATH=GOPATH:~/collider_root
source ~/.profile
終端輸入 echo $PATH ,echo $GOPATH可以檢查是否設定成功
3.collider原始碼
- 修改collider原始碼
進入GOPATH下src/collidermain/main.go修改,修改房間伺服器地址為我們前面的房間伺服器地址
var roomSrv = flag.String("room-server", "https://windlazio.cn", "The origin of the room server")
編輯$GOPATH/src/collider/collider.go,設定信令伺服器所需要用的HTTPS的證書檔案, 找到如下程式碼,註釋後改為這樣:
e = server.ListenAndServeTLS("/usr/nginx/conf/ssl/apprtc.pem", "/usr/nginx/conf/ssl/apprtc.key")
注:這裡的nginx路徑是後面搭建的反向代理伺服器,兩個伺服器使用一個證書,這個證書必須是第三方簽名機構頒發的證書,自簽證書無效,證書申請必須先申請個域名。
- 編譯collider原始碼
切換到$GOPATH/src下(需翻牆)
go get collidermain
go install collidermain
成功編譯後會在collider_root目錄下生成bin和pkg目錄,執行檔案在bin目錄下
4.執行信令伺服器
~/collider_root/bin/collidermain -port=4432 -tls=true
- -port = 表示 collider 監聽的埠
- tls=true表示使用ssl加密連結
遇到的問題
1.在執行 go get collidermain時,出現如下錯誤:
- 找不到 import path "collidermain"
- 未安裝go命令,版本高於1.4
go命令中 初始構建工具的指令碼在$ GOROOT_BOOTSTRAP中查詢現有的Go工具鏈。 如果未設定,則GOROOT_BOOTSTRAP的預設值為$ HOME / go1.4。
不更改GOROOT_BOOTSTRAP這個值,所以下載的go版本必須是go1.4。下載好後執行./all.bash
2.在執行 go get collidermain 出現錯誤:
執行go get collidermain後,~/collider_root/src 目錄下生成 GOPATH資料夾,生成golang.org,終端提示錯誤:
預設golang.org在GOPATH/src目錄下,所以將golang.org複製到GOPATH目錄下,當執行go get collidermain命令時就不會報錯了。
3.在執行go get collidermain 出現錯誤:
- collider/collider.go:56: undefined: tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- collider/collider.go:58: undefined: tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
$GOPATH/src/collider 中的collider.go註釋掉這兩行程式碼,這個是加密套件,ubuntu中的openssl不支援
4.cannot open websocket
這是信令伺服器沒有啟動。因為apprtc的信令伺服器是基於websocket的,信令伺服器沒有啟動,單存啟動房間伺服器時,客戶端連入伺服器會提示無法開啟websocket.
這種無法開啟,除了沒有啟動之外,還有可能是apprtc的原始碼中和信令伺服器相關部分沒有配置好,導致無法聯絡,相關配置檔案要一致。
5.websocket error
若使用自簽證書瀏覽器不會通過,無法通訊。
四、搭建coturn打洞伺服器
1.下載原始碼
解壓 tar -xvfz turnserver-4.4.1.2-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz
sudo apt-get update
sudo apt-get install gdebi-core
sudo gdebi *.deb
2.編輯配置檔案
(1).sudo gedit /etc/default/coturn,將TURNSERVER_ENABLED=1去掉註釋
source /etc/default/coturn //儲存
(2).修改/etc/turnserver.conf之前預備工作,即turnserver.conf需要的內容
- turnadmin -k -u apprtc -r north.gov -p 123456 //生成md5值,儲存
其中apprtc是使用者名稱,123456是密碼
- 建立my.db資料庫, 將md5值與使用者名稱寫入到資料庫中儲存。
apprtc:0xeddf0d3db115c58fd519c1bbd5430a32 - 生成coturn證書
openssl生成簽名證書
sudo openssl req -x509 -newkey rsa:2048 -keyout /usr/local/etc/turn_server_pkey.pem-out/usr/local/etc/turn_server_cert.pem-days 99999 -nodes
然後修改配置檔案
sudo gedit /etc/turnserver.conf,開啟如下介面:
listening-device=eth0 //橋接模式
listening-port=3478
tls-listening-port=5349
listening-ip=192.168.2.101
relay-device=eth0
relay-ip=192.168.2.101
external-ip=192.168.2.101
relay-threads=0
min-port=49152
max-port=65535
Verbose //輸出更多的log
fingerprint //列印資訊
lt-cred-mech
use-auth-secret //REST API 認證需要
static-auth-secret=apprtc //設定使用者名稱
user=apprtc:0xeddf0d3db115c58fd519c1bbd5430a32 //使用者名稱和MD5
user=apprtc:123456 //明文,兩個user二選一
userdb=/home/apprtc/my.db
stale-nonce
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
no-loopback-peers //安全模式,遮蔽 loopback, multicast IP地址的 relay
no-multicast-peers //安全模式,遮蔽 multicast IP地址的 relay
pidfile="/var/run/turnserver.pid"
mobility
no-cli //禁用本地 telnet cli 管理介面
no-sslv3
source /etc/turnserver.conf
(3)修改/apprtc/src/web_app/js/util.js
function requestIceServers(iceServerRequestUrl, iceTransports) {
return new Promise(function(resolve, reject){
var servers = [{ credential: "0xeddf0d3db115c58fd519c1bbd5430a32",
username: "apprtc",
urls: [ "turn:windlazio.cn:3478?transport=udp",
"turn:windlazio.cn:3478?transport=tcp" ]
},
{
urls:["stun:windlazio.cn:3478?transport=udp",
"stun:windlazio.cn:3478?transport=tcp"]
}];
resolve(servers);
});
}
更改~/Documents/apprtc/src/web_app/js/util.js,通過grunt build編譯同步到 ~/out/app_engine/js/apprtc.debug.js
3.執行turnserver
三種方法
- turnserver -c /etc/turnserver.conf -v
log 儲存在/var/tmp
終端也顯示log資訊 - sudo service coturn start
sudo service coturn stop
log 儲存在/var/tmp
終端不會顯示log資訊,列印一些狀態資訊 - sudo turnserver -L 192.168.2.101 -o -a -b ~/my.db -f -r north.gov
log儲存在/etc/log
終端只打印連線狀態資訊
遇到的問題
1.啟動coturn伺服器,出錯:
cannot bind the Device eth0
應該用sudo turnserver -c /etc/turnserver.conf -v超使用者模式啟動
2.網上搜索的相關資料配置turnserver.conf中的userdb = /etc/turnuserdb.conf,這個檔案不是一個數據庫,而這裡需要的是一個數據庫,要生成.db檔案並進行配置。
五、搭建Nginx 反向代理伺服器
dev_appserver.py預設監聽8080埠,即不支援https(埠443),故搭建Nginx伺服器
1.nginx安裝包
- 解壓 sudo tar -zxvf nginx-1.5.9.tar.gz -C ~/Documents
- 安裝依賴項
sudo apt-get install libssl-dev
sudo apt-get install libpcre3 libpcre3-dev
2.安裝
切換到解壓目錄下~/Documents/nginx-1.5.9
執行:./configure --prefix=/usr/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install
若成功則usr下的nginx資料夾就會生成,可執行檔案在/usr/nginx/sbin目錄下。
3.修改配置檔案
sudo gedit /usr/nginx/conf/nginx.conf
user www-data; //配合php5-fpm使用
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream roomserver {
server 192.168.2.101:8080;
}
server {
listen 80 ;
server_name
windlazio.cn;
return 301 https://$server_name$request_uri;
}
server {
root /usr/nginx/html;
index index.php index.html index.htm;
listen 443 ;
ssl on;
# 域名為windlazio.cn的SSL證書文
ssl_certificate /usr/nginx/conf/ssl/apprtc.pem;
ssl_certificate_key /usr/nginx/conf/ssl/apprtc.key;
server_name
windlazio.cn;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
access_log /usr/nginx/logs/apprtc.log;
location / {
proxy_pass
http://roomserver$request_uri;
proxy_set_header Host $host;
}
location ~ \.php$ {
fastcgi_pass
unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
4.啟動nginx
切換到可執行檔案的目錄/usr/nginx/sbin, 驗證配置檔案是否正確
- sudo ./nginx -t
- sudo ./nginx -s reload //重啟nginx
- ps -ef|grep nginx //檢視程序
- pkill -q nginx //停止所有程序
-
sudo kill -QUIT 程序號 //殺死程序號
5.coturn連線資訊的介面(TURN REST API)
說明:1.TURN REST API 標準參考文件 ,REST API 是動態賬號和密碼, turn server和客戶端互動時使用的。
2.由於 coTurn 沒有自帶該介面,所以需要自行實現。關於該介面的實現方式,詳細的內容請參考 coTurn原始文件。
3.介面可通過php介面實現,並在coturn中配置
- 安裝配置php
sudo apt-get install php5-fpm
sudo gedit /etc/php5/fpm/php.ini
設定cgi.fix_pathinfo=0 - nginx.conf中第一行
#user nobody
去掉註釋後改為
user www-data
否則訪問https://windlazio.cn/index.php時頁面會出錯 - index.php介面實現
<?php
$request_username = "";//$_GET["username"];
if(!isset($_GET["username"])) {
//echo "username == null";
//exit;
$request_username = "apprtc";
}
$request_key = "0xeddf0d3db115c58fd519c1bbd5430a32";//$_GET["key"];
$time_to_live = 600;
$timestamp = time() + $time_to_live;//失效時間
$response_username = $timestamp.":".$request_username;//$_GET["username"];
$response_key = $request_key;
if(empty($response_key))
$response_key = "apprtc";//constants.py中CEOD_KEY
$response_password = getSignature($response_username, $response_key);
$iceServer = new Response();
$iceServer->username = $response_username;
$iceServer->credential = $response_password;
$iceServer->ttl = 86400;
$iceServer->urls = array("turn:windlazio.cn:3478?transport=udp","turn:windlazio.cn:3478?transport=tcp","turn:windlazio.cn:3479?transport=udp","turn:windlazio.cn:3479?transport=tcp");
$str = json_encode($iceServer);
$config = array("iceServers"=>[$iceServer,$iceServer]);//{"iceServers":"ff"};
echo json_encode($config);
/**
* 使用HMAC-SHA1演算法生成簽名值
*
* @param $str 源串
* @param $key 金鑰
*
* @return 簽名值
*/
function getSignature($str, $key) {
$signature = "";
if (function_exists('hash_hmac')) {
$signature = base64_encode(hash_hmac("sha1", $str, $key, true));
} else {
$blocksize = 64;
$hashfunc = 'sha1';
if (strlen($key) > $blocksize) {
$key = pack('H*', $hashfunc($key));
}
$key = str_pad($key, $blocksize, chr(0x00));
$ipad = str_repeat(chr(0x36), $blocksize);
$opad = str_repeat(chr(0x5c), $blocksize);
$hmac = pack(
'H*', $hashfunc(
($key ^ $opad) . pack(
'H*', $hashfunc(
($key ^ $ipad) . $str
)
)
)
);
$signature = base64_encode($hmac);
}
return $signature;
}
class Response {
public $username = "";
public $credential = "";
public $ttl = "";
public $urls = array("");
}
?>
返回JSON結果例如:
{"iceServers":[{"username":"1492579833:apprtc","credential":"nWU332E5+KQ2ermmzEEay4rsHag=","ttl":86400,"urls":["turn:windlazio.cn:3478?transport=udp","turn:windlazio.cn:3478?transport=tcp","turn:windlazio.cn:3479?transport=udp","turn:windlazio.cn:3479?transport=tcp"]},{"username":"1492579833:apprtc","credential":"nWU332E5+KQ2ermmzEEay4rsHag=","ttl":86400,"urls":["turn:windlazio.cn:3478?transport=udp","turn:windlazio.cn:3478?transport=tcp","turn:windlazio.cn:3479?transport=udp","turn:windlazio.cn:3479?transport=tcp"]}]} - 啟動/停止 php5-fpm
sudo service php5-fpm start/stop
遇到的問題
1.啟動nginx時,錯誤:
unknown directive “ssl” in /usr/nginx/conf/nginx.conf
安裝開始執行這個命令:./configure --prefix=/usr/nginx 說明該命令沒有將ssl模組編譯進nginx,配置檔案中以ssl_開頭 需要ssl模組的支援
在安裝編譯時改用此命令: ./configure --prefix=/usr/nginx --with-http_stub_status_module --with-http_ssl_module 就解決了。
2.sudo ./nginx -s reload 終端會報錯
- nginx: [error] open() "/usr/nginx/logs/nginx.pid" failed (2: No such file or directory)
執行 sudo /usr/nginx/sbin/nginx -c /usr/nginx/conf/nginx.conf 就會生成pid檔案。
3.啟動roomserver有問題,最後檢視虛擬機器的ip沒有固定,所以為了防止錯誤再次發生,應靜態配置虛擬機器的ip
直接在虛擬機器右上角系統設定中網路設定手動分配固定ip
4.用http連線時出錯
cannot create RTCPeerConnection
是因為apprtc.py中make_pc_config "url":turn:apprtc@192.168.2.101,這裡的apprtc應去掉
5.chrome顯示pushState錯誤(Firefox 顯示:Messages: Failed to start signaling: The operation is insecure.)
Messages:Failed to start signaling: Failed to execute 'pushState' on 'History' : A history state object with URL 'http://192.168.2.101/r/064289210'
cannot be created in a document with origin 'https://192.168.2.101'and URL 'https://192.168.2.101/'
這種錯誤大意是不能將http地址強制轉成https
-
解決方案
apprtc通過grunt build編譯好後在/apprtc/out/app_engine/js目錄下找到 apprtc.debug.js檔案搜尋pushState,找到後將roomLink中的http強制轉為https
roomLink=roomLink.substring("http","https");
(window.history.pushState({"roomId":roomId, "roomLink":roomLink}, roomId, roomLink);)再重新訪問應該不會報錯了。
正常情況應該返回JSON結果例如:
{"iceServers":[{"username":"1492579833:apprtc","credential":"nWU332E5+KQ2ermmzEEay4rsHag=","ttl":86400,"urls":["turn:windlazio.cn:3478?transport=udp","turn:windlazio.cn:3478?transport=tcp","turn:windlazio.cn:3479?transport=udp","turn:windlazio.cn:3479?transport=tcp"]},{"username":"1492579833:apprtc","credential":"nWU332E5+KQ2ermmzEEay4rsHag=","ttl":86400,"urls":["turn:windlazio.cn:3478?transport=udp","turn:windlazio.cn:3478?transport=tcp","turn:windlazio.cn:3479?transport=udp","turn:windlazio.cn:3479?transport=tcp"]}]}原因是nginx無法正確的將 .php 檔案的地址傳遞給php5-fpm去解析,相當於php5-fpm接受到了請求,但這請求卻指向一個不存在的檔案,於是返回空結果。
為了解決這個問題,有兩個途徑(兩個選其一)
1.nginx預設的fastcgi_params配置檔案:
vi /etc/nginx/fastcgi_params
在檔案的最後增加一行:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
2.nginx.conf中增加一行
location ~ \.php$ {
fastcgi_pass
unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
關於這行的內容,多說幾句,其中有兩個引數:
$document_root 即是指網站的根目錄,也就是我們在前面剛設定的 root /www;
$fastcgi_script_name 則指的是index .php 檔名
7.在測試的過程中Android apk出現錯誤提示:parse JSON error,導致無法通訊。
在iOS 也有類似的情況,設定如下,錯誤消失
傳給iOS turnRequestUrl =https://windlazio.cn/index.php?username=apprtc&key=0xeddf0d3db115c58fd519c1bbd5430a32
其中域名或ip,username和key是對應index.php配置好的。
六、附錄
- 開啟roomserver 切換到~/Documents/apprtc 下 grunt build重新編譯
開啟collider伺服器切換到 ~/collider_root/src 重新編譯
go get collidermain
go install collidermain
相關推薦
基於webrtc的apprtc伺服器搭建(ubuntu14.04 64位)
備註:1.下載的過程需要翻牆,可以確保有穩定的vpn 2.webrtc伺服器所需要的證書必須是第三方簽名機構頒發的證書,自簽證書不起作用 一、伺服器組成 2、Collider 信令伺服器 上邊原始碼裡自帶 4、還需要自己
android原始碼編譯(ubuntu16.04 64位)
編譯步驟 1. 原始碼下載; 2. 構建編譯環境; 3.編譯原始碼; 4.執行. 編譯之前首先要下載和安裝repo和gitt工具。 repo和git Google採用Git對AOSP專案進行多倉庫管理. 為了方便需要,對git語句進行了封裝,也就形成了repo.
阿裏雲服務器(Ubuntu16.04 64位)遠程連接
遠程連接 要求 left 沒有 阿裏 xshell medium 上傳下載 rand 購買阿裏雲服務器 1.打開阿裏雲官方網站,賬號登錄,選擇產品中的雲服務器 ECS 2.根據自身需求,選擇合適的阿裏雲服務器系統,(1)點擊一鍵購買,(2)選擇地域,(3)根據自身需
Ubuntu14.04 64位配置Caffe 教程(基於CUDA7.5)
深度學習是研究計算機視覺的重要工具,尤其在影象分類與識別等領域有著劃時代的意義。現在有很多深度學習框架,Caffe是比較常用的一個。本文講述了Ubuntu 14.04(64位)系統下配置Caffe
ubuntu14.04 64位安裝WPS(成功解決沒有ia32-libs的問題)
col lun 又一 target rest .com update sudo lan 前幾天,就把自己的系統換成了ubuntu14.04 64位的。然後就是安裝WPS了(戳這裏進入官網下載)。因為官網提供的WPS是32位的操作系統,所以64位的操作系統不
智慧機開發環境搭建和編譯(Ubuntu14.04[64bit] MTK)
系統補丁更新 進行一些必要的補丁更新以及軟體版本更新。 命令: sudo apt-get update //與伺服器同步軟體包列表,這裡的伺服器是指系統在sources.list檔案中的源 sudo apt-get upgrade //升
在Ubuntu14.04 64位上安裝Clion
14.04 acc inux 界面 下載安裝 section targe pre http 1.下載Clion 1.1 下載Linux版Clion的.tar.gz的壓縮包 Clion 2017.3.1 下載安裝:https://www.jetbrains.com/clion
SVN伺服器搭建(服務端+客戶端)
Windows下使用VisualSVN Server搭建SVN伺服器 SVN簡介: 1、為什麼要使用SVN? 程式設計師在編寫程式的過程中,每個程式設計師都會生成很多不同的版本,這就需要程式設計師有效的管
Ubuntu FTP伺服器搭建(內網和公網)
1、安裝vsftpd # sudo apt-get install vsftpd 若提示Unable to locate package(未發現軟體包),則需要先更新源列表/etc/apt/source.list檔案。 Ubuntu源:http://wiki.ubuntu.org.cn/
Ubuntu14.04 (64)位系統安裝genymotion模擬器和整合到android studio!!!
Ubuntu14.04 (64)位系統安裝genymotion模擬器: 1.在應用商店裡面安裝VirtualBox 2.在genymotion的官網上下載,首先要註冊,要去郵箱完成驗證 2.註冊後登陸,然後點選get genymotion 3.進入後什麼也別管,直接點選
Hadoop2.2.0偽分散式環境搭建(附:64位下編譯Hadoop-2.2.0過程)
Hadoop2.2.0偽分散式環境搭建: 寫在前面:Hadoop2.2.0預設是支援32位的OS,如果想要在64位OS下執行的話,可以通過在64位OS下面編譯Hadoop2.2.0來實現,編譯的操作步驟在最後面呈現。 1: 操作:下載軟體; 檔案:Hadoop-2.2.0.
ubuntu14.04 64位安裝32位庫支援
如出現類似問題: [email protected]:~$ arm-cortex_a8-linux-gnueabi-gcc -vbash: /home/linux/toolchain/bin
VxWorks/tornado環境搭建(Win 7 64位 corei5下試驗成功)
軟體資源下載連結http://pan.baidu.com/s/1kToygpL 1. 虛擬軟盤(RamDisk、VD等)依次裝載CD1和CD2,分別安裝,安裝CD1到60%時會卡死,只要在工作管理員殺死程序tornado.exe[我並沒有安裝CD2] CD1
ubuntu14 04 64位 安裝eclipse出錯
osgi csdn cas 解決 ava java gpl tex http 1 錯誤描述 org.eclipse.m2e.logback.configuration: The org.eclipse.m2e.logback.configuration bundle wa
RabbitMQ C++客戶端SimpleAmqpClient編譯總結(32以及64位)
整個過程沒有截圖,使用為我的“印象筆記”不能傳圖,所以全是以文字形式描述,各位跟蹤我的腳步,一般能走到末尾。 遇到的問題: 1、Cmake必須是2.8版本或以上 2、boost編譯方式必須是預設動態編譯庫,使用靜態庫編譯會報錯(最終我重新編譯boost庫使用完全且預設動
CentOS7 環境下二進位制安裝Mysql5.7.23(都是64位)
網上這方面的安裝資料參差不齊,到處是坑,廢了我好大的勁才裝好,然後把自己整理一下,把安裝過程記錄了下來,同時也分享給有需要的朋友,話不多說,直接上菜 1、 首先去Mysql官網下載Mysql5.7.23 下載地址 https://dev.mys
win7、win8(32、64位)成功安裝oracle10g(32、64位)案例及驗證是否安裝成功
win7- 32位安裝32位 oracle10g,win7-64位安裝32位、64位oracle10g均可參考本案例。 參考:http://blog.sina.com.cn/s/blog_96cb5d4c0101e6pm.html 下載連線:http://pan.baid
常用工具包-哈工大語言技術平臺(LTP)-本地安裝-java介面(ubuntu,win7-64位)
目錄 第一部分 簡介 LTP4J簡介。LTP底層均是C++實現,而LTP4J是對LTP的Java介面封裝。所以對於需要Java介面的開發人員來說要通過呼叫LTP4J的介面實現呼叫LTP的目的,LTP4J封裝
python之scrapy安裝(python3.6*64位)
用python自帶的urllib庫能寫一些簡單的爬蟲,這裡給大家推薦一個牛逼的框架,叫做scrapy,但是這個東東安裝起來難受的要死,昨天整了一天才弄好。。。。。。首先,你要在電腦上安裝python(這個怎麼安裝我就不說了,這個不會安裝,就不用學了。。。。。)第一步:在你的c
基於Docker 搭建自己的webrtc 伺服器:(一)在ubuntu14.04搭建Docker 環境
一.環境準備 1.安裝額外linux-image-extra-* 軟體包 linux-image-extra-* 包用於允許Docker使用aufs儲存驅動程式。AUFS是一種聯合檔案系統。它使用同一個Linux host上的多個目錄,逐個堆疊起來,對外