我已按照本指南使用PyMongo进行自签名SSL连接,由Wan Bachtiar创建三个.pem文件; server.pem,client.pem和ca.pem.
我使用的是Ubunut 16.04和mongoDB v3.2.11.
目的是在将mongoDB打开到公共互联网之前保护它.
让我们启动mongod:
$ mongod --auth --port 27017 --dbpath /data/db1
--sslMode requireSSL --sslPEMKeyFile /etc/ssl/server.pem
--sslCAFile /etc/ssl/ca.pem --sslAllowInvalidHostnames &
Run Code Online (Sandbox Code Playgroud)
输出:
root@tim:/etc/ssl# 2017-01-13T12:58:55.150+0000 I CONTROL [initandlisten] MongoDB starting : pid=19058 port=27017 dbpath=/data/db1 64-bit host=tim
2017-01-13T12:58:55.150+0000 I CONTROL [initandlisten] db version v3.2.11
2017-01-13T12:58:55.151+0000 I CONTROL [initandlisten] git version: 009580ad490190ba33d1c6253ebd8d91808923e4
2017-01-13T12:58:55.151+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
2017-01-13T12:58:55.152+0000 I CONTROL [initandlisten] allocator: tcmalloc
2017-01-13T12:58:55.152+0000 I CONTROL [initandlisten] modules: none
2017-01-13T12:58:55.152+0000 I CONTROL [initandlisten] …Run Code Online (Sandbox Code Playgroud) 在Debian Jessie上,Apache2 --version"0.91-ubuntu1",PHP 5.6.30.
在搜索主题时,我尝试了许多已经回答的问题.
1)我为MongoDB PHP驱动程序进行了手动安装 http://php.net/manual/en/mongodb.installation.manual.php
2)要检查它是否有效,我创建了一个文件testMongo.php并添加
<?php phpinfo(); ?>
3)在浏览器中运行testMongo.php,可以找到该配置文件.
/etc/php5/apache2/php.ini
4)可以使用该命令找到我的mongo.so文件
php -i | grep extension_dir
5)输出是:
extension_dir =>/usr/lib/php5/20131226 =>/usr/lib/php5/20131226
6)在这个文件中,我在"动态扩展"之后添加了
延长=/usr/lib中/ PHP5/20131226/mongo.so
7)然后我去了Composer并完成了命令行安装
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Run Code Online (Sandbox Code Playgroud)
8)安装Composer后,我试过:
php composer.phar require mongodb/mongodb
Run Code Online (Sandbox Code Playgroud)
但是,这会产生以下消息:
Problem 1
- mongodb/mongodb 1.2.0 requires ext-mongodb ^1.3.0 -> the requested PHP extension mongodb …Run Code Online (Sandbox Code Playgroud) 问题:如何将标准库添加到 arm-fslc-linux-gnueabi-gcc
背景:我刚刚meta-toolchain在 Yocto 项目中进行了bitbake 编译。然后我安装了生成的 SDK 工具链
$ ./build/tmp/deploy/sdk/fslc-framebuffer-glibc-x86_64-meta-toolchain-armv7at2hf-neon-toolchain-2.4.2.sh
然后将 SDK 工具链安装在 /opt/fslc-framebuffer/2.4.2/
然后我可以轻松地运行可执行文件来获取正确的环境变量。
$ ./opt/fslc-framebuffer/2.4.2/environment-setup-armv7at2hf-neon-fslc-linux-gnueabi
我现在可以访问交叉编译器 arm-fslc-linux-gnueabi-gcc
到现在为止还挺好...
然后我在这里从 NXP 下载了准系统 SDK 。这是一部伟大的作品,但它可能有点过时了。首先解压缩文件,然后按照 SDK readme.pdf 中的步骤进行操作。
在 readme.pdf 之后,我执行以下操作: 要构建 SDK,请使用根文件夹中的 ./tools/build_sdk 命令。我收到多个错误,但它们都与标准库有关,例如:
iMX6_Platform_SDK/sdk/drivers/accelerometer/src/mma8451.c:31:10: fatal error: string.h: No such file or directory #include <string.h>
iMX6_Platform_SDK/sdk/include/sdk.h:40:10: fatal error: stdio.h: No such file or directory #include <stdio.h>
Run Code Online (Sandbox Code Playgroud)
那么我该如何解决呢?我是交叉编译标准库还是在其他地方获取二进制文件?
我从 Nordic SDK 的 keil 示例项目开始。这个问题不是关于nordic sdk,而是Keil如何连接头文件和源文件。经过我的理解,Keil 隐藏了所有合并到 main.c 文件中的头文件,见下图。
我想添加我自己的名为“physical.h”的头文件,在其中定义我添加的其他硬件。有时我想添加一个头文件和源文件“*.c”文件。我可以具体做什么来添加一个新文件,并用我的 main.c 文件编译这个新文件?演练将不胜感激。