Vietnam

    Nodejs.vn

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Groups
    • Search

    Dành cho các bạn muốn tìm hiểu về nodejs chạy trên nền tảng Php

    Chia sẻ
    0
    20
    6854
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Khoa Lê Duy
      Khoa Lê Duy last edited by

      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 VPS

      Cá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
      1_1498725695497_Screenshot from 2017-06-29 15-30-30.png 0_1498725695496_Screenshot from 2017-06-29 15-29-57.png

      Và mình kết lại là: Mình vẫn yêu "Albert Einstein"

      1 Reply Last reply Reply Quote 0
      • Z
        Zono4ever last edited by Zono4ever

        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 !

        1 Reply Last reply Reply Quote 1
        • Z
          Zono4ever last edited by Zono4ever

          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é.

          1. bạn vào link https://github.com/niutech/node.php và tải file node.php về máy.

          2. mở file node.php đó ra và tìm đến dòng 13

            => define("ADMIN_MODE", false); và thay false = true

          3. 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ử )

          4. 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 )

          5. 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.

          6. 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"
          }
          }

          1. 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.

          1. 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!

          Khoa Lê Duy 1 Reply Last reply Reply Quote 0
          • Khoa Lê Duy
            Khoa Lê Duy @Zono4ever last edited by

            @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 🙂

            1 Reply Last reply Reply Quote 0
            • Rikky Le
              Rikky Le last edited by Rikky Le

              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

              Khoa Lê Duy 1 Reply Last reply Reply Quote 1
              • Khoa Lê Duy
                Khoa Lê Duy @Rikky Le last edited by

                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ề

                1 Reply Last reply Reply Quote 0
                • Rikky Le
                  Rikky Le last edited by

                  Chả cần phân bua. Bạn có quyền giữ quan điểm của bạn

                  1 Reply Last reply Reply Quote 0
                  • Z
                    Zono4ever last edited by Zono4ever

                    1. 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.

                    2. 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ỉ.

                    3. Chịu !!!!

                    tientoantai 1 Reply Last reply Reply Quote 0
                    • tientoantai
                      tientoantai @Zono4ever last edited by

                      @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.

                      1 Reply Last reply Reply Quote 0
                      • Z
                        Zono4ever last edited by

                        @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!!!!.

                        1 Reply Last reply Reply Quote 1
                        • First post
                          Last post
                        $(document).ready(function () { app.coldLoad(); }); }