在Debian上使用Nginx,MariaDB和PHP7設置OwnCloud 9服務器

在本教程中,我將向您展示如何使用Nginx,MariaDB和PHP7在Debian 8 VPS上設置ownCloud個人雲存儲。 安裝過程與在Debian 8上安裝WordPress非常相似。該教程在僅128MB內存的VPS上進行了演示,並且可以毫無問題地運行ownCloud。 我假設您已經在Debian 8上配置了LEMP堆棧。如果尚未配置,請查看下面的簡單指南,以了解如何做。

如何在Debian 8 Jessie(Nginx,MariaDB,PHP7)上安裝LEMP Stack

步驟1:在Debian 8 VPS上安裝ownCloud 9服務器

首先,使用wget將ownCloud簽名密鑰提取到您的Debian 8 VPS上。 -nv 代表不詳細。

wget -nv https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O Release.key

然後使用 apt-key 將此簽名密鑰添加到Debian 8。

sudo apt-key add - < Release.key

接下來,運行此命令以添加官方的ownCloud存儲庫。

sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list"

之後,更新本地軟件包索引並安裝 owncloud-files

sudo apt-get update;sudo apt-get install owncloud-files

您可以安裝兩個軟件包: owncloudowncloud-files。 區別在於,如果您安裝owncloud,則它將自動安裝apache2,mysql和php5。 因為我們已經在Debian 8 VPS上配置了Nginx,MariaDB和PHP7堆棧,所以我們只需要安裝獨立的 owncloud-files

OwnCloud文件存儲在 /var/www/owncloud 目錄。

步驟2:為ownCloud創建數據庫和用戶

登錄到MariaDB數據庫服務器:

mysql -u root -p

然後為owncloud創建一個數據庫。

create database owncloud;

在本地主機上創建數據庫用戶。

create user [email protected] identified by 'password';

授予該用戶對owncloud數據庫的所有特權。

grant all privileges on owncloud.* to [email protected] identified by 'password';

刷新特權並退出。

flush privileges;

exit;

步驟3:在MariaDB中啟用二進制日誌記錄

打開 my.cnf 文件。 您的my.cnf文件可能位於 /etc/mysql/my.cnf

sudo nano /etc/my.cnf

在下面添加以下三行 [mysqld] 部分。

log-bin        = /var/log/mysql/mariadb-bin
log-bin-index  = /var/log/mysql/mariadb-bin.index
binlog_format  = mixed

二進制日誌的格式必須混合。 保存並關閉文件。 然後重新加載MariaDB服務。

sudo service mysql reload         or      sudo systemctl reload mysql

步驟4:從“讓我們加密”獲取免費的SSL證書

首先從Github安裝Let’s Encrypt客戶端。

sudo apt-get install git

git clone https://github.com/letsencrypt/letsencrypt

現在cd進入letsencypt目錄。

cd letsencrypt/

停止Nginx進程。

sudo service nginx stop       or         sudo systemctl stop nginx

使用以下命令為您的域名獲取SSL證書:

./letsencrypt-auto certonly --standalone --email <your-email-address> --agree-tos -d owncloud.your-domain.com

注意:我假設您正在使用諸如owncloud.your-domain.com之類的域名來訪問ownCloud Web界面。 在運行上述命令之前,還需要將域名指向DNS中的服務器IP。

certonly表示客戶端獲得SSL證書,但不會安裝它。 由於Let’s Encrypt仍處於beta中,並且不支持Nginx的自動SSL配置,因此我們必須手動配置(安裝)SSL。

您的SSL證書將保存在 /etc/letsencrypt/live/<your-domain.com> 目錄。

步驟5:為owncloud創建一個Nginx配置文件

sudo nano /etc/nginx/conf.d/owncloud.conf

將以下文本放入文件中。

upstream php-handler {
 #server 127.0.0.1:9000;
 server unix:/run/php/php7.0-fpm.sock;
 }

server {
 listen 80;
 server_name owncloud.your-domain.com;
 # enforce https
 return 301 https://$server_name$request_uri;
 }

server {
 listen 443 ssl;
 server_name owncloud.your-domain.com;

 ssl_certificate /etc/letsencrypt/live/owncloud.your-domain.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/owncloud.your-domain.com/privkey.pem;

# Add headers to serve security related headers
 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;

 # Path to the root of your installation
 root /var/www/owncloud/;
 # set max upload size
 client_max_body_size 10G;
 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;

 index index.php;
 error_page 403 /core/templates/403.php;
 error_page 404 /core/templates/404.php;

 rewrite ^/.well-known/carddav /remote.php/carddav/ permanent;
 rewrite ^/.well-known/caldav /remote.php/caldav/ permanent;

 # 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 = /robots.txt {
 allow all;
 log_not_found off;
 access_log off;
 }

location ~ ^/(build|tests|config|lib|3rdparty|templates|data)/ {
   deny all;
}

location ~ ^/(?:.|autotest|occ|issue|indie|db_|console) {
  deny all;
}

location / {
  rewrite ^/remote/(.*) /remote.php last;
  rewrite ^(/core/doc/[^/]+/)$ $1/index.html;
  try_files $uri $uri/ =404;
}

 location ~ .php(?:$|/) {
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param HTTPS on;
    fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
    fastcgi_pass php-handler;
    fastcgi_intercept_errors on;
 }

 # Adding the cache control header for js and css files
 # Make sure it is BELOW the location ~ .php(?:$|/) { block
 location ~* .(?:css|js)$ {
 add_header Cache-Control "public, max-age=7200";
 # Add headers to serve security related headers
 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;
 # Optional: Don't log access to assets
    access_log off;
 }

 # Optional: Don't log access to other assets
 location ~* .(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
   access_log off;
 }
}

將紅色文本替換為您的實際數據。 此配置文件假定您的php-fpm進程在Unix套接字上偵聽。 如果您的php-fpm偵聽127.0.0.1:9000,則需要更改上游部分。 您也可以在此配置中為SSL啟用http2。 請注意,直到1.9.5版,Nginx才支持http2。 查看以下教程,了解如何在Debian 8服務器上使用最新的Nginx版本啟用HTTP2。

如何在Debian 8服務器上使用最新的Nginx版本啟用HTTP2

保存此配置文件後,安裝所需的php7擴展名。

sudo apt install php7.0-common php7.0-gd php7.0-json php7.0-curl  php7.0-zip php7.0-xml php7.0-mbstring

現在重新啟動Nginx進程。

sudo service nginx restart      or       sudo systemctl restart nginx

步驟6:設置Web界面

在瀏覽器地址欄中,鍵入

owncloud.your-domain.com

您需要創建一個管理帳戶,並將ownCloud服務與MariaDB數據庫連接。

完成後,您將進入owncloud的Web界面。 恭喜! 現在,您可以開始使用owncloud作為私有雲存儲。

使用Nginx,MariaDB和PHP7設置OwnCloud 9服務器

如您所見,安裝ownCloud的過程與安裝WordPress和Drupal的過程非常相似。

總是歡迎提出意見,問題或建議。 如果您發現這篇文章有用, 請在社交媒體上與您的朋友分享! 請繼續關注更多Linux教程。

Sidebar