วิธีโฮสต์แอปพลิเคชัน Node.js ในโฮสติ้งที่ใช้ร่วมกัน
ฉันต้องการโฮสต์แอปพลิเคชัน node.js ในโฮสติ้งที่ใช้ร่วมกัน ใครมีข้อมูลอ้างอิงหรือเอกสารที่จะอ้างถึงหรือไม่?
วิธีโฮสต์แอปพลิเคชัน Node.js ในโฮสติ้งที่ใช้ร่วมกัน
ฉันต้องการโฮสต์แอปพลิเคชัน node.js ในโฮสติ้งที่ใช้ร่วมกัน ใครมีข้อมูลอ้างอิงหรือเอกสารที่จะอ้างถึงหรือไม่?
คำตอบ:
คุณสามารถเรียกใช้เซิร์ฟเวอร์ node.js บนโฮสติ้งที่ใช้ร่วมกันทั่วไปด้วย Linux, Apache และ PHP (LAMP) ฉันติดตั้งสำเร็จแล้วแม้ว่า NPM, Express และ Grunt จะทำงานได้ดีก็ตาม ทำตามขั้นตอน:
1) สร้างไฟล์ PHP ใหม่บนเซิร์ฟเวอร์ด้วยรหัสต่อไปนี้และเรียกใช้:
<?php
//Download and extract the latest node
exec('curl http://nodejs.org/dist/latest/node-v0.10.33-linux-x86.tar.gz | tar xz');
//Rename the folder for simplicity
exec('mv node-v0.10.33-linux-x86 node');
2) วิธีเดียวกับการติดตั้งแอปโหนดของคุณเช่น jt-js-sample โดยใช้ npm:
<?php
exec('node/bin/npm install jt-js-sample');
3) เรียกใช้แอปโหนดจาก PHP:
<?php
//Choose JS file to run
$file = 'node_modules/jt-js-sample/index.js';
//Spawn node server in the background and return its pid
$pid = exec('PORT=49999 node/bin/node ' . $file . ' >/dev/null 2>&1 & echo $!');
//Wait for node to start up
usleep(500000);
//Connect to node server using cURL
$curl = curl_init('http://127.0.0.1:49999/');
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//Get the full response
$resp = curl_exec($curl);
if($resp === false) {
//If couldn't connect, try increasing usleep
echo 'Error: ' . curl_error($curl);
} else {
//Split response headers and body
list($head, $body) = explode("\r\n\r\n", $resp, 2);
$headarr = explode("\n", $head);
//Print headers
foreach($headarr as $headval) {
header($headval);
}
//Print body
echo $body;
}
//Close connection
curl_close($curl);
//Close node server
exec('kill ' . $pid);
โวลา! มีลักษณะที่เป็นตัวอย่างของแอปโหนดบน PHP พื้นที่สาธารณะ
แก้ไข:ผมเริ่มโครงการ Node.php บน GitHub
เชื่อมต่อกับ SSH และปฏิบัติตามคำแนะนำเหล่านี้เพื่อติดตั้ง Node บนโฮสติ้งที่ใช้ร่วมกัน
ในระยะสั้นคุณต้องติดตั้ง NVM ก่อนจากนั้นคุณติดตั้งรุ่นโหนดที่คุณเลือกด้วย NVM
wget -qO- https://cdn.rawgit.com/creationix/nvm/master/install.sh | bash
รีสตาร์ทเชลล์ของคุณ (ปิดและเปิดเซสชันของคุณใหม่) แล้วคุณ
nvm install stable
เพื่อติดตั้งเวอร์ชันเสถียรล่าสุดเช่น คุณสามารถติดตั้งเวอร์ชันใดก็ได้ที่คุณเลือก ตรวจสอบnode --version
เวอร์ชันโหนดที่คุณกำลังใช้งานอยู่และnvm list
ดูสิ่งที่คุณได้ติดตั้งไว้
ในโบนัสคุณสามารถเปลี่ยนเวอร์ชันได้อย่างง่ายดาย ( nvm use <version>
)
ไม่จำเป็นต้องใช้ PHP หรือวิธีแก้ปัญหาที่ยุ่งยากหากคุณมี SSH
nvm:command not found
คุณสามารถเรียกใช้สิ่งนี้: commandsource ~/.nvm/nvm.sh
ฉันติดตั้ง Node.js บน bluehost.com (เซิร์ฟเวอร์ที่ใช้ร่วมกัน) โดยใช้:
wget <path to download file>
tar -xf <gzip file>
mv <gzip_file_dir> node
สิ่งนี้จะดาวน์โหลดไฟล์ tar แยกไปยังไดเร็กทอรีจากนั้นเปลี่ยนชื่อไดเร็กทอรีนั้นเป็นชื่อ 'node' เพื่อให้ใช้งานได้ง่ายขึ้น
แล้ว
./node/bin/npm install jt-js-sample
Returns:
npm WARN engine jt-js-sample@0.2.4: wanted: {"node":"0.10.x"} (current: {"node":"0.12.4","npm":"2.10.1"})
jt-js-sample@0.2.4 node_modules/jt-js-sample
└── express@4.12.4 (merge-descriptors@1.0.0, utils-merge@1.0.0, cookie-signature@1.0.6, methods@1.1.1, cookie@0.1.2, fresh@0.2.4, escape-html@1.0.1, range-parser@1.0.2, finalhandler@0.3.6, content-type@1.0.1, vary@1.0.0, parseurl@1.3.0, serve-static@1.9.3, content-disposition@0.5.0, path-to-regexp@0.1.3, depd@1.0.1, qs@2.4.2, on-finished@2.2.1, debug@2.2.0, etag@1.6.0, proxy-addr@1.0.8, send@0.12.3, type-is@1.6.2, accepts@1.2.7)
ตอนนี้ฉันสามารถใช้คำสั่ง:
# ~/node/bin/node -v
v0.12.4
# ~/node/bin/npm -v
2.10.1
เพื่อความปลอดภัยฉันได้เปลี่ยนชื่อไดเร็กทอรีโหนดของฉันเป็นอย่างอื่น
npm start
ในjt-js-sample
และฉันไป mysite.com:5000 แต่ก็กล่าวว่าหน้าไม่สามารถใช้ได้ ฉันต้องไปที่ที่อยู่ IP แทนหรือไม่?
A2 Hosting อนุญาตให้ node.js บนบัญชีโฮสติ้งที่ใช้ร่วมกัน ฉันสามารถรับรองได้ว่าฉันมีประสบการณ์ที่ดีกับพวกเขา
นี่คือคำแนะนำใน KnowledgeBase สำหรับการติดตั้ง node.js โดยใช้ Apache / LiteSpeed เป็น reverse proxy: https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed- โฮสติ้งบัญชี ใช้เวลาประมาณ 30 นาทีในการตั้งค่าและจะทำงานกับ npm, Express, MySQL และอื่น ๆ
ดู a2hosting.com
คุณควรมองหา บริษัท โฮสติ้งที่มีคุณสมบัติดังกล่าว แต่โฮสติ้งแบบ static + PHP + MySQL แบบธรรมดาจะไม่อนุญาตให้คุณใช้ node.js
คุณต้องหาโฮสติ้งที่ออกแบบมาสำหรับ node.js หรือซื้อVirtual Private Serverและติดตั้งด้วยตัวเอง