Ubuntu server 22.04安装nextcloud

前言

网上很多都是基于snap或者docker进行的部署,很是方便,关于直接在服务器上部署的教程很少,本人决定尝试进行直接安装。

一、准备工作

1、升级系统

sudo apt update
sudo apt upgrade

2、所需环境

Operating System :Ubuntu 22.04

Database                :Mysql 8

Webserver                :Apche 2.4

PHP Runtime              :8.3

二、安装MySQL8

1、更新

sudo apt update
sudo apt upgrade

2、安装mysql server

sudo apt install mysql-server

如果这一步出现问题,就换个源,可以换成中科大的源。

3、对mysql进行配置

sudo mysql_secure_installation

看不懂就翻译一下,按照步骤来就行。

4、验证一下是否安装成功

sudo systemctl status mysql

成功就显示:● mysql.service - MySQL Community Server.........

一堆运行信息

5、登录mysql

sudo mysql -u root -p

默认是不用输密码的,直接就能进去。

6、创建一个nextcloud账户

CREATE DATABASE nextcloud;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';

password可以替换成你自己的密码。(这需要在MySQL中运行)

7、退出MySQL终端

FLUSH PRIVILEGES;
EXIT;

至此,MySQL已经安装完成,后面数据替换位置等其他问题,可自行摸索。

三、安装Apache

1、更新

sudo apt update
sudo apt upgrade

2、安装Apache

apt install apache2

3、检测一下

systemctl status apache2

成功就显示:● apache2.service - The Apache HTTP Server...........

同时可以打开浏览器,访问一下Ubuntu server IP地址,出现Apache2 Default Page页面。

4、配置Apache

在/var/www/html/新建文件夹nextcloud

mkdir /var/www/html/nextcloud

给一下权限

sudo chown -R www-data:www-data /var/www/html/nextcloud

四、安装PHP

1、更新

sudo apt update
sudo apt upgrade

2、安装PHP

sudo apt install php

3、安装PHP拓展

sudo apt install php8.1-fpm libapache2-mod-php8.1
sudo apt-get install php8.1-curl php8.1-dom php8.1-mbstring php8.1-imagick php8.1-ldap php8.1-imap php8.1-mysql php8.1-gd php8.1-zip php8.1-bz2 php8.1-intl php8.1-smbclient php8.1-bcmath php8.1-gmp php8.1-apcu php8.1-memcached php8.1-redis php8.1-phar
sudo apt install libmagickcore-dev
sudo apt install ffmpeg
sudo apt install redis

4、新建PHP运行文件夹php8.1-fpm

mkdir /run/php/php8.1-fpm

5、启用一些模块

a2enmod proxy_fcgi setenvif
a2enconf php8.1-fpm
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
a2enmod setenvif

6、重启Apache

systemctl restart apache2

7、测试PHP

在/var/www/html下新建info.php的文件

vi /var/www/html/info.php

按下i,输入以下内容,按下esc,输入:wq保存

<?php echo phpinfo();?>

打开浏览器,输入IP/info.php,会出现详细的PHP信息页。

至此,所有准备工作已经完成。

五、安装nextcloud

1、进入安装目录

cd /var/wwww/html/nextcloud

2、获取在线安装文件setup-nextcloud.php

打开官网:Nextcloud - Open source content collaboration platform

选择Get Nextcloud→nextcloud server跳转下载页面

选择DOWNLOAD SERVER→COMMUNITY PROJECTS

复制Web installer 按钮的连接。

如下:

setup-nextcloud.phpicon-default.png?t=N7T8https://download.nextcloud.com/server/installer/setup-nextcloud.php

3、在线下载 

wget https://download.nextcloud.com/server/installer/setup-nextcloud.php

4、打开浏览器

IP/nextcloud/stusetup-nextcloud.php

5、进入安装界面

一路next即可

6、nextcloud安装配置

自己输入一个管理员账号与密码

MySQL账户

用户:nextcloud

密码:自己安装MySQL时创建的nextcloud用户密码

数据库名称:nextcloud

7、浏览器输入

IP/nextcloud/nextcloud

8、nextcloud优化配置

vi /var/www/nextcloud/config/config.php

按需修改

<?php

  #添加可以访问的网站域名或者nextcloud主机的IP地址,否则局域网内或者外网访问时会出现请使用合法IP或者域名方可登录的提示  
  'trusted_domains' =>
  array (
    0 => 'localhost',
    1 => 'xxx.xxx.xxx',
    2 => '192.168.1.17',
  ),

  
  'overwrite.cli.url' => 'http://localhost/nextcloud',

  'installed' => true,

  #防止出现不能https访问问题
  'overwriteprotocol' => 'https',

  #默认电话区域
  'default_phone_region' => 'CN',

  #开启缓存,分类型同时使用APCU和REDIS。
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'filelocking.enabled' => true,
  'memcache.locking' => '\OC\Memcache\Redis',
  'memcache.distributed' => '\OC\Memcache\Redis',
  'redis' => [
     'host' => 'localhost',
     'port' => 6379,
  ],

  
);

至此,nextcloud安装完成。

六、拓展

nextcloud装完后会有一些警告提示,请自行百度解决。

1、网页服务器未正确设置以解析:

  1. 您的网页服务器未正确设置以解析“/.well-known/webfinger”。更多信息请参见文档↗。
  2. 您的网页服务器未正确设置以解析“/.well-known/nodeinfo”。更多信息请参见文档↗。
  3. 您的网页服务器未正确设置以解析“/.well-known/caldav”。更多信息请参见文档↗。
  4. 您的网页服务器未正确设置以解析“/.well-known/carddav”。更多信息请参见文档↗。
#先将路径:/var/www/html/nextcloud 下在的.htaccess文件复制至/var/www/html下
#.htaccess是隐藏文件,直接在nextcloud目录下 
cp .htaccess /var/www/html

#在/var/www/html/目录下打开此文件
vi .htaccess
#修改IfModule mod_rewrite.c的内容:

<IfModule mod_rewrite.c>

  RewriteEngine on

  RewriteCond %{HTTP_USER_AGENT} DavClnt

  RewriteRule ^$ /nextcloud/remote.php/webdav/ [L,R=302]

  RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

  RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]

  RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]

  RewriteRule ^\.well-known/webfinger /nextcloud/index.php/.well-known/webfinger [R=301,L]

  RewriteRule ^\.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo [R=301,L]

  RewriteRule ^remote/(.*) remote.php [QSA,L]

  RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]

  RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]

  RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]

</IfModule>

#然后再打开路径:apache2.conf文件,修改
vi /etc/apache2/conf/apache2.conf

#原:
AllowOverride none

#改:
AllowOverride ALL

#最后

systemctl restart apache2

2、PHP优化配置

进入php.ini文件进行配置

vi /etc/php/8.1/fpm/php.ini
找到对应参数修改
memory_limit = 2048M
upload_max_filesize = 1000M
post_max_size = 1000M
max_input_time 3600
max_execution_time = 3600

#删除以下配置选项前  ; 并修改参数
opcache.enable = 1
opcache.interned_strings_buffer = 24
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1
systemctl restart apache2
#重启apache2

3、OPcache 内部字符串缓存几乎已满。

为确保重复的字符串可以被有效地缓存,建议在您的 PHP 设置中 opcache.interned_strings_buffer 设置一个高于 8 的值。

vi /etc/php/8.1/fpm/conf.d/10-opcache.ini

修改如下:

; configuration for php opcache module
; priority=10
zend_extension=opcache.so

opcache.enable=1
opcache.enable_cli=1
opcache.jit_buffer_size=256M
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 32
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 60
opcache.fast_shutdown = 1
opcache.save_comments=1

重启PHP

service php8.1-fpm restart

4、cron.php 不执行

使用系统定时任务服务每 5 分钟执行一次 cron.php 文件。
cron.php 需要由系统用户“www-data”执行。

在 /etc/systemd/system目录新建 nextcloudcron.service 和 nextcloudcron.timer 两个文件:

vi /etc/systemd/system/nextcloudcron.service

输入以下内容:

Description=Nextcloud cron.php job

[Service]
User=www-data
ExecCondition=php -f /var/www/html/nextcloud/occ status -e #根据安装位置修改
ExecStart=/usr/bin/php -f /var/www/html/nextcloud/cron.php #根据安装位置修改,/usr/一般不用改
KillMode=process

按下esc输入:wq保存。

vi /etc/systemd/system/nextcloudcron.timer

输入以下内容:

[Unit]
Description=Run Nextcloud cron.php every 5 minutes
 
[Timer]
OnBootSec=5min
OnUnitActiveSec=5min
Unit=nextcloudcron.service
 
[Install]
WantedBy=timers.target

#这里所有内容不用修改,定时5分钟执行。

按下esc输入:wq保存。

最后,执行下面的命令就可以了:

systemctl enable --now nextcloudcron.timer

如果中间修改了nextcloudcron.service 和 nextcloudcron.timer文件执行一下

systemctl daemon-reload

Ubuntu Server 22.04(代号“Jammy Jellyfish”)的安装教程通常分为几个步骤,包括准备安装媒介、启动安装过程、选择语言和键盘布局、磁盘配置、安装类型选择、设置用户和密码等。以下是简要的安装步骤概述: 1. **下载ISO镜像**: 访问Ubuntu官网(https://www.ubuntu.com/download/server)下载适用于服务器22.04 LTS版本的ISO镜像文件。 2. **创建安装媒介**: 可以使用 Rufus 或 UNetBootin 等工具制作USB启动盘或DVD。 3. **启动安装**: 将安装媒介插入计算机并重启,进入BIOS/UEFI设置,确保从该媒介启动。 4. **安装界面**: 进入Ubuntu安装程序后,选择"Try Ubuntu Without Installing"选项进行环境测试,如果满意再继续安装。 5. **语言选择**: 在初始界面选择安装语言和键盘布局。 6. **磁盘分区**: 使用 "Install Now" 进入磁盘管理器,可以选择手动分区或自动分区,根据需要分配空间给根目录(/)、交换空间和可能的其他数据分区。 7. **安装类型**: 选择 "Installation Type",通常选择 "Server with GUI" 或 "Server without GUI",取决于你的需求。 8. **设置网络**: 配置网络连接,包括IP地址、子网掩码和DNS服务器。 9. **用户名和密码设置**: 创建一个管理员用户,并设置密码。 10. **软件源和更新**: 接受软件许可协议,配置软件源,并允许系统自动更新。 11. **安装完成**: 完成上述步骤后,开始安装过程,等待安装完成,然后重新启动服务器,系统将引导到新的Ubuntu 22.04桌面或命令行界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值