Articles of php

从PHP启动节点似乎保持PHP运行?

所以开始我build立一个NodeJS应用程序,与网站的前端一起工作。 这是build立的,我想要的是通过PHP启动它。 所以你可以点击保存,然后启动它,如果需要的话。 该应用程序是一个websocket服务器,并将监听一个websocket并处理来自客户端(我的网站的前端)的数据/命令。 现在我用来启动它的代码如下: $command = '/usr/local/bin/node main.js & echo $!'; $processid = shell_exec($command); 但由于某种原因,当我点击保存在前端它只是挂起,并继续加载…但在页面上什么也没有显示? 它创build了我可以看到的过程: lsof -i tcp:8000 和该页面只停止加载时,我杀了该节点正在运行的进程… 我在用: kill -9 <pid> 杀了它。 所以我有点失落,为什么它不在后台运行,然后完成PHP脚本…它只是挂在它? 任何帮助,将不胜感激。 有一点需要注意的是,这一切都是从命令行运行良好,所以文件是一个单独的启动类,如果我通过PHP运行它,并添加一些代码来执行任务它的作品,只有当我从别的什么我调用它有问题吗? 如果有帮助 网站使用的架构是Joomla 3.x,预先感谢。 我在MacBook Air El Capitan上,也需要在Linux CentOS上工作

PHP的base64_encode结果不类似于JavaScript的编码结果

代码片段: PHP: $shaVal = '59bc125840733ea828f42e276661b01e177f1414'; $enc = base64_encode(pack('H*', $shaVal)); echo $enc; //prints => WbwSWEBzPqgo9C4nZmGwHhd/FBQ= 在Javascipt我使用buffer npm模块 let Buffer = require('buffer').Buffer; let shaVal = '59bc125840733ea828f42e276661b01e177f1414'; //function similar to php's pack() and returns binary data let bData = Buffer.from(shaVal, 'hex').toString(); console.log('bData ', bData) //encode with base64 let val64 = Buffer.from(bData, 'binary').toString('base64'); console.log('base 64 encode ', val64) //prints […]

使用Node.JS来调用PHP脚本会降低性能吗?

我有一些传统的PHP包装,通过简单的curl请求来调用API。 我正在创build一个Node.JS应用程序来调用这些包装,并进行一些额外的asynchronous处理。 但是,以这种简单的方式连接Node和PHP: Node<->PHP<->External Server 降低代码的速度/性能?

使用Node.js保存压缩的string

现在,我正在使用gzcompress压缩一些数据并将其保存到PHP文件中。 这是我的PHP代码。 我将这个压缩的string保存到一个文件,然后使用zlib从iOS打开它。 $compressed_text = gzcompress($text, 9); 我想用Node.js在JavaScript中做同样的事情,但我不能得到它的工作。 这是我在Javascript中试图做的。 var input = new Buffer(text); zlib.deflate(input, function(error, output) { var compressed_text = output.toString('ascii'); }); 使用Node.js无法从iOS解压缩这些数据。 它适用于PHP,但我不能让它在Node.js工作。 我应该用不同的方法而不是deflate吗?

AES CryptoJSencryption和phpseclib解密

我有下一个问题 在Node.js上我有一个下一个代码 var iv = CryptoJS.enc.Hex.parse('00000000000000000000000000000000'); //it's for tests, later it will be dynamically generated var key256Bits = 'A5178B6A965AACF3CD60B07A15061719'; var cipher = CryptoJS.AES.encrypt( 'Some text', key256Bits, { iv: iv, padding:CryptoJS.pad.ZeroPadding } ).toString(); 然后当我尝试用phpseclib解码它 $key = 'A5178B6A965AACF3CD60B07A15061719'; $data = /*text encrypted by JS*/; $cipher = new AES(); $cipher->setKeyLength(256); $cipher->setKey($key); $res = $cipher->decrypt($data); 然后$ res变成一个空string 我做错了什么?

私人聊天(PHP + Socket.io)与PHP会话

我正在开发一个使用php + socket.io的私人消息系统的网站。 从一开始,我使用socket.emit将sender_id , recipient_id和text传递给了socket.io,但后来才意识到这可能很容易被篡改,并希望以某种方式使用我的php会话,以确保sender_id确实是sender_id 。 我现在有下面的设置,但我真的不明白如何将会话从index.php传递到app.js,然后连接到app.js中的redis-server以获取保存user_id的PHPSESSID。 运行nginx + php-fpm(index.php)的服务器1 服务器2运行node.js与socket.io(app.js) 运行redis进行会话pipe理的服务器3 我的代码现在看起来像下面,但显然缺less现在的Redis的一部分,我真的appriciate一些帮助。 谢谢! 的index.php <?php session_start(); if ($_SESSION['user_id'] == false){ header("Location:login.php");die; } ?> <script> var socket = io('https://app01.dev.domain.com:8895'); socket.on('connect', function(){ console.log("Connected to websockets"); }); socket.on('event', function(data){}); socket.on('disconnect', function(){}); $('.chat-message').keypress(function (e) { if (e.which == 13) { console.log("send message"); var friend_id = $(this).attr('id'); friend_id […]

XAMPP + Laravel + AdminLTE

好吧,当我发现pipe理员Dash Laravel模板将整个AdminLTE模板连接到Laravel 5.4时,包括示例页面,数据库表格等,只是为了在我的本地XAMPP上运行时碰到一个障碍服务器… 我按照说明和: 在Z:/xampp/htdocs/目录下通过laravel new test3创build了一个新的Laravel项目。 下载Admin-Dash文件并将其粘贴到新的项目文件夹(test3) 跑php artisan migration 运行npm install 编辑我的.env文件指向正确的文件夹APP_URL=http://localhost/test3 。 这导致了这一点: 假设提供的站点如/login/或/register/和CSS / JSfunction似乎都不起作用,很可能是由于模板在http://localhost/dist/寻找dist文件夹,在Z:/xampp/htdocs/test3/public/dist 。 如何更改模板中的文件夹目标? 感谢任何帮助,谢谢! A2K 编辑 如前所述,css / js文件夹位置存在问题。 我已经在Z:\xampp\htdocs\test3\resources\views\layouts了Admin / Guest / Common的刀片,并将它们调整为如下所示: 例如。 jQuery的 <!– jQuery 2.2.3 –> <script src="/plugins/jQuery/jquery-2.2.3.min.js"></script> to <!– jQuery 2.2.3 –> <script src="/test3/public/plugins/jQuery/jquery-2.2.3.min.js"></script> 这似乎最终解决了布局问题,但是当点击任何链接,例如。 /register/它指向我http://localhost/register/而不是http://localhost/test3/register/ 。 它不应该有必要乱用主刀片configuration,这让我想知道是否有一个主pipe设置的pipe理代表path,我失踪了? 编辑2 由于CSS / JS问题是通过利用{{ […]

在nodejs中远程连接mysql数据库

我想连接另一个服务器数据库。 例如代码是在ABC服务器,我想另一个服务器是XYZ服务器的数据库。 我已经做了。 但得到错误 错误:ER_BAD_DB_ERROR:未知数据库'cp' 在那里我有一个数据库作为CP 交互的服务器代码是 var db_config={ "domain" : "http://****/", "hostname" : "****", "port" : 3306, "user" : "*****", "password" : "****", "database" : "cp" } var connection=mysql.createConnection(db_config); connection.connect(function(err,s){ if (err){ console.log("Error"+err); } else{ console.log("db connected"); } }); 当我删除数据库和凭据是正确的,我可以连接服务器。 如果我使用information_schema作为数据库的名称也db连接正确。 但是当我使用其他数据库我仍然面临着错误 错误:ER_BAD_DB_ERROR:未知数据库'cp' 我已经做了远程访问设置在特定的服务器和检查在PHP代码,其在那里工作很好。 请帮助忙碌的工作。

AESencryption不同于节点和PHP

我有两个脚本,都使用相同的algorithm来encryption具有相同的密钥和IV的string。 但结果是不同的。 openssl_encrypt仍然使用不同的填充scheme比节点还是我错过了别的嘻嘻? 节点 const crypto = require('crypto'); var passphrase = '29486a7a37664140'; var iv = '76e69938cdf5bb64'; var text = '1234567890123456'; var cipher = crypto.createCipheriv('aes-128-ctr', passphrase, iv) var crypted = cipher.update(text,'utf8','hex') crypted += cipher.final('hex'); var result = crypted + ':' + iv; console.log('crypted: (' + crypted.length + ' chars)', crypted); // crypted: (32 chars) b94107e56900ec8270a847bbf457eaa6 PHP […]

如何使用nodejs读取串口数据并使用rs232电缆将输出发送到PHP服务器?

我需要读取一个串口来获取数据使用RS232电缆,并希望将输出发送到一个PHP服务器,但我find了一种使用node.js的方式。 我search了很多,也发现了PHP的解决scheme,但它不适合我。 这个怎么做?