当前位置: 首页 > news >正文

网站是做流程图国外最具创意的wordpress博客

网站是做流程图,国外最具创意的wordpress博客,wordpress站长主题,三乡网站建设公司嵌入式 lnmp搭建的记录 N#xff1a;NginxP#xff1a;php编译PHP可能遇到的问题configure阶段#xff1a;Makefile-make阶段#xff1a;Makefile-make install阶段#xff1a; 文章比较水#xff0c;并没有没解决什么实际问题#xff0c;有点不好意思发布。但好像又记录… 嵌入式 lnmp搭建的记录 NNginxPphp编译PHP可能遇到的问题configure阶段Makefile-make阶段Makefile-make install阶段 文章比较水并没有没解决什么实际问题有点不好意思发布。但好像又记录了不少交叉编译配置的思路所以还是记录下来希望有更多大佬能给支支招共同进步 NNginx Nginx全版本 要交叉编译这个服务器需要前置pcre 点击去官网 根据官网讲述常用且稳定的是pcre虽然版本比较旧但是用的非常广。pcre2是最新的。 这里我下载的是pcre-8.44 这个Nginx的移植比较有意思它不像其他库其他库如果要拓展只需提供编译好的拓展库路径(包含/bin /lib /include 那个)而Nginx则需要提供源码它来给我们编译。 这就导致它对交叉编译不友好这里附上他人例程供参考。下面记录是我遇到的问题以及解决方法 作者爱是恒久忍耐_又有恩慈 找不到pcre2.h 这个简单根据对应行号和语句找到Makefile文件里对应的行添加指定的头文件路径即可。如果可以事先指定CFLAG增加头文件搜索路径也可以。 ipv6支持问题 跟上面引用的博客一样但是原作者似乎没遇到我这个问题我这里的ngx_event_udp.c里面有其他语句需要注释掉。既然选择不用ipv6那就贯彻到底了。108和220行 相信编译完成后肯定会遇到和我一样的问题 路径又指向了桌面虚拟机的Ubuntu路径不是开发板的路径。头疼中… Pphp 这里我用的是php7-2.15 点击官网下载其他版本 由于我这里需要用到许多库libxml、iconv、curl、gd、gmp…然后网上暂时没找到嵌入式linux版本的一键环境安装…所以只能硬着头皮一个个去交叉编译再包含进configure里。 我的流程是这样的 根据需要的库去点我点我官方文档里面搜索对应的库 然后点开安装 或者需求 一般都会给对应库的下载路径爱了爱了省去多少找源码的麻烦 下载了源码之后就好办了我用的是笨方法一个个写脚本configure交叉编译 比如libxml 的交叉编译 #!/bin/bash ./configure \ --prefix$PWD/1_libxml2-dom_install \ --hostarm-himix200-linux \ --with-tree \ --with-python$PWD/python \ CCarm-himix200-linux-gcc \ CPParm-himix200-linux-cpp \编译PHP可能遇到的问题 编译PHP可能会遇到很多麻烦首先先看config.log 日志查找原因。由于我这里库太多全部记录上不太现实我慢慢记录遇到的比较有代表性的问题吧。 PPS想指明第三方库所在路径有四种方法 1添加xx.pc文件export PKG_CONFIG_PATH/xxx:$PKG_CONFIG_PATH和指定搜索路径的export LD_LIBRARY_PATH/yourdir/:$LD_LIBRARY_PATH 2在 /etc/ld.so.conf 文件中添加库的搜索路径。将库文件的绝对路径/lib直接写进去就OK。 3丢到编译器的默认搜索路径。使用 arm-前缀-gcc -print-file-namexxx.so 来找到编译器的默认路径 4在configure阶段添加-LDFLAG 增加编译选项给编译器直接增加搜索路径 如果你移动了lib库文件对应的xx.pc也要同步更新且放到pkgconfig搜索目录下否则pkg-config会搜索不到 configure阶段 1找不到编译好了的依赖库。 在移植libgd库的时候因为它需要libjpeg、libpng、libzlib等依赖前置库所以先编译它们仨。然后在配置的脚本里–with-jpeg 的时候总是提醒说找不到库。 后面configure的配置日志看到了解决方法 很明显configure脚本没能找到我提供的交叉编译好的库只能手动给环境变量PKG_CONFIG_PATH 添加我libjpeg、libpng、libzlib这些库的lib/pkgconfig/xxx.pc 这个.pc 文件指明了对应库的头文件和lib库文件存在的路径。 既然只用这一次那就用作临时环境变量就行 #!/bin/bash export PKG_CONFIG_PATH/home/ouser/himix200-disk/php_nginx/src_tmp/zlib-1.2.11/1_zlib_install/lib/pkgconfig/:$PKG_CONFIG_PATH export PKG_CONFIG_PATH/home/ouser/himix200-disk/php_nginx/src_tmp/jpeg-9d/1-jpeg/lib/pkgconfig/:$PKG_CONFIG_PATH export PKG_CONFIG_PATH$PWD/freetype-2.10.1/1-TARGET/lib/pkgconfig/:$PKG_CONFIG_PATH export PKG_CONFIG_PATH/home/ouser/himix200-disk/php_nginx/src_tmp/libpng-1.6.37/1-TARGET/lib/pkgconfig/:$PKG_CONFIG_PATH echo $PKG_CONFIG_PATH./configure \ --prefix$PWD/1-libgd \ --hostarm-himix200-linux \ --with-config-file-path/disk/php-7.2.15-arm/lib/ \ 设置php.ini文件路径最好是你开发板上的目录因为这个选项编译后无法更改 --with-config-file-scan-dir/disk/php-7.2.15-arm/lib/ \ --without-fontconfig \ --with-zlib \ --with-jpeg \ --with-freetype \ --with-png \ CCarm-himix200-linux-gcc \再次运行脚本就能找到前置依赖库并编译成功啦 如果还是不行应该是交叉编译的ld工具查找不到对应库 这个时候就只能在配置脚本xxx.sh里的./configure里面增加一行 LDFLAGS-Ldir 意思是在调用编译的时候直接指定包含的库的路径。 如果这样也是不行就查看这个依赖库/lib/下面有没有.so 有种情况是Makefile没有成指向有效库文件的.so 软连接用;ln -s 源文件 目标文件 即可。 2configure可能存在的测试语句 坑爹改它修改之前要记得备份喔 3移植进开发板后发现找不到php.ini 文件 如果没有指定初始php.ini在源码目录里且有两个一个是生产环境一个是产品环境如php-development.ini 。在源码目录下用find ./ -name php*.ini一般就可以找到。 在桌面linux可以直接放到默认目录/usr/local/php下。但是咱这是交叉编译。 移植完后想给php指定php.ini文件路径的方法我暂时还没找到只能返回到configure阶段用--with-config-file-pathDIR \ --with-config-file-scan-dirDIR \两个选项来提前指定搜索路径。这个路径是你要把php.ini放在开发板的哪个位置。等make install完成后就把php.ini放到开发板对应目录即可。 这样就可以找到了。如果全部显示(none)就代表你应该向我上面那样重新编译一遍了。 Makefile-make阶段 1指明了头文件包含目录为交叉编译器包含的目录但是在make过程中总是去到/usr/include/stdlib.h 如果你能在你的交叉编译工具里找到stdlib.h然后make过程中又提示说/usr/include/stdlib.h err: #include bits/floatn.h no such file 意思是在/usr/include/stdlib.h找不到那个头文件。可是明明在configure步骤里指明了是交叉编译却又跑去找/usr/inlcude? 既然是make阶段出问题得勒去找编译脚本Makefile修改: 要修改Makefile --/usr/include 全部换成交叉编译下的 .../xxx/usr/include 如CFLAGS_CLEAN : -I/usr/include -g -O2 -fvisibilityhidden -DZEND_SIGNALS 路径包含改为-I/opt/hisi-linux/x86-arm/arm-himix200-linux/target/usr/include 如果你像我一样configure里包含了curl库则另外需要 107修改 -INCLUDES 里修改curl包含的路径别复制这是我的路径仅供参考 INCLUDES -I/home/ouser/himix200-disk/php_nginx/php-7.2.15/ext/date/lib -I/home/ouser/himix200-disk/php_nginx/src_tmp/libxml2-2.9.10/1_libxml2-dom_install/include/libxml2 -I/home/ouser/himix200-disk/php_nginx/src_tmp/openssl-1.1.1j/1_ssl_install/include -I/home/ouser/himix200-disk/php_nginx/src_tmp/zlib-1.2.11/1_zlib_install/include -I/home/ouser/himix200-disk/php_nginx/src_tmp/curl-7.75.0/1_curl_install/include -I/home/ouser/himix200-disk/php_nginx/php-7.2.15/ext/sqlite3/libsqlite -I$(top_builddir)/TSRM -I$(top_builddir)/Zend和libtool脚本修改 # LTCC compiler flags. 88行 路径更改别复制这是我的路径仅供参考 改前LTCFLAGS-I/usr/include -g -O2 -fvisibilityhidden -DZEND_SIGNALS 改后LTCFLAGS-I/opt/hisi-linux/x86-arm/arm-himix200-linux/target/usr/include -g -O2 -fvisibilityhidden -DZEND_SIGNALS这样愉快的make了几分钟之后又报错说需要生成的某某.lo文件找不到某某.h 头文件 这个简单直接根据目标 某某.lo 在Makeflie里找到对应段增加头文件搜索路径 -I/opt/xxx/ttt 文件路径。感觉好像是因为我修改了的configure导致生成的Makefile总是有各种各样的小问题还是说官方没有做过arm-linux移植适配 2./main/php_config.h 提示说 #define uint unsigned int 重复定义 具体的图片我没有截到总之就是提醒在这个文件里#define uint unsigned int等等的定义错误搜翻译和百度才知道是说重复定义了所以把这个文件里的这类定义注销掉。 Makefile-make install阶段 提示无法执行的文件格式 可能是我在configure原文件里把函数测试的那几句话给去掉了所以导致现在install阶段它居然想去执行开发板端的文件那肯定不行啊我的文件都用交叉编译的肯定不能在桌面Ubuntu执行怎么处理呢没办法。只能手动去开发板执行这条Makeflie语句 完事了就在Makefile里注释掉对应语句—‘’我都帮你执行了你就不用帮我执行了‘’ 最后搞定php 附上一点小测试php代码这是测试php::openssl库的加密解密功能的(官网抄的) ?php //$key previously generated safely, ie: openssl_random_pseudo_bytes $plaintext message to be encrypted; $ivlen openssl_cipher_iv_length($cipherAES-128-CBC); $iv openssl_random_pseudo_bytes($ivlen); $ciphertext_raw openssl_encrypt($plaintext, $cipher, $key, $optionsOPENSSL_RAW_DATA, $iv); $hmac hash_hmac(sha256, $ciphertext_raw, $key, $as_binarytrue); $ciphertext base64_encode( $iv.$hmac.$ciphertext_raw ); echo decrypt:; echo $ciphertext.\n;//decrypt later.... $c base64_decode($ciphertext); $ivlen openssl_cipher_iv_length($cipherAES-128-CBC); $iv substr($c, 0, $ivlen); $hmac substr($c, $ivlen, $sha2len32); $ciphertext_raw substr($c, $ivlen$sha2len); $original_plaintext openssl_decrypt($ciphertext_raw, $cipher, $key, $optionsOPENSSL_RAW_DATA, $iv); $calcmac hash_hmac(sha256, $ciphertext_raw, $key, $as_binarytrue); if (hash_equals($hmac, $calcmac))//PHP 5.6 timing attack safe comparison {echo $original_plaintext.\n; } echo $original_plaintext.2\n;var_dump(php_ini_loaded_file()); //获取当前加载php.ini配置文件路径var_dump(php_ini_scanned_files()); //如果有另外在加载别的php.ini文件会输出相应的信息,否则输出falseif(!extension_loaded(curl)) {echo 请在php.ini中设置支持php_mysql.dll.\n; } else {echo 您的环境已经支持mysql.\n; } // 这句话可以打印对应拓展库所能提供的函数可以用来测试库是否移植成功 print_r(get_extension_funcs(gd)); if (function_exists(imagejpeg)) { echo IMAP functions are available.br /\n; } else { echo IMAP functions are not available.br /\n; } ?
http://www.pierceye.com/news/714008/

相关文章:

  • 家装网站建设哪家好点赣州市南康建设局网站
  • 北京建设网站制作我国外贸网站的建设
  • 自己做网站如何赚钱excel做网站
  • 芯片商城网站建设wordpress批量替换图片路径
  • 网站添加手机站软件 项目管理系统
  • 大理装饰公司做网站网站建设费用:做个网站要多少钱?
  • 简约的网站设计界面百度收录网站左侧图片
  • 对建设网站未来发展的建议教育 网站模板
  • 做篮球网站用的背景图广州黄埔做网站的公司
  • 爱客源seo怎么刷关键词排名
  • 自己做网站网页文件在哪里公司官网定制
  • 网站建设怎么样工作室哪个网站可以免费制作h5
  • 做网站学的是代码吗机器封所有端口 不支持做网站
  • 类似于美团的网站开发两学一做网站专栏怎么设置
  • 天津seo网站管理千川推广官网
  • 技术支持 光速东莞网站建设企业信息免费查询系统
  • 网站设计主流尺寸weui wordpress模板
  • 汕头市网站建设商机互联网站建设
  • 口碑好的网站建设苏州园区做网站公司
  • 网站互联网设计图风格网站服务器异常是什么意思
  • 有哪些好的做兼职网站有哪些免费做ppt的网站
  • 学生成绩管理系统网站建设上海公共招聘网12333官网
  • 邵东做网站的公司wordpress修改文章字体颜色
  • 那个网站百度收录快天河高端网站建设
  • 网站建设 客户拜访wordpress设置新页面
  • 做百度推广送的网站网站建设中gif
  • 网站风格介绍wordpress怎么给产品编号
  • 站长聚集地深圳网络提速优化服务包
  • 西安外贸网站建设公司网站域名过期后续费多长时间生效
  • 网站制作资质2017建设厅网站