零环境搭建Nextcloud

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

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

先检查firewalld、selinux是否关闭
selinux查看
零环境搭建Nextcloud_第1张图片
检查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

查看进程
零环境搭建Nextcloud_第2张图片
创建php测试页


发现无法解析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

零环境搭建Nextcloud_第3张图片
已有的内容注释掉(貌似不注释也可以 我试试)

加入


             SetHandler "proxy:fcgi://127.0.0.1:9000"

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

好了 测试页显示正常
零环境搭建Nextcloud_第4张图片


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

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

给一下apache的权限

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

测试访问
需要安装扩展模块
零环境搭建Nextcloud_第5张图片
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 []:[email protected]

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_第6张图片
创建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_第7张图片
输入刚刚创建好的数据存储目录
/nextcloud/data
数据库用户—密码—库名
填入管理员帐号密码开始安装
零环境搭建Nextcloud_第8张图片

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

零环境搭建Nextcloud_第9张图片
添加用户试一下

管理员登录 右上角设置 主题 图标背景名字什么的都可以改
零环境搭建Nextcloud_第10张图片
随便挂了几张手边的图 测试手机客户端登陆
依旧是401再授权登录那里报错失败 手机浏览器是可以正常访问的
暂时先不搞了 有时间在看看

浏览器登录效果

零环境搭建Nextcloud_第11张图片
不知道为啥浏览器传不上去
虚拟机有点卡吧= = 撤了 下面有一段优化是别的大哥搞得
其实nextcloud官方文档还是比较全的 有兴趣的可以看一下

零环境搭建Nextcloud_第12张图片


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

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

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

你可能感兴趣的:(零环境搭建Nextcloud)