Dành cho các bạn muốn tìm hiểu về nodejs chạy trên nền tảng Php
-
Xin xác nhận với anh em là nó có chạy nhé
Nhưng cũng cần phải tùy biến một chút
Một số hàm trên môi trường shared host chắc khó chạy
Mình biết hàm exec nó quá vãi nên hay bị disable
Nên cái này để nghiên cứu thôi chứ ổn đinh mình nghĩ không cao
Cũng có thể bạn nào có ông chú nào làm chủ shared host có thể dùng cái này để không mất $ mua VPSCác bạn có thể tham khảo
https://stackoverflow.com/questions/24777750/how-to-host-a-node-js-application-in-shared-hosting/27391738#27391738
http://vinyll.scopyleft.fr/installing-a-custom-version-of-node-on-a-shared-hosting/
https://github.com/niutech/node.php<?php /** * Node.php v0.4 * (c) 2016 Jerzy Głowacki * MIT License */ error_reporting(E_ALL); set_time_limit(120); define("ADMIN_MODE", false); //set to true to allow unsafe operations, set back to false when finished define("NODE_VER", "v5.7.0"); define("NODE_ARCH", "x" . substr(php_uname("m"), -2)); //x86 or x64 define("NODE_FILE", "node-" . NODE_VER . "-linux-" . NODE_ARCH . ".tar.gz"); define("NODE_URL", "http://nodejs.org/dist/" . NODE_VER . "/" . NODE_FILE); define("NODE_DIR", "node"); define("NODE_PORT", 49999);
Có thể đoạn code trên nó chỉ chạy trên linux nên 1 số bạn không test được trên local
Các bạn dùng win có thể tùy biến. Mình nghĩ có khả năng chạy được thôi (96%) không đảm bảo nhé
Dưới đây là hinh anh mình trên máy mình
Và mình kết lại là: Mình vẫn yêu "Albert Einstein"
-
Trời, mấy hôm nay mải vọc nodejs nên cũng quên là có lập topic ở đây.
Như tiêu đề mình chỉ muốn chia sẻ là có cách chạy nodejs trên nền tảng php và chạy được trên host bt chứ ko cần đến VPS ( nếu host đó hỗ trợ curl_exec, exec, passthru).Mình cũng đã nói là mình mới tham khảo về nodejs chứ ko phải pro hay là lập topic này lên để khoe một file có cả link của chủ gốc và một demo mà nó chỉ có một link.
Demo của mình chỉ muốn cho các bạn thấy là host của mình dùng file node.php đó là có thể chạy những app.js đơn giản để cho ai mà chưa có VPS hay hosting ko hỗ trợ chạy nodejs thì có thể dùng cái này để thử.
@tientoantai theo bạn thì mình khoe khoang cái gì, khoe cái là mình ko biết gì về nodejs àh?!?!?! (mà hình như đây là showcase - Open Source mà )
@Khoa Lê Duy bạn có thể viết một function nhỏ để nó check nếu bị disconnect thì bắt nó khởi động lại và khi vẫn đang chạy bt thì bỏ qua function đấy là đc.
Mình ko biết là nó đc lâu không nhưng trang của mình từ hôm lập topic này thì chưa bị disconnect lần nào cả hay là vì nó cũng ko có gì nên chưa bị.
Đây là trang admin mà mình nghịch gõ
node pid * check
để xem nó đã bị disconnect | pid đã bị kill hay nó vẫn alive !
-
Mình thấy hình như vẫn chưa có ai đã làm đc ngoài bạn @Khoa-Lê-Duy nên mình viết các bước mình đã làm để nó chạy đc.
Bạn nên chắc chắn là host của bạn cho phép curl_exec, exec, passthru nhé.
-
bạn vào link https://github.com/niutech/node.php và tải file node.php về máy.
-
mở file node.php đó ra và tìm đến dòng 13
=> define("ADMIN_MODE", false); và thay false = true
-
tìm đến dòng 125
=> $curl = curl_init("http://127.0.0.1:" . NODE_PORT . "/$path");
ở đây bạn thay http://127.0.0.1 = link host của bạn. Trên trang của mình sẽ là http://api.cyviet.com
Demo ( các bạn nên lập một subdomain để chạy thử ) -
tải file node.php lên host của bạn. ( Như trên demo của mình, mình lập một subdomain và có folder là api nên mình tải nó vào đây )
-
bắt đầu chạy link http://example.org/node.php?install để cài đặt. Sẽ mất ít thời gian để tải và cài đặt nên bạn chiu khó đợi.
-
khi cài đặt xong bạn hay mở một tab browser mới và vào trang host của bạn xem nếu nó hiện
=> Node.js is not yet running.
có nghĩa bạn đã cài xong. Giờ bạn tạo một file mới với tên là index.js và có nội dung
const express = require('express')
const app = express()app.get('/', function (req, res) {
res.send('Hello World!')
})app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})=> tạo một file có tên là package.json và có nội dung
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.15.3"
}
}- Trong file index.js bạn sẽ thấy chúng ta có sử dụng express nên trc khi chạy index.js bạn phải install express với link
http://example.org/node.php?npm=install express
và đây cũng là đường link mà bạn sẽ sử dụng nhiều đến để cài đặt những modules mà app của bạn dùng.
- khi cài express xong các bạn khởi động index.js bằng link
http://example.org/node.php?start=index.js
Vậy là xong. giờ trên trang chính của bạn sẽ hiển thị Hello world!
-
-
@Zono4ever Cơ bản là cái này không chính thống nên mọi người không ham thôi bạn
Và thứ nữa là không phải ai biết node cũng biết đến php và ngược lại.
Hơn nữa những người kì cựu ở trên còn không thể tin nổi vào mắt mình thì ai tin
Đôi khi sáng tạo nó đến từ những cái rất dở hơi và từ những thằng rất dở hơi -
Nói thật là mình không thích rep đâu. Nhưng thôi thì chốt như này nhé:
Cái bạn đang làm là proxy các bash command thông qua PHP để cài đặt/run nodejs. Dùng những từ như trên nền tảng PHP là gây ngứa mắt mấy thằng Chí Phèo kia là đúng cmnr. Thêm nữa cái bạn làm nguy hiểm chả kém gì chơi SQL injection, nói thật là sẽ bị hack cho bục mặt.
Thế nhé. Chào thân ái và quyết thắng
-
Nói thật mình cũng không muốn phân bua gì
Nhưng code lại hẳn hoi cái repo kia
Chỉ cho chạy exec khi đúng lệnh, check choác các kiểu thì có được không?
Vấn đề là mọi người đưa lên đây tham khảo, có ý đóng góp xây dựng.
Liệu có ai nghĩ javascritp chạy được trên server khi nodejs chưa ra đời?Php nó phát triển mạnh nên tận dụng được shared host
Đâu phải ai cũng đủ trum để kiếm vps
Mà đã là con nhà nghèo thì hack được cái ghề -
Chả cần phân bua. Bạn có quyền giữ quan điểm của bạn
-
-
Trời ạ cái này mình cũng ghi là THAM KHẢO chứ mình có bắt các bạn phải dùng đâu.
-
Nếu ko kết nối đc SSH thì dùng file này để bash command, file này nó là php nó ko phải nền để bạn dùng nó để kích hoạt command àh.Mà nhiêu khi kết nối SSH thì chắc gì host của bạn cho cài node để bạn chạy nodejs. Không phải mua VPS thì dùng cái này có chết ai đâu mà sao cứ làng nhàng thế nhỉ.
-
Chịu !!!!
-
-
@Zono4ever Mình dùng từ khoe chứ đâu có chê bạn KHOE KHOANG đâu. Ví dụ mình thấy có cái IDE abc gì đó hay ho thì mình khoe vs bạn bè cũng đc vậy.
Còn đây là lý do mình Ko thiện cảm với post này:
1 như @rikky nói.
2 Bạn viết Ko đúng tên công nghệ
3 Khi đọc đến cái đoạn "Không cần load phải load lại trang" thì trong đầu mình kiểu "wtf thanh niên này đang viết gì thế".
Và mình comment lại như vậy.
Thế thôi chứ chả miệt thị gì ai đâu. Vậy nhé.
Thân ái. -
@tientoantai khi lập topic này thì tôi nghĩ đến socket cái mà tôi thấy đầu tiên khi tò mò về node. Nên trên đầu topic có nhầm.
Tôi cũng đã viết là mới tìm hiểu về node thôi chứ có vỗ ngực bảo là pro của node đâu mà ông lại chốt câu " đưa thông tin không chính xác". Ít nhiều ông nên hiểu và thông cảm cho những người mới, nhầm lẫn là chắc chắn sẽ có. Đọc cái rep của ông nói ko chính xác này nọ tôi đã thấy ông kiểu kinh kỉnh người khác. Nghĩ mình là ai!!!!.