前文中详细介绍过Nextcloud私有云盘系统,中国大陆区的云盘生态系统现状这里就不作过多的阐述了,如人饮水冷暖自知。这里详细介绍一下Nextcloud私有云盘的搭建过程,希望给私人用户、创业公司小团队、企业单位等提供参考。
摘要:
本文所指的Nextcloud私有云是托管在私有域名及VPS下的云盘,该私有云采用国外Nextcloud开源程序,网站架构使用LAMP.
NextCloud是一款用于自建私有网盘的云存储开源软件,采用PHP+MySQL开发,功能类似百度云盘,提供了PC、IOS和Android三个同步客户端支持多种设备访问,用户可以很方便地与服务器上存储的文件、日程安排、通讯录、书签等重要数据保持同步,还支持其他同步来源:Amazon S3、Dropbox、FTP、Google Drive、OpenStack Object Storage、SMB、WebDAV、SFTP。
NextCloud镜像是基于LAMP环境制作,下面是一些可能会用得到的参数:
部署步骤:
一、安装Ubuntu 18.0.4 linux OS
二、安装php7.0
三、apache2 的配置
四、安装Mysql 数据库程序
五、nextcloud 安装配置
部署过程:
一、安装Ubuntu 18.0.4
在VPS购买的过程中,选择具体的网络节点位置[比如美国洛杉矶、日本京东…], 然后选择ubuntu 系统的版本进行安装。具体的节点位置和网络质量决定了后续云盘的上传和下载文件速度。这里可以参考如下购买链接,VPS购买。
二、安装php7.0
添加源
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get install apache2 mariadb-server libapache2-mod-php7.0
sudo apt-get install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring
sudo apt-get install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip php7.0-fpm
1. 启用Apache的php7.0模块,然后重启Apache
sudo a2enmod php7.0
sudo systemctl restart apache2
2. 启动php7.0-fpm进程
sudo systemctl start php7.0-fpm
3. 测试php7.0是否正常工作
在/var/www/html 目录下创建一个名称为infor.php的文件, vim编辑输入如下代码并保存退出:
phpinfo();
4. php 升级
1.apt install php7.2 你想要的php版本
a2dismod 现有的php
a2enmod php5.6或者7.2
/etc/init.d/apache2 restart
反过来降级也是这个思路
打开Web浏览器,输入http://server_address/infor.php可以查看上面的php信息代码页面作为确认
三、apache2的配置
1. apache2安装
sudo apt install apache2
开启pache2 的SSL模块,后面如果全站https访问时会用到
sudo a2enmod ssl
安装完成后,pache2的默认映射路径是/var/www/html
2. apache2详细配置
编辑Apache配置文件
vim /etc/apache2/xcloud.conf
VirtualHost *:80>
ServerName YourDomain
Redirect permanent / https://YourDomain/
/VirtualHost>
VirtualHost *:443>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/nextcloud/
ServerName YourDomain
ServerAlias www.YourDomain
IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
/IfModule>
Alias /xcloud "/var/www/html/nextcloud/"
Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
IfModule mod_dav.c>
Dav off
/IfModule>
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
/Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
/VirtualHost>
4. 调整上传文件大小限制:
sudo vim /etc/php/7.0/apache2/php.ini
file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 4096M
max_execution_time = 360
//配置opcache
[opcache]
for nextcloud
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
安装完成后,重启apche2
sudo systemctl restart apache2
检测我们添加的配置有没有语法错误:
sudo apache2ctl configtest
重启Apache:
sudo systemctl restart apache2
sudo apt-get install mysql-server mysql-common
$ mysql -uroot -p
提示输入数据库入口密码: xxxxxx //
接下来创建数据库名称:nextcloud ,
CREATE DATABASE nextcloud ; (记得一定加上分号,留一个缩进)
接下来为tnextorg创建一个新用户:xxx
CREATE USER xxx@localhost ;
为此用户设置密码,比如把密码设置成xxxxx
SET PASSWORD FOR xxxr@localhost =PASSWORD("xxxxx") ;
此外,还要为此用户设置访问pwifinet数据库的权限
GRANT ALL PRIVILEGES ON nextcloud.* TO xclouduser@localhost IDENTIFIED BY 'xxxxx' ;
最后使权限生效:
FLUSH PRIVILEGES ;
查看数据库是否成功创建,
show databases ;
退出,数据库重启:
sudo service mysql start
【bug】 关于mysqld.sock找不到导致无法连接mysql 的问题
先卸载
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common
sudo rm /var/lib/mysql/ -R
sudo rm /etc/mysql/ -R
sudo apt-get autoremove mysql* —purge
sudo apt-get remove apparmor
再安装
sudo apt-get install mysql-server mysql-common
安装完成后再进入cd /var/run/mysqld/目录下,mysqld.sock存在了
sudo wget https://download.nextcloud.com/server/releases/nextcloud-14.0.0.zip
unzip nextcloud-14.0.0.zip
scp -r * /var/www/html/nextcloud
sudo chown -R www-data /var/www/html/nextcloud
sudo chmod -R 755 /var/www/html/nextcloud

本文由作者 Leeco 发布在 TNEXT , 转载请联系客服授权处理,获得授权后请保留文章的完整性并附上原文链接: https://tnext.org/3255.html