用到的软件
Apache(nginx)+php7.3.6+mariadb+Nextcloud16.0.1
web服务和数据库没有特定要求 直接用本地yum版本
由于nextcloud最新版需要php7.2及以上版本 所以直接拿php7.3.6做一遍
php编译安装前面有做笔记
这次尝试拿yum安装
先检查firewalld、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页面,安装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
加入
SetHandler "proxy:fcgi://127.0.0.1:9000"
然后重启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 []:[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数据存放位置
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