准备

  1. 硬件:

    • 树莓派4B
    • 机械硬盘
  2. 软件:

    • Nginx
    • PHP
    • MySql
    • nextcloud

选用树莓派是由于手头上刚好有一块树莓派,为了不让他吃灰;实际上可以选择旧电脑,或者云服务器。

软件安装

安装nginx

1
$sudo apt install nginx -y

安装完成后在浏览器中输入树莓派的IP地址,可以看到如下界面

image-20220219132349742

安装PHP7.4

目前最新的PHP版本好像是7.4版本,也可以选择其他版本,将php7.4后面的7.4改成对应的版本哈就可以安装其他版本的PHP

1
sudo apt install php7.4  php7.4-fpm php7.4-cli php7.4-curl php7.4-gd php7.4-cgi php7.4-xml php7.4-dom php7.4-zip php7.4-intl php7.4-mbstring php7.4-mysql -y

安装并配置MySql

1
2
$sudo apt install mariadb-server
$sudo mysql_secure_installation

此时系统会询问你:Enter current password for root (enter for none): ,按回车(enter)键,因为第一次登陆是没有密码的。

然后会询问你: Set root password? —— 按 y ,进行root帐号的密码设置

此时,会提示 New password ,在此输入你的MySQL密码,请牢记这个密码,输入完成按回车,会提示re-enter new password此时再重复输入密码,回车即可。

然后,询问你 Remove anonymous users ,按 y 。

然后,询问你 Disallow root login remotely ,按 y 。

然后,询问你 Remove test database and access to it ,按 y 。

然后,询问你 Reload privilege tables now ,按 y 。

最后,您将看到消息 All done!Thanks for using MariaDB! 。表示已经设置完成了。

1
2
3
4
5
6
7
8
9
10
11
12
sudo mysql -u root -p

#输入密码后:
# 创建数据库
CREATE DATABASE IF NOT EXISTS nextcloud DEFAULT CHARACTER SET UTF8 COLLATE utf8_general_ci;

# 创建用户
GRANT ALL PRIVILEGES ON nextcloud.* to '用户名'@'127.0.0.1' identified by '密码';

# 刷新数据库
FLUSH PRIVILEGES;

配置软件

配置Nginx

1
$sudo vim /etc/nginx/sites-available/default

nginx默认的网站代理地址是在var/www/html下,可以保留使用原来的,也可以修改到自己新建的地址下。如果选择新建不要忘记去确保指定的路径下的文件夹要存在。像我的就要在/var下新建owncloud文件夹。sudo mkdir /var/owncloud

image-20220219194922636

1
2
3
4
5
6
7
8
9
10
11
12
        location / {
                index  index.html index.htm index.php default.html default.htm default.php;
                if (-f $request_filename/index.html){
                rewrite (.*) $1/index.html break;
                }
                if (-f $request_filename/index.php){
                rewrite (.*) $1/index.php;
                }
                if (!-f $request_filename){
                rewrite (.*) /index.php;
                }
        }

去掉location ~ \ .php上的注释

image-20220219195040903

给根目录权限

1
2
3
4
5
6
# 给权限
sudo chmod -R 755 /var/owncloud
sudo chown -R www-data:www-data /var/owncloud

#重启nginx
sudo systemctl restart nginx

在刚刚网站指定的目录下新建PHP测试文件

1
2
3
4
5
6
7
$sudo vim /var/owncloud/index.php

#输入以下代码

<?php
      phpinfo();
?>

重新启动Nginx:$sudo systemctl restart nginx

可能报错

“Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.”

多检查修改过的地方,是否有单词错误,或者是否有分号,括号是否对应...

Nginx代理php成功后,在浏览器输入树莓派IP地址后能看到如下界面说明配置成功。

image-20220219141927075

安装nextCloud

进入刚刚配置的代理目录:cd /var/nextcloud

将刚刚的测试文件删除: sudo rm *

下载nextcloud)

1
sudo wget https://download.nextcloud.com/server/releases/nextcloud-23.0.2.tar.bz2

这是目前最新版本,请自己到官网查看版本

image-20220219192510883

1
2
3
4
5
# 解压缩:
sudo tar -jxvf nextcloud-23.0.2.tar.bz2 nextcloud

# 复制出来
sudo cp -rf nextcloud/* /var/owncloud

再访问IP地址就可以看到NextCloud的运行界面了

image-20220219200624789