200块钱3小时上门二维码-400元3小时快餐,约附近学生50一次,51品茶快约

行业动态

全网最全的保姆级教程:在苹果旧手机上安装Linux系统,秒变服务器

作者:admin 日期:2023-09-12 浏览:

全网最全的保姆级教程:在苹果旧手机上安装Linux系统,秒变服务器

如果我告诉你在苹果旧手机上运行一个linux系统,听起来是不是非常的匪夷所思,但是真相是确实可以,而且还能让你的苹果旧手机秒变服务器。



我是阿灏,前面给大家分享过如何利用一个闲置的安卓旧手机来打造成一个便利的云服务器???

| 旧手机这样玩,你家就是云服务中心
| 手机上如何部署一个博客站
| 用旧手机打造一个免费云盘存储空间,你不是最后一个知道的



今天给大家要带来的是如何利用闲置的苹果旧手机打造一个博客服务
内容非常干,需要花费一定的时间阅读
来吧,我们开始!!!

我们的博客服务还是选择DjangoBlog这个项目,简单但不失通用性:


博客项目地址
https://gitee.com/lylinux/DjangoBlog



先来讲讲思路,所谓思路正确等于成功了一半,跟之前安卓手机上部署一个博客服务大同小异:手机上如何部署一个博客站

思路:
1. 下载苹果手机上的终端命令行软件 
2. 安装基础环境和python环境
3. 运行/访问博客服务
根据上面的思路,我整理了具体的步骤以及在整个过程中遇到的坑,希望可以给你一些参考,让你少走一些弯路:

1. 下载苹果手机上的终端命令行软件 


通过调研发现,在苹果手机上比较主流的支持终端命令行操作的软件有下面几款:

可在对比软件的实施可行性、易操作性方面后,最终还是选择了iSH这款软件,在官方appstore直接下载即可。



安装后,打开iSH Shell,我们就直接来到了命令行终端界面:


我们可以看到这是一个叫Alpine的系统,Alpine是一个linux系统的发行版,跟大多数系统像ubuntu、centos等一样,都支持最基本的linux命令;


到这里,我们就完成了第一步,我们相当于给苹果手机安装上了一个linux系统模拟器;


2. 安装基础环境和python环境


就在我准备安装python环境去试图部署一个博客服务的时候,问题如洪水猛兽向我袭来;在iSH Shell上安装Python环境没有Termux上安装那么顺心,因为遇到了很多问题,如网络连接、软件下载、编译等等。

  • 问题1 —— 软件安装源问题
    因为alpine系统默认的安装源下载速度非常慢,因此我换成了aliyun下载源

    打开/etc/apk/repositories目录, 修改镜像源为:
    http://mirrors.aliyun.com/alpine/v3.16/main


    如下图所示:

    镜像源更换完毕后,下载更新速度明显提升



  • 问题2 —— 手机操作不方便的问题
    iSH Shell的终端命令行,没有命令记录功能,也没有命令提示功能,操起气来相当受阻,浪费时间。因此最方便的就是通过电脑远程连接手机终端来解决,于是准备手机上安装sshd服务,安装sshd服务,只需要安装openssh库即可:

    # 安装opensshapk add openssh
    # 生成公私钥,一路回车即可ssh-keygen -A
    # 修改内容,允许root用户远程登陆vim /etc/ssh/sshd_config


    # 启动sshd服务/usr/sbin/sshd
    # 在电脑上远程登录到你的手机ssh root@你的苹果手机ip


    接下来我们就可以在电脑上远程操作我们的苹果手机了??



  • 问题3 —— 安装Python环境不成功

    最后我们迎来了一个非常致命的问题,也就是安装python环境,大家都知道运行一个python的服务,两个包是必不可少的,一个是python环境包,一个是pip安装服务包。

             

    我们通过apk add python3 来成功安装了python环境包;


    但是当安装pip服务的时候,每次都会安装到一半甚至快要完成的时候,服务却卡住了,真是非常头疼。




    这时候脑袋里萌生了一个令我自己都不敢相信的念头??????


    难道就不能在电脑上把python服务编译成一个大的文件,然后移植到手机上来用吗?




    看过我之前云盘部署视频(用旧手机打造一个免费云盘存储空间,你不是最后一个知道的)的小伙伴可能都知道,当时我们就是把前端??榉旁诘缒陨媳嘁氲?,编译成功后移植到了手机上成功跑起来,没错,所以接下来我要做的就是把python程序在电脑上编译,编译成功后再移植到手机上运行。


果然,黄天不负有心人
???让我找到了一个神奇的工具???
Pyinstaller

PyInstaller 是一个用来将 Python 程序打包成一个独立可执行软件包,支持 Windows、Linux 和 Mac OS X 平台。


东台数据恢复


于是,我们成功把问题转化为:

如何将Python程序打包成一个在苹果手机上可以独立运行的可执行文件????

看到这里如果还有点懵的小伙伴,我来稍微解释一下,因为在编写和运行python程序的过程中,是依赖一系列的python依赖库的,而python的底层又是C语言写的,所以势必会依赖大量的C动态链接库的支持,而Pyinstaller工具支持的就是将python程序以及python程序的依赖库进行打包,打成一个独立的可执行文件,那么就可以直接移植到其他平台去运行了。

           


而我们要把python程序打包成一个iSH这款软件上独立运行的程序,而iSH模拟的是Alpine这款linux系统,那么就一定要求两边的操作系统是一致的,于是我们就要在电脑上安装一个跟iSH一样的alpine系统,然后在这个系统里对python程序进行编译打包,最后将打包好的程序移植到手机上即可。

有了这样的想法,我们就先来安装这样一个系统,最方便的应该是用虚拟机来跑这样一个系统,关于虚拟机,推荐用下面两款中的一个即可:

    

我已经用虚拟机搭建好了整套环境
如果嫌麻烦的,也可以直接下载我的虚拟机环境,直接玩起来即可
下载链接如下:
https://pan.baidu.com/s/118lLR4ew86eeJkWxZF7x2g?pwd=7k56


安装好虚拟机后,我们需要用虚拟机来安装Alpine 这个系统,我们在这里下载Alpine系统镜像即可:

# alpine镜像下载地址https://www.alpinelinux.org/downloads/




不出意外,大家下载的iSH Shell中Alpine系统都是x86 32位系统,所以我们只要下载上图中的系统就行。

下载完成后,打开我们的虚拟机软件来载入Alpine系统镜像,用虚拟机来安装操作系统会非常的快,经过如下几个步骤,即可完成系统镜像的载入,并启动系统;





然后一路点击,直到启动虚拟机(默认登陆用户:root)


这里不得不提下,安装完虚拟机后,不要急着启动,我们可以先进入设置界面,将你的磁盘空间加大,这样就不会遇到后面磁盘空间不够的烦心事了:



设置完磁盘空间后,可以启动alpine系统了,如果你的系统已经打开,那么只能先关闭,设置完磁盘空间后,再重新打开。
(默认登陆用户:root)

根据上图中的提示,我们可以用setup-alpine命令来对系统进行初始化,我们一路回车即可(除了用户名密码设置):



系统基本环境和网络环境都已经初始化好了。

然后我们来用setup-disk命令初始化磁盘,这一步的主要目的是为了防止重启虚拟机后安装的软件包消失,做了无用功:


磁盘初始化完成后,用reboot命令来重启虚拟机即可。

完成所有初始化的设置后,我们还是像之前在苹果手机上设置一样,替换默认的安装源为aliyun安装源,然后再来安装一些系统软件:

apk updateapk add vimapk add gcc g++ binutils makeapk add zlib zlib-devapk add gitapk add python3-devapk add libffiapk add libffi-devapk add build-essentialapk add mysql-devapk add libmysqlclientapk add libmysqlclient-devapk add libmariadbclient-devapk add jpegapk add jpeg-devapk add openssl-devapk add opensslapk add libssl libssl-devapk add bzip2-devapk add zlib1g-devapk add libz-devapk add libc-devapk add readline-devapk add ncurses-devapk add sqlite-devapk add tk-devapk add gdbm-devapk add db4-devapk add libcap-devapk add xz-dev


安装完基础系统软件后,开始来安装python环境以及pip服务包,看过我们前几期手机打造云服务器视频(
手机上如何部署一个博客站)的小伙伴肯定知道,我们要部署的这个博客服务是使用python3.9版本跑成功的,所以我们直接安装python3.9的服务,系统默认的是python3.10 ,所以我们可以通过源码编译的方式来安装即可:

# 下载python3.9源码包wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
# 解压tar xzf Python-3.9.6.tgz  # 编译安装cd Python-3.9.6 https://mp.weixin.qq.com/configure --enable-optimizations --enable-sharedmake altinstall 
# 检查python是否安装成功python3.9 -V
# 检查pip是否安装成功pip3.9 -V# 如果pip没有安装成功,可以按照下面的教程来安装piphttps://pip.pypa.io/en/stable/installation/


python和pip安装完成后,就可以按照开源博客项目的部署教程来即可:

https://gitee.com/lylinux/DjangoBlog

这里不得不再提一个你可能会遇到的坑,在运行下面这句命令的时候,可能会遇到一个错误:磁盘没有足够的空间???

pip3.9 install -Ur requirements.txt


可以通过加上前缀来解决:

TMPDIR=/ pip3.9 install -Ur requirements.txt



3. 运行访问博客服务


项目部署运行成功后,我们就来开始最关键的一步了,用pyinstaller工具打包Python项目。

首先来安装pyinstaller工具:

# 安装pyinstaller工具pip3.9 install pyinstaller 
# 检查是否安装成功pyinstaller -v


然后我们用pyinstaller工具打包我们的python项目
这里提供了一份打包的配置文件,可以按需拿取

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

a = Analysis( ['manage.py'], pathex=[], binaries=[], datas=[], hiddenimports=['haystack.urls','haystack.routers','djangoblog.whoosh_cn_backend','tzdata','compressor','rcssmin','rjsmin'], hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False,)pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE( pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='manage', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir=None, console=True, disable_windowed_traceback=False, argv_emulation=False, target_arch=None, codesign_identity=None, entitlements_file=None,)
大厂数据恢复


将上面的这份配置文件保存在开源博客项目的根目录,命名为manage.spec,如下图所示:

然后开始指定这个配置文件进行打包

pyinstaller manage.spec


打包完成后,可以看到在dist目录下,生成了一个单独的可执行文件,大概60M左右:


然后复制下面的代码保存成hook-jieba.py文件,并移动到Pyinstall安装目录下的hooks目录(这里可以根据自己机器上的环境来移动文件即可)

from PyInstaller.utils.hooks import collect_data_filesdatas = collect_data_files("jieba")
# 移动文件至Pyinstaller的hooks目录下# 根据自己机器上的hooks目录移动即可cp hook-jieba.py /usr/local/lib/python3.9/site-packages/PyInstaller/hooks


然后运行我们刚打包好的dist目录下的这个大文件

TMPDIR=/ https://mp.weixin.qq.com/manage runserver --noreload 0.0.0.0:8000


项目启动成功后,就可以访问我们虚拟机中的博客服务了, 然而这并非是终点:


通过分析上面的报错页面,是由于找不到静态资源,如html、css、js这样的文件而导致页面访问失败,于是通过测试,把静态文件移动到相关的目录下,并再次刷新页面,就能访问成功了;


移动静态资源到相关目录


离大功告成还有最后一步

虚拟机中访问博客服务已经成功了,接下来我们只需要把这些相关文件全部上传到手机上相应目录即可:


这样,在手机上就能成功跑起来这个博客项目了。

Wow ?。?!是不是很酷

PS:
我已经用虚拟机搭建好了整套环境
如果嫌麻烦的,也可以直接下载我的虚拟机环境,直接玩起来即可
下载链接如下:
https://pan.baidu.com/s/118lLR4ew86eeJkWxZF7x2g?pwd=7k56



???欢迎有兴趣的小伙伴一起交流讨论???

  电话咨询