Dành cho các bạn muốn tìm hiểu về nodejs chạy trên nền tảng Php
-
Mình làm quen với nodejs chưa lâu nhưng đã thấy yêu ngay từ cái nhìn đầu tiên về nodejs, vì tốc độ và cách sử lý dữ liệu mà không cần phải load lại trang.
Vì mới tìm hiểu về nodejs nên vấn đề để bỏ tiền mua một VPS có thể hơi e ngại cũng như rất nhiều bạn ở nodejs forum chúng ta ở đây.
Vô tình mình tìm thấy bản chạy nodejs trên nền tảng php (có thể chạy trên host & domain bình thường) nên đã rất tò mò.
Mình đã thử chạy và thấy khá hài lòng với kiến thức mới gia nhập nền tảng nodejs như mình.
Các bạn có thể tham khảo thêm ở đây https://github.com/niutech/node.php
Dưới đây là bản demo mà mình làm trên host của mình.
DEMO: http://api.cyviet.com/
Bản demo của mình đã kết nối với mysql, tất cả text mà các bạn thấy đều được lấy trong sql bằng nodejs. Chạy express với views là ejs.
-
Nếu chỉ để học thôi thì ok. Ngoài ra bạn nên thử dịch vụ của heroku https://www.heroku.com/pricing. It's free
-
"""Mình làm quen với nodejs chưa lâu nhưng đã thấy yêu ngay từ cái nhìn đầu tiên về nodejs, vì tốc độ và cách sử lý dữ liệu mà không cần phải load lại trang."""
Bạn có nhầm lẫn ko vậy ??? nodejs là server-side làm gì có chuyện không cần load bạn trừ khi là angular , reactjs , ajax thôi bạn nhé .
-
Bạn có nhầm giữa nodejs với meteor hoặc mean k vậy @@
-
@Zono4ever Bạn có hiểu mình đang viết cái gì không thế?
-
Ok fine!
-
This post is deleted! -
đọc ... hiểu gì! dù sao cũng cảm ơn bạn
-
Xin chào,
Mình cho rằng @Zono4ever là người mới tiếp cận nodejs và đang trong giai đoạn khám phá, tìm hiểu. Đây có thể là những ý tưởng mới và sáng tạo. Có thể sẽ
lạ lẫm
vàngớ ngẩn
với một số bạn, những người đã quá quen với những cái bình thường và tin vào bản chất nó mãi như thế.Các bạn @tientoantai @domanhdat @Lê-Mạnh-Hùng @npm có thể là những tay dev cứng và chuyên nghiệp. Nhưng mình cảm thấy có gì không đúng ở đây ? Các bạn không hề gỡ rối hoặc trao đổi 1 cách tích cực để phản biện với chủ bài post. Điều này có thể dẫn đến những hậu quả tiêu cực, chẳng hạn như: Các thành viên khác hùa theo, thành viên mới không dám post bài vì biết chắc sẽ bị ăn gạch đá, post 1 lần rồi thôi.
Vậy mong tất cả các bạn trong diễn đàn này có những trao đổi thiện cảm với nhau, phản biện tích cực để giải quyết được vấn đề của người post bài.
Rất xin lỗi các bạn mà mình tag ở trên nếu những góp ý này của mình không được thiện cảm. Cũng rất mong các bạn ủng hộ quan điểm của mình và ủng hộ diễn đàn nodejs.vn để forum sẽ được tốt hơn. Ngày một đi lên !
Cảm ơn các bạn đã đóng góp cho cộng đồng trong suốt thời gian qua.
Trân trọng cảm ơn ! -
Xin chào,
Thứ nhất, cá nhân mình thừa nhận mình (RẤT) không có thiện cảm với bài viết này lý do thì chắc khá nhiều bạn biết.
Thứ 2, mình không thấy có gì cần phải gỡ rối ở đây cả, đây không phải bài thắc mắc hay hỏi đáp gì đây là showcase tức là bạn ấy đi KHOE và với những bài viết thế này mà đưa thông tin RẤT không chính xác thì theo quan điểm mình là KHÔNG THỂ CHẤP NHẬN ĐƯỢC
Thứ 3: Comment của mình có thể hiện thái độ phê phán tuy nhiên hình như chưa đến mức tiêu cực.
Thứ 4: Bạn có quyền thể hiện quan điểm cá nhân và đề nghị mọi người tôn trọng quan điểm của bạn mình không ý kiến nhưng hình như bạn cũng nên tôn trọng quan điểm của mình.
Cuối cùng: Cảm ơn ý kiến tâm huyết của bạn nhưng mình xin phép giữ nguyên thái độ của mình.
Thân ái. -
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!!!!.