arm linux 移植 PHP
背景:
PHP 是世界上最好的语言。
host平台 :Ubuntu 16.04
arm平台 : 3531d
arm-gcc :4.9.4
主机准备:
使用以下脚本
##
# Copyright By Schips, All Rights Reserved
# https://gitee.com/schips/
# File Name: make.sh
# Created : Fri 22 Nov 2019 10:38:53 AM CST
##
#!/bin/sh
HOST=arm-linux
PHP=php-7.1.30
ZLIB=zlib-1.2.11
XML2=libxml2-2.9.9
ICONV=libiconv-1.15
FIN_INSTALL=/usr/${PHP}
BASE=`pwd`
OUTPUT_PATH=${BASE}/install
ARM_GCC=${HOST}-gcc
make_dirs () {
cd ${BASE}
mkdir compressed install source -p
}
tget () { #try wget
filename=`basename $1`
echo "Downloading [${filename}]..."
if [ ! -f ${filename} ];then
wget $1
fi
echo "[OK] Downloaded [${filename}] "
}
download_package () {
cd ${BASE}/compressed
tget http://mirrors.sohu.com/php/${PHP}.tar.gz
tget https://www.zlib.net/${ZLIB}.tar.gz
tget http://distfiles.macports.org/libxml2/${XML2}.tar.gz
tget http://ftp.gnu.org/pub/gnu/libiconv/${ICONV}.tar.gz
}
tar_package () {
cd ${BASE}/compressed
ls * > /tmp/list.txt
for TAR in `cat /tmp/list.txt`
do
tar -xf $TAR -C ../source
done
rm -rf /tmp/list.txt
}
make_zlib () {
cd ${BASE}/source/${ZLIB}
CC=${ARM_GCC} ./configure --prefix=${OUTPUT_PATH}/${ZLIB} && make && make install
}
make_xml2 () {
cd ${BASE}/source/${XML2}
./configure \
--without-zlib \
--without-lzma \
--without-python \
--prefix=${OUTPUT_PATH}/${XML2} \
--host=${HOST} && make && make install
}
make_iconv () {
cd ${BASE}/source/${ICONV}
./configure --host=${HOST} \
--prefix=${OUTPUT_PATH}/${ICONV} && make && make install
}
configure_php () {
cd ${BASE}/source/${PHP}
./configure \
--prefix=${FIN_INSTALL} \
--host=${HOST} \
--libdir=/tmp \
--datadir=/tmp \
--includedir=/tmp \
--oldincludedir=/tmp \
--datarootdir=/tmp \
--sharedstatedir=/tmp \
--libexecdir=${FIN_INSTALL}/libexec \
--with-config-file-path=${FIN_INSTALL}/etc \
--localstatedir=${FIN_INSTALL}/var \
--bindir=${FIN_INSTALL}/bin \
--sbindir=${FIN_INSTALL}/sbin \
--sysconfdir=${FIN_INSTALL}/etc \
--runstatedir=${FIN_INSTALL}/var/run \
--with-config-file-scan-dir=${FIN_INSTALL}/etc/php-fpm.d \
--disable-all \
--disable-phpdbg \
--enable-cgi \
--enable-json \
--enable-posix \
--enable-pcntl \
--enable-session \
--enable-fpm \
--enable-libxml \
--enable-dom \
--enable-hash \
--with-sqlite3 \
--enable-zip \
--enable-ctype \
--enable-simplexml \
--with-zlib=${OUTPUT_PATH}/${ZLIB} \
--with-libxml-dir=${OUTPUT_PATH}/${XML2} \
--with-iconv-dir=${OUTPUT_PATH}/${ICONV} \
--enable-xml \
--enable-mbstring \
--enable-xmlreader && echo "${FIN_INSTALL} with ${HOST}" > readme
}
make_php () {
cd ${BASE}/source/${PHP}
make -j4 && sudo make install && sudo mv readme ${FIN_INSTALL}/readme
sudo mv ${FIN_INSTALL} ${OUTPUT_PATH}/${PHP}
cd ${BASE}/install/${PHP}/ && sudo rm lib php -rf
cd ${BASE}
}
make_dirs
sudo ls
#download_package
tar_package
make_zlib
make_xml2
make_iconv
configure_php
make_php
自此,编译完成
arm板准备
将php依赖的动态库zlib,libxml2 ,libiconv移动到开发板中(注意软连接的保持)。
测试(在arm板子上)
进入php/bin
./php -i
此后,可以进行与nginx搭配等配置(略)
附录:优化体积的可选步骤
strip处理:
${HOST}-strip php
UPX处理:
upx php
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2013
UPX 3.91 Markus Oberhumer, Laszlo Molnar & John Reiser Sep 30th 2013
File size Ratio Format Name
-------------------- ------ ----------- -----------
3679836 -> 1357148 36.88% linux/armel php
Packed 1 file.
arm linux 移植 PHP的更多相关文章
- arm linux 移植 x265
背景 本来想着把 x265编译到ffmpeg里面,搞定了x265的编译:但是一直报ERROR: x265 not found using pkg-config这个错误,我按照网上的资料,查看了ffbu ...
- Linux 安装 go 以及 arm linux 移植 go
背景 Go是一门全新的静态类型开发语言,具有自动垃圾回收,丰富的内置类型,函数多返回值,错误处理,匿名函数,并发编程,反射等特性. 从Go1.4之后Go语言的编译器完全由Go语言编写,所以为了从源代码 ...
- arm linux 移植 MQTT (paho、mosquitto)
前言 我们在这里做2件事情: 1)编译 paho.mqtt.mosquitto 2个开源项目的c版本库(mosquitto库没有用上) 2)编译好 依赖 paho.mqtt的库编写例程 + mosqu ...
- arm linux 移植 ffmpeg 库 + x264
背景 Ffmpeg 中带有h264的解码,没有编码,需要添加x264.libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264. ...
- arm linux 移植支持 HP打印机
背景 由于业务需要,需要hi3531d主板上加入对于HP打印机的支持. 通过与产品经理,技术主管的沟通:通用支持是不现实的,只要求彩色打印,先不考虑打印机的价格,只要支持一款打印机即可. 注意: Li ...
- arm linux 移植 gdb/gdbserver
背景 调试工具gdb的使用对于嵌入式Linux开发人员来说是一项不可少的技能. 目前,嵌入式 Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:用ROM Monitor调试目标机 ...
- arm linux 移植 udhcp 与 使用
背景 在一些网络环境下,需要静态IP不够现实,需要使用DHCP进行自动获取IP地址. udhcpc是一个面向嵌入式系统的非常小的DHCP客户端,字母的缩写微μ- DHCP -客户端client(μDH ...
- arm linux 移植 rsync
背景: 在产品开发中可以使用rsync进行大文件的拷贝,断点续传. host平台 :Ubuntu 16.04 arm平台 : 3531d rsync :3.1.3 arm-gcc :4.9.4 ...
- arm linux 移植 jpeg
背景: host平台 :Ubuntu 16.04 arm平台 : S5P6818 jpeg :v9c arm-gcc :4.8.1 主机准备: 运行以下脚本: ## # Copyright By Sc ...
随机推荐
- 【SSM 验证码】登录验证码
LoginController /** * 登陆方法 */ @ResponseBody @RequestMapping("login2") public Map<String ...
- 静态成员、final成员、面向对象接口
静态成员 静态属性定义时在访问控制关键字后面加static 在类定义中使用静态成员的时候,用self关键字后面跟着::操作符,在访问静态成员的时候::后面需要跟$符号 在类定义外部访问静态属性,用类名 ...
- jxl读取设置过数据有效性的xls文件报错
//在用jxl读入excel时,一直报如下错误: Warning: Cannot read drop down range Unrecognized token 43 Exception in thr ...
- #P4770 [NOI2018]你的名字 的题解
题目背景 实力强大的小A 被选为了ION2018 的出题人,现在他需要解决题目的命名问题. 题目描述 小A 被选为了ION2018 的出题人,他精心准备了一道质量十分高的题目,且已经把除了题目命名以外 ...
- 创业复盘实战营总结----HHR计划----创业课
一句话总结课程核心点. 一共4节在线课: 第一节课:<创业学习> 投资人最看重的是CEO的快速学习能力,根据IPO思维模型,如果一共CEO每天input大量的信息,高效的process,而 ...
- Java中短路
当使用逻辑运算符时,我们会遇到一种“短路”的现象.即一旦能够准确无误的确定整个表达式的值,就不再计算表达式余下的部分了.因此整个表达式靠后的部分有可能不被运算 /**短路 * @param args ...
- hbase单机版安装
hbase单机版安装 1. hbase单机版安装 HBase的安装也有三种模式:单机模式.伪分布模式和完全分布式模式. hbase依赖于Hadoop和Zookeeper. 这里安装的是单机版 ...
- org.apache.commons.logging.LogFactory 错误原因
上述问题的原因是因为在使用Spring框架时没有导入这个包导致的,导入这个包就ok了.
- Codeforces1307D. Cow and Fields
对于本题,最短路,考虑bfs,那么我们可以跑2次bfs,求出每个点到1与n的最短路,设为x_a, x_b,那我们可以把问题转换成max(min{x_a+y_b,x_b+y_a}+1)(x,y属于1到n ...
- CDQ分治-陌上花开(附典型错误及原因)
CDQ分治-陌上花开 题目大意 对于给遗传给定的序列: \[ (x,y,z)_1, (x,y,z)_2, (x,y,z)_3, \cdots, (x,y,z)_n \] 求: \[ \sum_{x_i ...