
Ubuntu server 22.04安装nextcloud
网上很多都是基于snap或者docker进行的部署,很是方便,关于直接在服务器上部署的教程很少,本人决定尝试进行直接安装。
前言
网上很多都是基于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.phphttps://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、网页服务器未正确设置以解析:
- 您的网页服务器未正确设置以解析“/.well-known/webfinger”。更多信息请参见文档↗。
- 您的网页服务器未正确设置以解析“/.well-known/nodeinfo”。更多信息请参见文档↗。
- 您的网页服务器未正确设置以解析“/.well-known/caldav”。更多信息请参见文档↗。
- 您的网页服务器未正确设置以解析“/.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
更多推荐
所有评论(0)