零环境搭建Nextcloud

用到的软件
Apache(nginx)+php7.3.6+mariadb+Nextcloud16.0.1

web服务和数据库没有特定要求 直接用本地yum版本
由于nextcloud最新版需要php7.2及以上版本 所以直接拿php7.3.6做一遍
php编译安装前面有做笔记
这次尝试拿yum安装

先检查firewalld、selinux是否关闭
selinux查看
selinux关闭
检查apache+mariadb是否安装并可以正常启动(恢复快照的虚拟机 没有安的话yum安一下就好了)

 yum -y install httpd mariadb mariadb-server

启动测试

systemctl start httpd
systemctl start mariadb
systemctl enable httpd mariadb

Apache测试页正常 mariadb正常登录并修改默认密码

mysqladmin -u root -p password

Apache禁止目录访问

vim /etc/httpd/conf/httpd.conf
#Options Indexes FollowSymLinks

接下来是那个php安装= =
添加一下yum源 (提前准备一下网络源还有epel源)
wget https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
rpm -ivh remi-release-7.rpm
在这里插入图片描述
看到有74 直接装74吧

 yum -y install php74

常用扩展安装一下 还有php-fpm

 yum -y install php74-php-pecl-mysql php74-php-gd php74-php-ldap php74-php-mbstring php74-php-pecl-mcrypt php74-php-fpm

启动

systemctl start php74-php-fpm.service
systemctl enable php74-php-fpm.service

查看进程
在这里插入图片描述
创建php测试页

<?php
     phpinfo();
?>

发现无法解析php页面,安装Apache的mod_php模块可以解决 (别的办法我不知道哈 反正这个管用)
没有安装包先添加一下源

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install mod_php72w

这个对版本貌似没啥影响 这边只有72

然后去修改点东西
cd /etc/httpd/conf.modules.d/
正常这个目录下是没有这个文件的 10-php.conf

[root@localhost conf.modules.d]# vim 10-php.conf

在这里插入图片描述
已有的内容注释掉(貌似不注释也可以 我试试)

加入

<FilesMatch \.php$>
             SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

然后重启Apache的时候会可能会报错 注释掉httpd.conf最后三行就可以了
这次没有报错

好了 测试页显示正常
在这里插入图片描述


接下来把下载好的nextcloud导入linux 解压并复制到Apache网站根目录下

unzip -q nextcloud-16.0.1.zip
mv nextcloud /var/www/html/

给一下apache的权限

chown apache. /var/www/html/nextcloud/ -R

测试访问
需要安装扩展模块
在这里插入图片描述
php74 -m 查看已安装模块

yum -y install php74-php-xml php74-php-pecl-zip

其实安装这俩就可以打开了

先不安装 展开存储&数据库 给nextcloud做一个自签名(可不做) 使用mariadb作为nextcloud数据库 (当然不指定数据库也可以 还是建议用mariadb或者mysql)

为SSL证书创建一个文件夹
mkdir /etc/httpd/pki
生成证书

[root@localhost pki]# openssl req -new -x509 -nodes -out nextcloud.pem -keyout nextcloud.pem -days 3560
Generating a 2048 bit RSA private key
...................................................................................................+++
..............................+++
writing new private key to 'nextcloud.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:nextcloud.com
Organizational Unit Name (eg, section) []:cloud
Common Name (eg, your name or your server's hostname) []:www.kylincloud.com
Email Address []:kylin@cloud.com

OpenSSL简单参数解释:
req——是X.509(CSR,证书签名请求)管理的一个命令
x509——X.509证书数据管理
days——定义证书的有效日期
newkey——制定证书密钥处理器
keyout——设置密钥存储文件
out——设置证书存储文件,注意证书和密钥都保存在一个相同的文件


设置400权限

chmod 400 nextcloud.pem

安装Apache组件&修改SSL配置加入证书位置

    yum -y install mod_ssl
    vim /etc/httpd/conf.d/ssl.conf
    SSLCertificateFile /etc/httpd/pki/nextcloud.pem
    SSLCertificateKeyFile /etc/httpd/pki/nextcloud.pem

修改完重启httpd服务验证
在这里插入图片描述
创建nextcloud数据存放位置

mkdir /nextcloud/data -p
chown -R apache. /nextcloud/

创建nextcloud所需数据库
Mysql需要设置为mixed模式(这个我也不知道为啥 创建用户是看的别人的文档)
登录数据库后操作

MariaDB [(none)]> set global binlog_format=mixed;
Query OK, 0 rows affected (0.06 sec)

创一个nextcloud库 创建用户设置密码 授权nextcloud库

MariaDB [(none)]> create database nextcloud;
Query OK, 1 row affected (0.07 sec)

MariaDB [(none)]> create user nextcloud@localhost identified by 'cloud123';
Query OK, 0 rows affected (0.23 sec)

MariaDB [(none)]> grant all privileges on nextcloud.* to nextcloud@localhost identified by 'cloud123';
Query OK, 0 rows affected (0.04 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.08 sec)

正式安装nextcloud
在这里插入图片描述
输入刚刚创建好的数据存储目录
/nextcloud/data
数据库用户—密码—库名
填入管理员帐号密码开始安装
在这里插入图片描述

刚刚出现了这个东东 貌似是提示容量不足??
刷新网页之后直接显示登录界面 可以正常登录显示 视频可以正常播放
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
由于维护停机或容量问题,服务器暂时无法为您的请求提供服务。请稍后再试。

在这里插入图片描述
添加用户试一下

管理员登录 右上角设置 主题 图标背景名字什么的都可以改
在这里插入图片描述
随便挂了几张手边的图 测试手机客户端登陆
依旧是401再授权登录那里报错失败 手机浏览器是可以正常访问的
暂时先不搞了 有时间在看看
在这里插入图片描述
浏览器登录效果
在这里插入图片描述
在这里插入图片描述
不知道为啥浏览器传不上去
虚拟机有点卡吧= = 撤了 下面有一段优化是别的大哥搞得
其实nextcloud官方文档还是比较全的 有兴趣的可以看一下

在这里插入图片描述


优化
下面进行一些安全与性能优化

为了您服务的安全和性能, 请将所有设置配置正确. 我们将会进行一些自动化检查以帮助您完成这项工作. 详情请查看 “小提示” 部分及相关文档.

HTTP 请求头 “X-Frame-Options” 没有配置为 “SAMEORIGIN”. 这是一个潜在的安全或隐私风险, 我们建议您调整这项设置.
内存缓存未配置. 如果可用, 请配置 memcache 以增强性能. 更多信息请查看我们的文档.
PHP 的组件 OPcache 没有正确配置. 为了提供更好的性能, 我们建议在php.ini文件中使用下列设置:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
修改程序目录下的config目录中的config.php文件,在配置文件中添加多个Memcached实例,也可以添加一个:

‘memcache.local’ => ‘\OC\Memcache\APCu’,
‘memcache.distributed’ => ‘\OC\Memcache\Memcached’,
‘memcached_servers’ => array(
array(‘localhost’, 11211),
array(‘server1.example.com’, 11211),
array(‘server2.example.com’, 11211),
),

添加redis缓存:
在配置文件中添加如下,这个是通过TCP连接的:
‘memcache.local’ => ‘\OC\Memcache\Redis’,
‘redis’ => array(
‘host’ => ‘localhost’,
‘port’ => 6379,
),

还有性能更好的UNIX连接:
‘memcache.local’ => ‘\OC\Memcache\Redis’,
‘redis’ => array(
‘host’ => ‘/var/run/redis/redis.sock’,
‘port’ => 0,
‘dbindex’ => 0,
‘password’ => ‘secret’,
‘timeout’ => 1.5,
),
同时,官方还推荐加入如下,来用于存储文件锁:
‘memcache.locking’ => ‘\OC\Memcache\Redis’,
Nextcloud的邮件发信设置

使用管理员账号登陆Nextcloud。点击右上角的设置图标里的"管理"-“其他设置”


2019/6/12 by:kylin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值