Termux 上配置 Next Cloud

宅鱼吧 10天前 13

本次配置是基于安卓手机的Termux,在Termux上通过`proot-distro`安装`Ubuntu22LTS`,在`Ubuntu22LTS`中用`Apache2 Mariadb-server php....`来实现的;
因为是套娃配置,所以配置流程和在Ubuntu上配置基本一致,只是有几个小地方需要注意一下。
## 配置流程
### Termux 安装ubuntu22lts
  1. ```bash
  2. # 安装proot-ditro
  3. pkg install proot-distro -y

  4. # 查看可以用的Linux发行版
  5. proot-distro list

  6. Supported distributions (format: name < alias >):

  7.   * Alpine Linux < alpine >
  8.   * Arch Linux < archlinux >
  9.   * Artix Linux < artix >
  10.   * Chimera Linux < chimera >
  11.   * Debian (bookworm) < debian >
  12.   * Debian (bullseye) < debian-oldstable >
  13.   * deepin < deepin >
  14.   * Fedora < fedora >
  15.   * Manjaro < manjaro >
  16.   * OpenKylin < openkylin >
  17.   * OpenSUSE < opensuse >
  18.   * Pardus < pardus >
  19.   * Ubuntu (24.04) < ubuntu >
  20.   * Ubuntu (22.04) < ubuntu-oldlts >
  21.   * Void Linux < void >

  22. Install selected one with: proot-distro install <alias>

  23. # 按需选择安装,这里我用到的是Ubuntu(22.04)版
  24. proot-distro install ubuntu-oldlts

  25. # 进入系统(可以把这个指令用个sh文件来执行,会方便很多,以后作后台启动也方便)
  26. proot-distro login ubuntu-oldlts
  27. ```

后边其实和官网教程基本一致
> [Example installation on Ubuntu 22.04 LTS — Nextcloud latest Administration Manual latest documentation](https://docs.nextcloud.com/serve ... xample_ubuntu.html#)
### 安装需要的软件
你可能会用到的工具软件
  1. ```bash
  2. apt install vim wget unzip -y
  3. ```

官方教程里用到的软件(这里我把`sudo`去掉了,因为本来就是root用户而且termux好像取得root有点费劲儿)
  1. ```bash
  2. apt update && apt upgrade
  3. apt install apache2 mariadb-server libapache2-mod-php php-gd php-mysql \
  4. php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip
  5. ```

这里其实和官网的教程完全一致,下完一遍有error或者其他直接再来几遍就好了  
但是,如何后边你跟着官网教程直接`sudo mysql`那就会说找不到mysql,其实这是因为`Mariadb-server`服务还么有启动,一开始哥们也是迷糊了好久,然后发现:
### termux的Ubuntu后台指令
  1. ```bash
  2. # 开启<name>服务
  3. service <your progream> start

  4. # 停止<name>服务
  5. service <your progream> stop

  6. # 重启<name>服务
  7. service <your progream> restart

  8. # 查看<name>服务的状态
  9. service <your progream> status
  10. ```

这里你要先把它启动了才能正常进入MySQL
  1. ```bash
  2. service mariadb start
  3. ```

### Mysql创建用户
这块在Next cloud的官网上有教程,可以按照自己需要去修改,不过localhost那个因为我自己不太会就没去改;
  1. ```mysql
  2. # 启动MySQL客户端
  3. root@localhost:~# mysql
  4. Welcome to the MariaDB monitor.  Commands end with ; or \g.
  5. Your MariaDB connection id is 52
  6. Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04

  7. Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

  8. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

  9. # 创建一个名为'username'的用户,该用户只能从'localhost'访问数据库,并设置密码为'password'

  10. MariaDB [(none)]> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
  11. Query OK, 0 rows affected (0.002 sec)

  12. # 创建一个名为'nextcloud2'的数据库,如果不存在,使用'utf8mb4'字符集和'utf8mb4_general_ci'排序规则

  13. MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS nextcloud2 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  14. Query OK, 1 row affected (0.002 sec)

  15. # 授予用户'username'在'nextcloud2'数据库上的所有权限

  16. MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud2.* TO 'username'@'localhost';
  17. Query OK, 0 rows affected (0.002 sec)

  18. # 刷新权限,使更改生效

  19. MariaDB [(none)]> FLUSH PRIVILEGES;
  20. Query OK, 0 rows affected (0.002 sec)

  21. # 退出MySQL

  22. MariaDB [(none)]> \q
  23. Bye
  24. ```

Mysql使用方法
  1. ```mysql
  2. # 登录 MySQL
  3. # 登录指定name的账户,<CR>后输入密码
  4. mysql -u name -p
  5. # 登录默认账户root
  6. mysql

  7. # 查看正在运行的数据库
  8. SHOW DATABASES;
  9. # 查看特定数据库的信息
  10. USE 数据库名;
  11. SHOW TABLES;

  12. # 确认当前使用的数据库
  13. SELECT DATABASE();

  14. # 查看正在使用的端口
  15. SHOW VARIABLES LIKE 'port';
  16. # 这个端口在`/etc/mysql/`下的 `my.cnf`中,默认是3306,可以改
  17. # 改完之后重启运行就行

  18. # 刷新MySQL权限相关的表
  19. flush privileges;

  20. # 查看所有数据库用户要查看所有数据库用户,可以查询`mysql`数据库中的`user`表。
  21. # 首先切换到`mysql`数据库:
  22. USE mysql;
  23. # 然后执行以下查询:
  24. SELECT User, Host FROM user;

  25. # 要查看用户`user`在数据库`nextcloud`上的权限
  26. SHOW GRANTS FOR 'user'@'localhost' ON `nextcloud`.*;

  27. # 查询特定用户在特定主机上的权限
  28. SHOW GRANTS FOR 'AIPING'@'localhost:7777';

  29. # 更改指定用户的密码为
  30. ALTER USER 'AIPING'@'localhost' IDENTIFIED BY 'new_password';
  31. FLUSH PRIVILEGES;


  32. ```

### 获取Next cloud
可以从这里找[Index of / (nextcloud.com)](https://download.nextcloud.com/)需要的版本  
如果是Linux服务端可以从这里找[Index of /server/releases (nextcloud.com)](https://download.nextcloud.com/server/releases/)
  1. ```bash
  2. # 目前我用到的最新版是30.0.0
  3. wget https://download.nextcloud.com/server/releases/nextcloud-30.0.0.zip

  4. # 可以先解压再cp到指定位置
  5. unzip nextcloud-30.0.0.zip

  6. # 会得到一个nextcloud文件夹,就是将这个文件夹cp到/var/wwww/目录下
  7. cp -r nextcloud /var/wwww/

  8. # 然后将 Nextcloud 目录的所有权更改为 HTTP 用户
  9. # 但是其实哥们好像没有执行这个操作,目前倒是没遇到什么问题
  10. sudo chown -R www-data:www-data /var/www/nextcloud
  11. ```

### 配置Apache2
开启Apache2服务
  1. ```bash
  2. service apache2 start
  3. ```

这个时候应该可以在内网环境的http服务上看到apache2的默认配置界面了
  1. ```bash
  2. root@localhost:~# ifconfig
  3. Warning: cannot open /proc/net/dev (Permission denied). Limited output.
  4. lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
  5.         inet 127.0.0.1  netmask 255.0.0.0
  6.         unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

  7. rmnet_data2: flags=65<UP,RUNNING>  mtu 1460
  8.         inet 这段个人ip哥们就暂时不展示了嗷  netmask 255.255.255.248
  9.         unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

  10. rndis0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  11.         inet 192.168.143.215  netmask 255.255.255.0  broadcast 192.168.143.255
  12.         unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)

  13. # 这里这个192.168.143.215就是设备在内网的IP了,将他输入到浏览器应该就可以看到默认界面了

  14. http://192.168.143.215

  15. ```

创建配置文件
到`/etc/apache2/sites-available/`目录下,创建一个nextcloud.conf文件
  1. ```bash
  2. cd /etc/apache2/sites-available/

  3. vim nextcloud.conf
  4. ```

参考大佬的教程[ubuntu 22.04安装部署nextcloud最新版-笔记_netiii](https://www.netiii.com/4102/)  
将下列内容复制进去
  1. ```bash
  2. <VirtualHost *:8080> # 这里我另一个机器用80端口会报错,所以就改成8080了
  3.   DocumentRoot /var/www/nextcloud/
  4.   ServerName  192.168.143.215   #修改自己的服务器IP或者域名

  5.   <Directory /var/www/nextcloud/>
  6.     Require all granted
  7.     AllowOverride All
  8.     Options FollowSymLinks MultiViews

  9.     <IfModule mod_dav.c>
  10.       Dav off
  11.     </IfModule>
  12.   </Directory>
  13. </VirtualHost>
  14. ```

跟着教程走一遍,注意我们这是在termux中,和正常的Linux系统略有不同
  1. ```bash
  2. a2ensite nextcloud.conf

  3. reload apache2

  4. a2enmod rewrite headers env dir mime


  5. service apache2 restart

  6. # 如果有什么报错,我没管它,没看到有什么明显的影响
  7. ```

然后就可以访问(http://yourip:yourport)设定管理员账户和密码,配置MySQL数据库接口
这里IP就是`ifconfig`返回的那个内网地址;
port就是在nextcloud.conf中配置的接口;
我的配置是http://192.168.143.215:8080
MySQL用户名是`username`
数据库名是`nextcloud2`
数据库密钥是`password`
数据库地址就是默认的`localhost`
## 参考目录
> [Example installation on Ubuntu 22.04 LTS — Nextcloud latest Administration Manual latest documentation](https://docs.nextcloud.com/serve ... xample_ubuntu.html#)
> [ubuntu 22.04安装部署nextcloud最新版-笔记_netiii](https://www.netiii.com/4102/)
> [Nextcloud修改 trusted domains 指定哪些主机可访问_nextcloud trust-CSDN博客](https://blog.csdn.net/qq_43341057/article/details/123635883)
> [讯飞星火大模型-AI大语言模型-星火大模型-科大讯飞 (xfyun.cn)](https://xinghuo.xfyun.cn/spark)
> [Termux 高级终端安装使用配置教程 | 国光 (sqlsec.com)](https://www.sqlsec.com/2018/05/termux.html)
这家伙太懒了,什么也没留下。

最新回复 (0)