nextcloud搭建mysql环境_【Nextcloud适用】lnmp环境搭建ownCloud私有云 | 大良造

219f729db262ee155ee55acc71ffe954.gif

题记

在经历了两次心惊肉跳的硬盘数据恢复后,我渐渐把自己的数据资料转移到云端。与其惴惴不安地使用百度云,Dropbox等云储存工具,不如自己动手搭个云。

ownCloud是一个自由且开源的个人云存储解决方案,配置好服务器端后,就可以进行多平台的数据同步。

使用私有云之前必须先了解可能存在问题: 由于数据全部储存在服务器上,vps忘记续费导致被删除或者vps供应商跑路等状况将导致资料万劫不复,所以请谨慎操作,对数据资料一定要做好备份,永远不要把鸡蛋放一个篮子里!

本篇不探讨各种云储存方案的优劣,请自行斟酌。

安装步骤

搭建环境:Debian(Ubuntu)|nginx|mysql|php

省心的一键脚本可以戳这里:Tennfy - debian下lnmp一键安装脚本完善版

使用一键配置可以省略文本很多操作步骤,只需 8,9,11

1. 安装 MySQL 5

apt-get install mysql-server mysql-client

会要求输入 mysql root 密码

2. 安装 Nginx

apt-get install nginx

3. 安装 PHP 5

apt-get install php5-fpm

编辑/etc/php5/fpm/php.ini

设置cgi.fix_pathinfo=0

重新载入php service php5-fpm reload

4. 让 PHP 支持 MySQL

安装一系列组件,一并安装 可选PHP缓存 php-apc

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php-apc

重新载入php service php5-fpm reload

5. 让 PHP 使用 TCP 连接

默认情况下 PHP-FPM 监听的是 /var/run/php5-fpm.sock

编辑配置文件 vi /etc/php5/fpm/pool.d/www.conf

注释掉listen = /var/run/php5-fpm.sock修改为:

;listen = /var/run/php5-fpm.sock

listen = 127.0.0.1:9000

重新载入php service php5-fpm reload

6. 安装 owncloud 所需组件

安装所需组件:

apt-get install openssl ssl-cert php5-cli php5-sqlite php5-common php5-cgi sqlite3 php-pear curl libapr1 libtool curl libcurl4-openssl-dev php-xml-parser php5 php5-dev php5-gd varnish

7. 创建SSL证书(一年有效期)

owncloud必须使用安全链接才可以访问,使用 openssl 证书浏览器会报不安全提示,建议使用 免费SSL证书Let’s Encrypt ,本文使用的是 openssl

openssl req $@ -new -x509 -days 365 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key

chmod 600 /etc/nginx/cert.pem

chmod 600 /etc/nginx/cert.key

8. 安装 owncloud

下载安装:

mkdir -p /var/www/owncloud # 创建网站目录

wget http://download.owncloud.org/community/owncloud-8.2.2.tar.bz2 #下载owncloud

tar xvf owncloud-8.2.2.tar.bz2 # 解压文件

mv owncloud/ /var/www/ # 将解压内容移至网站目录

chown -R www-data:www-data /var/www # 添加nginx用户权限

sudo rm -rf owncloud owncloud-8.2.2.tar.bz2 # 删除压缩包

创建 owncloud 数据库,创建用户并赋予该数据库所有权限,不熟悉命令行的童鞋建议用 phpMyAdmin 操作,这次不再赘述。

mysqladmin -u root -p create owncloud

mysql -u root -p

GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud_admin'@'localhost' IDENTIFIED BY 'owncloud_admin_password'

GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud_admin'@'localhost.localdomain' IDENTIFIED BY 'owncloud_admin_password'

FLUSH PRIVILEGES

quit

9. 配置 nginx

编辑(创建)网站配置文件 vi /etc/nginx/conf.d/owncloud.conf 输入以下内容:

server {

listen 80;

server_name cloud.domain.com; # 修改为自己的域名

return 301 https://$server_name$request_uri; # 强制使用 https

}

server {

listen 443 ssl;

server_name cloud.domain.com; # 修改为自己的域名

# 证书及密钥位置

ssl_certificate /etc/nginx/owncloud.pem;

ssl_certificate_key /etc/nginx/owncloud.key;

# 网站根目录

root /var/www/owncloud;

client_max_body_size 16G; # set max upload size

fastcgi_buffers 64 4K;

rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;

rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;

rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

index index.php;

error_page 403 /core/templates/403.php;

error_page 404 /core/templates/404.php;

location = /robots.txt {

allow all;

log_not_found off;

access_log off;

}

location ~ ^/(data|config|\.ht|db_structure\.xml|README) {

deny all;

}

location / {

# The following 2 rules are only needed with webfinger

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

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

rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;

rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

try_files $uri $uri/ index.php;

}

location ~ ^(.+?\.php)(/.*)?$ {

try_files $1 = 404;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$1;

fastcgi_param PATH_INFO $2;

fastcgi_param HTTPS on;

fastcgi_pass 127.0.0.1:9000;

# Or use unix-socket with 'fastcgi_pass unix:/var/run/php5-fpm.sock;'

}

# Optional: set long EXPIRES header on static assets

location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {

expires 30d;

# Optional: Don't log access to assets

access_log off;

}

}

10 .修改 PHP 传输限制

编辑配置文件 /etc/php5/fpm/php.ini

找到以下三项进行修改:

upload_max_filesize = 16G

post_max_size = 16G

output_buffering = 16384

在文件末尾,添加 apc 缓存配置信息

upload_tmp_dir =

extension = apc.so

apc.enabled = 1

apc.include_once_override = 0

apc.shm_size = 256

重启 nginx service nginx restart

重启 php service php5-fpm restart

11. 配置完成

打开网址,即可看到 owncloud 初始页面

填写任意 用户名,密码 (创建访问账户)

输入在 步骤8 创建的owncloud数据库,数据库名户名及密码

若出现502错误,请将配置文件中的 fastcgi_pass 127.0.0.1:9000;注释掉,改为监听 fastcgi_pass unix:/var/run/php5-fpm.sock;

参考


版权声明:本文为weixin_39832965原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。