美文网首页
Android pad中有关nginx,mysql,php的集成

Android pad中有关nginx,mysql,php的集成

作者: Axl_Christ | 来源:发表于2015-09-17 18:06 被阅读0次

    1. 系统要求需要在一个android pad中集成nginx,mysql,php,sshd,因为芯片方案为广州某厂提供,故他们愿意帮助我们,由他们提供集成好后的rom.

    2. 第一版rom拿到后尝试启动sshd 正常,但是nginx发生问题,找不到errors.log和access.log,于是手动创建,发现不可写,使用mount后发现/和/system为ro,于是重新挂载为可读写

    mount -o remount -o rw /(/system)

    nginx启动后测试正常,但是无法执行phpinfo,于是启动php-fpm,正常.

    3. mysql尝试启动后发现没有安装,于是mysql_install_db --user=root,然后发现不知道这样的密码,后来发现可以

    mysqladmin -u root password '1234'

    ,但是当时没有想到,于是

    mysqld_safe --user=root --skip_grant_table &

    正常.

    4. 至此一切经测试无误,接下来既是自启动问题,android启动在/init.rc中,于是vi进入在末尾添加 

    service csetup /var/setup.sh

                 class main

                 user root

                 group root

                  oneshot

    5. 这时需要编写setup.sh,按照顺序依次启动即可,但是发现每次pad重启后/和/system均挂载为ro,所以脚本中需要先remount

    #!/system/bin/sh

    mount -o remount -o rw /

    mount -o remount -o rw /system

    /bin/sshd

    /bin/php-fpm

    /bin/nginx

    mysqld_safe --user=root --skip_grant_table &

    但是此时发现mysql偶尔会不启动,于是将其拆分至另一脚本mysql-setup.sh,问题解决.

    6. 此时发现需要创建2个文件,修改3个文件,添加4个软链(/bin中),所以决定使用shell书写一个脚本去解决问题,否则批量出货后时间成本太高,所以尝试0基础书写- -!

    #!/system/bin/sh

    #重新挂载/和/system为可读写

    mount -o remount -o rw /

    mount -o remount -o rw /system

    #添加dns

    touch /etc/resole.conf

    echo 'nameserver 119.29.29.29' >> /etc/resovl.conf

    echo 'nameserver 114.114.114.114' >> /etc/resovl.conf

    chmod 644 /etc/resovl.conf

    #添加软链到/bin

    ln /share/lijin/system_sec/sbin/sshd /bin/sshd

    ln /share/lijin/system_sec/sbin/nginx /bin/nginx

    ln /share/lijin/system_sec/sbin/php-fpm /bin/php-fpm

    ln /share/lijin/system_sec/share/mysql/mysqld_safe /bin/mysqld_safe

    #初始化mysql

    /share/lijin/system_sec/share/mysql/mysql_install_db --user=root

    #创建启动脚本文件

    touch /var/setup.sh

    touch /var/mysql-setup.sh

    #改变文件权限

    chmod +x /var/setup.sh

    chmod +x /var/mysql-setup.sh

    #将内容写入启动脚本

    #setup.sh

    echo '#!/system/bin/sh' >> /var/setup.sh

    echo '#启动脚本Edit by Christ!' >> /var/setup.sh

    echo '/bin/sshd' >> /var/setup.sh

    echo '/bin/php-fpm' >> /var/setup.sh

    echo '/bin/nginx' >> /var/setup.sh

    echo '/var/mysql-setup.sh' >> /var/setup.sh

    #mysql-setup.sh

    echo '#!/system/bin/sh' >> /var/mysql-setup.sh

    echo 'mysqld_safe --user=root --skip_grant_table &' >> /var/mysql-setup.sh

    #在/init.rc中添加启动项

    echo '#nmp启动脚本Edit by Christ!' >> /init.rc

    echo 'service csetup /var/setup.sh'  >> /init.rc

    echo '\tclass main' >> /init.rc

    echo '\tuser root' >> /init.rc

    echo '\tgroup root' >> /init.rc

    echo '\toneshot' >> /init.rc

    #重启设备

    reboot

    7. 因为这样写虽然明了但是并不给用户看,于是做了简化

    #!/system/bin/sh

    #重新挂载/和/system为可读写

    mount -o remount -o rw /

    mount -o remount -o rw /system

    #添加dns

    echo 'nameserver 119.29.29.29\nnameserver 114.114.114.114' >> /etc/resovl.conf

    chmod 644 /etc/resovl.conf

    #添加软链到/bin

    ln /share/lijin/system_sec/sbin/sshd /bin/sshd

    ln /share/lijin/system_sec/sbin/nginx /bin/nginx

    ln /share/lijin/system_sec/sbin/php-fpm /bin/php-fpm

    ln /share/lijin/system_sec/share/mysql/mysqld_safe /bin/mysqld_safe

    #初始化mysql

    /share/lijin/system_sec/share/mysql/mysql_install_db --user=root

    #创建启动脚本文件 

    echo '#!/system/bin/sh\nmysqld_safe --user=root --skip_grant_table &' >> /var/mysql-setup.sh

    echo '#!/system/bin/sh\n/bin/sshd\n/bin/php-fpm\n/bin/nginx\n/var/mysql-setup.sh' >> /var/setup.sh

    #改变权限

    chmod +x /var/*.sh

    #添加启动项

    echo '#nmp启动脚本Edit by Christ!\nservice csetup /var/setup.sh\n\tclass main\n\tuser root\n\tgroup root\n\toneshot' >> /init.rc

    #重启

    reboot

    至此完成.

    相关文章

      网友评论

          本文标题:Android pad中有关nginx,mysql,php的集成

          本文链接:https://www.haomeiwen.com/subject/jyuvtttx.html