CentOS7 搭建NextCloud私有云盘

栏目: 数据库 · 发布时间: 6年前

内容简介:由于公司需要安装了私有云盘,并且强制要求使用MySQL,我进行了编译安装,大多数文章安装在/目录下,由于/目录太小,我挂载了一块磁盘,安装在挂载磁盘上。后续还有数据安全等操作,以后会持续更新一、环境说明二、安装Nginx

由于公司需要安装了私有云盘,并且强制要求使用MySQL,我进行了编译安装,大多数文章安装在/目录下,由于/目录太小,我挂载了一块磁盘,安装在挂载磁盘上。后续还有数据安全等操作,以后会持续更新

一、环境说明

  • CentOS 7以上
  • SELinux关闭
  • 防火墙关闭

二、安装Nginx

添加EPEL包的仓库源

yum -y install epel-release

通过EPEL仓库来安装Nginx

yum -y install nginx

三、安装 PHP 7和PHP7-FPM

卸载原有php

yum list installed | grep php

yum remove `yum list installed | grep php`

添加 PHP7-FPM webtatic 仓库,并安装PHP7以及功能相关的包

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

yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-pear php70w-xml php70w-mbstring php70w-pdo php70w-json php70w-pecl-apcu php70w-pecl-apcu-devel

四、配置PHP-FPM

我们需要配置 php-fpm 与 Nginx 协同运行。php7-fpm 将使用 nginx 用户来运行,并监听 9000 端口。

使用 vim 编辑默认的 php7-fpm 配置文件。

vim /etc/php-fpm.d/www.conf

修改以下不连续的记录点,修改用户,指定端口,启用环境变量。

#Line 8,10

user = nginx

group = nginx

#Line 22

listen = 127.0.0.1:9000

#Line 366-370

env[HOSTNAME] = $HOSTNAME

env[PATH] = /usr/local/bin:/usr/bin:/bin

env[TMP] = /tmp

env[TMPDIR] = /tmp

env[TEMP] = /tmp

保存文件并退出 vim 编辑器.

需要在 /var/lib/ 目录下创建一个新的文件夹 session,并将其拥有者变更为 nginx 用户。最后启动 php-fpm 和 Nginx,并且将它们设置为随开机启动的服务。(不创建授权无法登录)

mkdir -p /var/lib/php/session

chown nginx:nginx -R /var/lib/php/session/

sudo systemctl start php-fpm

sudo systemctl start nginx

sudo systemctl enable php-fpm

sudo systemctl enable nginx

五、二进制安装数据库 MySQL 5.6.40

1.添加用户

useradd -s /sbin/nologin -M mysql

2.下载去官网

cd /usr/local/src

3.解压

tar xf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz

mv  mysql-5.6.40-linux-glibc2.12-x86_64  ./../mysql

4.授权

mkdir -p /usr/local/mysql/data

cd /usr/local

chown -R mysql:mysql mysql

5.初始化

/usr/local/scripts/mysql_install_db  --user=mysql --basedir=/usr/local/mysql  --datadir=/usr/local/mysql/data

mkdir -p /var/lib/mysql

chmod 777 /var/lib/mysql

6.准备配置文件

cd /usr/local/mysql

\cp support-files/my-default.cnf  /etc/my.cnf

\cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

修改mysql配置文件

vim /etc/my.conf

[mysqld]

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

socket = /var/lib/mysql/mysql.sock

user = mysql

symbolic-links=0

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld_safe]

log-error = /usr/local/mysql/data/error.log

pid-file = /usr/local/mysql/data/mysql.pid

7.启动MySQL

/etc/init.d/mysqld start

8.设置PATH路径

echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile

source /etc/profile

which mysql

9.设置sock软链接

ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

ll /tmp/

10.设置密码

/usr/local/mysql/bin/mysqladmin -u root password 'waming@2030'

mysql -uroot -pwaming@2030

六、设置nextcloud数据库

mysql -u root -p123456

输入以下 mysql 语句来创建新的数据库和用户。

create database nextcloud_db;

create user 'nextclouduser'@'localhost' identified by '123456';

grant all privileges on nextcloud_db.* to nextclouduser@localhost identified by '123456';

flush privileges;

exit

七、安装SSL证书

我们可以自己生成SSL证书,也可以申请专业的SSL证书。

自签名的SSL证书在使用的时候会报错,建议使用有资质的SSL证书。

安装过程如下:

为 SSL 文件创建新目录:

mkdir -p /etc/nginx/cert/

可以使用OpenSSL自签名证书,但是更推荐使用具有官方认证的SSL证书

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/cloud.example.com.crt -keyout /etc/nginx/cert/cloud.example.com.key

在该目录下储存申请过的SSL证书,并设置证书的权限:

chmod 700 /etc/nginx/cert

chmod 600 /etc/nginx/cert/*

八、下载和初步安装 Nextcloud

找到正确的官方下载库:https://download.nextcloud.com/server/releases/

先进入目录,然后使用 wget 从官网下载最新的 Nextcloud 13。

cd /usr/local/src

wget https://download.nextcloud.com/server/releases/nextcloud-13.0.2.zip

unzip nextcloud-13.0.2.zip

mv nextcloud /u01/

cd /u01/nextcloud

mkdir data

cd ..

chown nginx:nginx -R nextcloud/

九、配置Nginx转发规则

我们需要在Nginx的配置文件下写入有关nextcloud的转发协议。

我们可以直接新建一个配置文件并写入信息,当Nginx重新加载后就能使用配置文件了。

cd /etc/nginx/conf.d/

vim nextcloud.conf

[mysqld]

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

socket = /var/lib/mysql/mysql.sock

user = mysql

symbolic-links=0

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld_safe]

log-error = /usr/local/mysql/data/error.log

pid-file = /usr/local/mysql/data/mysql.pid

[root@nextcloud-master local]# cat /etc/nginx/conf.d/nextcloud.conf

upstream php-handler {

server 127.0.0.1:9000;

#server unix:/var/run/php5-fpm.sock;

}

server {

listen 80;

server_name localhost;

# enforce https

rewrite ^(.*)$ https://$host$1 permanent;

}

server {

listen 443 ssl;

server_name localhost;

ssl_certificate /etc/nginx/cert/cloud.example.com.crt;

ssl_certificate_key /etc/nginx/cert/cloud.example.com.key;

# Add headers to serve security related headers

# Before enabling Strict-Transport-Security headers please read into this

# topic first.

add_header Strict-Transport-Security "max-age=15768000;

includeSubDomains; preload;";

add_header X-Content-Type-Options nosniff;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-XSS-Protection "1; mode=block";

add_header X-Robots-Tag none;

add_header X-Download-Options noopen;

add_header X-Permitted-Cross-Domain-Policies none;

# Path to the root of your installation

root /u01/nextcloud/;

location = /robots.txt {

allow all;

log_not_found off;

access_log off;

}

# The following 2 rules are only needed for the user_webfinger app.

# Uncomment it if you're planning to use this app.

#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;

#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json

# last;

location = /.well-known/carddav {

return 301 $scheme://$host/remote.php/dav;

}

location = /.well-known/caldav {

return 301 $scheme://$host/remote.php/dav;

}

# set max upload size

client_max_body_size 10240M;

fastcgi_buffers 64 4K;

# Disable gzip to avoid the removal of the ETag header

gzip off;

# Uncomment if your server is build with the ngx_pagespeed module

# This module is currently not supported.

#pagespeed off;

error_page 403 /core/templates/403.php;

error_page 404 /core/templates/404.php;

location / {

rewrite ^ /index.php$uri;

}

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {

deny all;

}

location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {

deny all;

}

location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {

include fastcgi_params;

fastcgi_split_path_info ^(.+\.php)(/.*)$;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_path_info;

fastcgi_param HTTPS on;

#Avoid sending the security headers twice

fastcgi_param modHeadersAvailable true;

fastcgi_param front_controller_active true;

fastcgi_pass php-handler;

fastcgi_intercept_errors on;

fastcgi_request_buffering off;

}

location ~ ^/(?:updater|ocs-provider)(?:$|/) {

try_files $uri/ =404;

index index.php;

}

# Adding the cache control header for js and css files

# Make sure it is BELOW the PHP block

location ~* \.(?:css|js)$ {

try_files $uri /index.php$uri$is_args$args;

add_header Cache-Control "public, max-age=7200";

# Add headers to serve security related headers (It is intended to

# have those duplicated to the ones above)

# Before enabling Strict-Transport-Security headers please read into

# this topic first.

add_header Strict-Transport-Security "max-age=15768000;

includeSubDomains; preload;";

add_header X-Content-Type-Options nosniff;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-XSS-Protection "1; mode=block";

add_header X-Robots-Tag none;

add_header X-Download-Options noopen;

add_header X-Permitted-Cross-Domain-Policies none;

# Optional: Don't log access to assets

access_log off;

}

location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {

try_files $uri /index.php$uri$is_args$args;

# Optional: Don't log access to other assets

access_log off;

}

}

vim /etc/nginx/nginx.conf

路径更换,也许不用更换也可以,我没有尝试

CentOS7 搭建NextCloud私有云盘

注销38-57行

CentOS7 搭建NextCloud私有云盘

重启nginx

systemctl restart nginx

十、登录

登录输入你自己的主机IP即可设置进入设置界面

CentOS7 搭建NextCloud私有云盘

也可以使用Mariadb,下边是安装配置方法

这里使用 MariaDB 作为 Nextcloud 的数据库。可以直接使用 yum 命令从 CentOS 默认远程仓库中安装 mariadb-server包。也可以安装mysql都可以

yum -y install mariadb mariadb-server

systemctl start mariadb

systemctl enable mariadb

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

mkdir -p /var/lib/mysql

使用MySQL初始化指令初始化root用户,默认密码为空。

mysql_secure_installation

#配置过程

Set root password? [Y/n] Y

New password:

Re-enter new password:

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

先使用命令登录MySQL

mysql -u root -p

输入以下 mysql 查询语句来创建新的数据库和用户。

create database nextcloud_db;

create user 'nextclouduser'@'localhost' identified by '123456';

grant all privileges on nextcloud_db.* to nextclouduser@localhost identified by '123456';

flush privileges;

exit

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-10/155104.htm


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Design for Hackers

Design for Hackers

David Kadavy / Wiley / 2011-10-18 / USD 39.99

Discover the techniques behind beautiful design?by deconstructing designs to understand them The term ?hacker? has been redefined to consist of anyone who has an insatiable curiosity as to how thin......一起来看看 《Design for Hackers》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具