本次配置是基于安卓手机的Termux,在Termux上通过`proot-distro`安装`Ubuntu22LTS`,在`Ubuntu22LTS`中用`Apache2 Mariadb-server php....`来实现的;
因为是套娃配置,所以配置流程和在Ubuntu上配置基本一致,只是有几个小地方需要注意一下。
## 配置流程
### Termux 安装ubuntu22lts
- ```bash
- # 安装proot-ditro
- pkg install proot-distro -y
- # 查看可以用的Linux发行版
- proot-distro list
- Supported distributions (format: name < alias >):
- * Alpine Linux < alpine >
- * Arch Linux < archlinux >
- * Artix Linux < artix >
- * Chimera Linux < chimera >
- * Debian (bookworm) < debian >
- * Debian (bullseye) < debian-oldstable >
- * deepin < deepin >
- * Fedora < fedora >
- * Manjaro < manjaro >
- * OpenKylin < openkylin >
- * OpenSUSE < opensuse >
- * Pardus < pardus >
- * Ubuntu (24.04) < ubuntu >
- * Ubuntu (22.04) < ubuntu-oldlts >
- * Void Linux < void >
- Install selected one with: proot-distro install <alias>
- # 按需选择安装,这里我用到的是Ubuntu(22.04)版
- proot-distro install ubuntu-oldlts
- # 进入系统(可以把这个指令用个sh文件来执行,会方便很多,以后作后台启动也方便)
- proot-distro login ubuntu-oldlts
- ```
复制代码
后边其实和官网教程基本一致
> [Example installation on Ubuntu 22.04 LTS — Nextcloud latest Administration Manual latest documentation](https://docs.nextcloud.com/serve ... xample_ubuntu.html#)
### 安装需要的软件
你可能会用到的工具软件
- ```bash
- apt install vim wget unzip -y
- ```
复制代码
官方教程里用到的软件(这里我把`sudo`去掉了,因为本来就是root用户而且termux好像取得root有点费劲儿)
- ```bash
- apt update && apt upgrade
- apt install apache2 mariadb-server libapache2-mod-php php-gd php-mysql \
- php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip
- ```
复制代码
这里其实和官网的教程完全一致,下完一遍有error或者其他直接再来几遍就好了
但是,如何后边你跟着官网教程直接`sudo mysql`那就会说找不到mysql,其实这是因为`Mariadb-server`服务还么有启动,一开始哥们也是迷糊了好久,然后发现:
### termux的Ubuntu后台指令
- ```bash
- # 开启<name>服务
- service <your progream> start
- # 停止<name>服务
- service <your progream> stop
- # 重启<name>服务
- service <your progream> restart
- # 查看<name>服务的状态
- service <your progream> status
- ```
复制代码
这里你要先把它启动了才能正常进入MySQL
- ```bash
- service mariadb start
- ```
复制代码
### Mysql创建用户
这块在Next cloud的官网上有教程,可以按照自己需要去修改,不过localhost那个因为我自己不太会就没去改;
- ```mysql
- # 启动MySQL客户端
- root@localhost:~# mysql
- Welcome to the MariaDB monitor. Commands end with ; or \g.
- Your MariaDB connection id is 52
- Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04
- Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- # 创建一个名为'username'的用户,该用户只能从'localhost'访问数据库,并设置密码为'password'
- MariaDB [(none)]> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
- Query OK, 0 rows affected (0.002 sec)
- # 创建一个名为'nextcloud2'的数据库,如果不存在,使用'utf8mb4'字符集和'utf8mb4_general_ci'排序规则
- MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS nextcloud2 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- Query OK, 1 row affected (0.002 sec)
- # 授予用户'username'在'nextcloud2'数据库上的所有权限
- MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud2.* TO 'username'@'localhost';
- Query OK, 0 rows affected (0.002 sec)
- # 刷新权限,使更改生效
- MariaDB [(none)]> FLUSH PRIVILEGES;
- Query OK, 0 rows affected (0.002 sec)
- # 退出MySQL
- MariaDB [(none)]> \q
- Bye
- ```
复制代码
Mysql使用方法
- ```mysql
- # 登录 MySQL
- # 登录指定name的账户,<CR>后输入密码
- mysql -u name -p
- # 登录默认账户root
- mysql
- # 查看正在运行的数据库
- SHOW DATABASES;
- # 查看特定数据库的信息
- USE 数据库名;
- SHOW TABLES;
- # 确认当前使用的数据库
- SELECT DATABASE();
- # 查看正在使用的端口
- SHOW VARIABLES LIKE 'port';
- # 这个端口在`/etc/mysql/`下的 `my.cnf`中,默认是3306,可以改
- # 改完之后重启运行就行
- # 刷新MySQL权限相关的表
- flush privileges;
- # 查看所有数据库用户要查看所有数据库用户,可以查询`mysql`数据库中的`user`表。
- # 首先切换到`mysql`数据库:
- USE mysql;
- # 然后执行以下查询:
- SELECT User, Host FROM user;
- # 要查看用户`user`在数据库`nextcloud`上的权限
- SHOW GRANTS FOR 'user'@'localhost' ON `nextcloud`.*;
- # 查询特定用户在特定主机上的权限
- SHOW GRANTS FOR 'AIPING'@'localhost:7777';
- # 更改指定用户的密码为
- ALTER USER 'AIPING'@'localhost' IDENTIFIED BY 'new_password';
- FLUSH PRIVILEGES;
- ```
复制代码
### 获取Next cloud
可以从这里找[Index of / (nextcloud.com)](https://download.nextcloud.com/)需要的版本
如果是Linux服务端可以从这里找[Index of /server/releases (nextcloud.com)](https://download.nextcloud.com/server/releases/)
- ```bash
- # 目前我用到的最新版是30.0.0
- wget https://download.nextcloud.com/server/releases/nextcloud-30.0.0.zip
- # 可以先解压再cp到指定位置
- unzip nextcloud-30.0.0.zip
- # 会得到一个nextcloud文件夹,就是将这个文件夹cp到/var/wwww/目录下
- cp -r nextcloud /var/wwww/
- # 然后将 Nextcloud 目录的所有权更改为 HTTP 用户
- # 但是其实哥们好像没有执行这个操作,目前倒是没遇到什么问题
- sudo chown -R www-data:www-data /var/www/nextcloud
- ```
复制代码
### 配置Apache2
开启Apache2服务
- ```bash
- service apache2 start
- ```
复制代码
这个时候应该可以在内网环境的http服务上看到apache2的默认配置界面了
- ```bash
- root@localhost:~# ifconfig
- Warning: cannot open /proc/net/dev (Permission denied). Limited output.
- lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
- inet 127.0.0.1 netmask 255.0.0.0
- unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
- rmnet_data2: flags=65<UP,RUNNING> mtu 1460
- inet 这段个人ip哥们就暂时不展示了嗷 netmask 255.255.255.248
- unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
- rndis0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 192.168.143.215 netmask 255.255.255.0 broadcast 192.168.143.255
- unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
- # 这里这个192.168.143.215就是设备在内网的IP了,将他输入到浏览器应该就可以看到默认界面了
- http://192.168.143.215
- ```
复制代码
创建配置文件
到`/etc/apache2/sites-available/`目录下,创建一个nextcloud.conf文件
- ```bash
- cd /etc/apache2/sites-available/
- vim nextcloud.conf
- ```
复制代码
参考大佬的教程[ubuntu 22.04安装部署nextcloud最新版-笔记_netiii](https://www.netiii.com/4102/)
将下列内容复制进去
- ```bash
- <VirtualHost *:8080> # 这里我另一个机器用80端口会报错,所以就改成8080了
- DocumentRoot /var/www/nextcloud/
- ServerName 192.168.143.215 #修改自己的服务器IP或者域名
- <Directory /var/www/nextcloud/>
- Require all granted
- AllowOverride All
- Options FollowSymLinks MultiViews
- <IfModule mod_dav.c>
- Dav off
- </IfModule>
- </Directory>
- </VirtualHost>
- ```
复制代码
跟着教程走一遍,注意我们这是在termux中,和正常的Linux系统略有不同
- ```bash
- a2ensite nextcloud.conf
- reload apache2
- a2enmod rewrite headers env dir mime
- service apache2 restart
- # 如果有什么报错,我没管它,没看到有什么明显的影响
- ```
复制代码
然后就可以访问(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) |