在 Ubuntu 1陆.0四 上设置 LEMP 意况之图像和文字向导

使用NextCloud配置私有云,nextcloud私有云

导读 LEMP 是个缩写,代表一组软件包(注解 ① L:Linux OS,E:Nginx 网络服务器,M:MySQL/MariaDB 数据库和 P:PHP 服务端动态编程语言),它被用来搭建动态的网络应用和网页。这篇教程会教你怎么在 Ubuntu 16.04 的服务器上安装 LEMP (Nginx 和 MariaDB 以及 PHP7)。
导读 LEMP 是个缩写,代表一组软件包(注解 ① L:Linux OS,E:Nginx 网络服务器,M:MySQL/MariaDB 数据库和 P:PHP 服务端动态编程语言),它被用来搭建动态的网络应用和网页。这篇教程会教你怎么在 Ubuntu 16.04 的服务器上安装 LEMP (Nginx 和 MariaDB 以及 PHP7)。

利用NextCloud配置私有云

  • 运用NextCloud配置私有云
    • 安装MariaDB
    • 为NextCloud创设数据库和用户
    • 安装PHP和相关模块
    • 下载NextCloud
    • 安装配置Nginx
    • 产生安装

NextCloud () 是开源云盘服务器,此处利用 LEMP 搭建
NextCloud 运维条件-玛丽亚DB, PHP-FPM 和 Nginx (Ubuntu 1陆.04)

步骤 1:安装 Nginx 服务器

步骤 1:安装 Nginx 服务器

1. 安装MariaDB

Ubuntu 16.04 安装 MariaDB

革新进步系统:

$ sudo apt update
$ sudo apt upgrade

安装MariaDB:

$ sudo apt install mariadb-server

启动MariaDB服务:

$ sudo systemctl start mysql

翻看境况:

$ sudo systemctl status mysql

举行伊始化安全脚本,暗许root密码为空,设置root密码和其他选项:

$ sudo mysql_secure_installation


Ubuntu 16.04 安装 Nginx


Ubuntu 16.04 安装 Nginx

二. 为NextCloud创设数据库和用户

创立数据库nextcloud;用户名nextcloud,密码XXXXXXXX

$ sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE nextcloud;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'XXXXXXXX';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Nginx 是叁个行当革命的、财富优化的 Web
服务器程序,用来向因特网络的访客体现网页。大家从 Nginx
服务器的装置起来介绍,使用 apt 命令 从 Ubuntu 的官方软件酒馆中收获 Nginx
程序。

Nginx 是八个先进的、能源优化的 Web
服务器程序,用来向因特网络的访客体现网页。大家从 Nginx
服务器的安装起来介绍,使用 apt 命令 从 Ubuntu 的法定软件旅社中拿走 Nginx
程序。

三. 装置PHP和有关模块

$ sudo apt-get -y install php-fpm php-cli php-json php-curl php-imap php-gd php-mysql php-xml php-zip php-intl php-mcrypt php-imagick php-mbstring

配置PHP:

$ sudo sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/7.0/fpm/php.ini
$ sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.0/fpm/php.ini
$ sudo sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=1/" /etc/php/7.0/fpm/php.ini
$ sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 200M/" /etc/php/7.0/fpm/php.ini
$ sudo sed -i "s/post_max_size = .*/post_max_size = 200M/" /etc/php/7.0/fpm/php.ini

重启PHP-FPM:

$ sudo systemctl restart php7.0-fpm
$ sudo apt-get install nginx
$ sudo apt-get install nginx

4. 下载NextCloud

$ cd /tmp
$ wget https://download.nextcloud.com/server/releases/nextcloud-12.0.0.zip

解压到 /var/www/ 目录并更改权限:

$ unzip nextcloud-12.0.0.zip
$ sudo mkdir /var/www/
$ sudo mv nextcloud /var/www/
$ sudo chown -R www-data: /var/www/nextcloud

图片 1

图片 2

5. 设置配备Nginx

$ sudo apt-get install nginx nginx-extras

生成自签字证书:

$ sudo mkdir -p /etc/nginx/ssl
$ cd /etc/nginx/ssl
$ sudo openssl genrsa -des3 -passout pass:x -out nextcloud.pass.key 2048
$ sudo openssl rsa -passin pass:x -in nextcloud.pass.key -out nextcloud.key
$ sudo rm nextcloud.pass.key
$ sudo openssl req -new -key nextcloud.key -out nextcloud.csr
$ sudo openssl x509 -req -days 365 -in nextcloud.csr -signkey nextcloud.key -out nextcloud.crt

也可利用无偿的 let encrypt,创设Nginx server block文件:

$ sudo vim /etc/nginx/sites-available/nextcloud

server {
    listen 80;
    server_name pan.csxiaoyao.com;
    return 301 https: //$server_name$request_uri;
}
server {
    listen 443 ssl http2;
    server_name pan.csxiaoyao.com;
    root /
    var / www / nextcloud;
    ssl on;
    ssl_certificate / etc / nginx / ssl / nextcloud.crt;
    ssl_certificate_key / etc / nginx / ssl / nextcloud.key;
    ssl_session_timeout 5m;
    ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    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;
    access_log /
    var / log / nginx / nextcloud.access.log;
    error_log /
    var / log / nginx / nextcloud.error.log;
    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }
    location = /.well - known / carddav {
        return 301 $scheme: //$host/remote.php/dav; 
    }
    location = /.well-known/caldav {
        return 301 $scheme: //$host/remote.php/dav; 
    }
    client_max_body_size 512M;
    fastcgi_buffers 64 4K;
    gzip 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 unix: /var/run / php / php7.0 - fpm.sock;
        fastcgi_intercept_errors on;
        fastcgi_request_buffering off;
    }
    location~ ^ /(?:updater|ocs-provider)(?:$|/) {
        try_files $uri / = 404;
        index index.php;
    }
    location~ * .( ? : css | js) $ {
        try_files $uri / index.php$uri$is_args$args;
        add_header Cache - Control "public, max-age=7200";
        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;
        access_log off;
    }
    location ~ /.ht {
        deny all;
    }
}

创造链接:

$ sudo ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/nextcloud

测试Nginx配置文件:

$ sudo nginx -t

重启nginx:

$ sudo systemctl restart nginx

自己商讨Nginx 网络端口连接和情景

自己商讨Nginx 网络端口连接和景观

陆. 完成安装

浏览器访问


0


0

   

然后输入 “netstat”和 “systemctl” 命令,确认 Nginx 进程已经起步并且绑定在
80 端口。

下一场输入 “netstat”和 “systemctl” 命令,确认 Nginx 进度壹度运营并且绑定在
80 端口。

翻看评论

利用NextCloud配置私有云 利用NextCloud配置私有云 安装玛丽亚DB
为NextCloud创制数据库和用户 安装PHP和相关…

$ netstat -tlpn
$ netstat -tlpn

图片 3

图片 4

$ sudo systemctl status nginx.service
$ sudo systemctl status nginx.service

图片 5

图片 6

验证
Nginx 网页

验证
Nginx 网页

当您认可劳动进程1度起步了,你能够张开1个浏览器,使用 HTTP
协议访问你的服务器 IP 地址或然域名,浏览 Nginx 的暗许网页。

当您确认劳动进程已经起步了,你可以展开1个浏览器,使用 HTTP
协议访问你的服务器 IP 地址或许域名,浏览 Nginx 的默许网页。

http://IP-Address
http://IP-Address

图片 7

图片 8

步骤 2:启用 Nginx HTTP/2.0 协议

步骤 2:启用 Nginx HTTP/2.0 协议

备份
Nginx 的网址配置文件

备份
Nginx 的网址配置文件

对 HTTP/贰.0 协议的扶助默许包含在 Ubuntu 16.04 最新发行版的 Nginx
2进制文件中了,它只可以通过 SSL 连接并且保险加载网页的快慢有光辉提高。

对 HTTP/2.0 协议的支撑私下认可包括在 Ubuntu 16.04 最新发行版的 Nginx
2进制文件中了,它不得不通过 SSL 连接并且保证加载网页的进度有光辉升高。

要启用Nginx 的这一个体协会议,首先找到 Nginx
提供的网址配置文件,输入下边那一个命令备份配置文件。

要启用Nginx 的那个体协会议,首先找到 Nginx
提供的网址配置文件,输入上边那么些命令备份配置文件。

$ cd /etc/nginx/sites-available/
$ sudo mv default default.backup
$ cd /etc/nginx/sites-available/
$ sudo mv default default.backup

图片 9

图片 10

启用
Nginx HTTP 2 协议

启用
Nginx HTTP 2 协议

下一场,用文件编辑器新建叁个默认文件,输入以下内容:

下一场,用文件编辑器新建1个私下认可文件,输入以下内容:

server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
root /var/www/html;
index index.html index.htm index.php;
server_name 192.168.1.13;
location / {
try_files $uri $uri/ =404;
}
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 180m;
resolver 8.8.8.8 8.8.4.4;
add_header Strict-Transport-Security "max-age=31536000;
#includeSubDomains" always;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
server {
listen 80;
listen [::]:80;
server_name 192.168.1.13;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
root /var/www/html;
index index.html index.htm index.php;
server_name 192.168.1.13;
location / {
try_files $uri $uri/ =404;
}
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 180m;
resolver 8.8.8.8 8.8.4.4;
add_header Strict-Transport-Security "max-age=31536000;
#includeSubDomains" always;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
server {
listen 80;
listen [::]:80;
server_name 192.168.1.13;
return 301 https://$server_name$request_uri;
}

图片 11
地点的配备部分向具有的 SSL 监听指令中增添 http2 参数来启用 “HTTP/2.0″。

图片 12
上边的陈设部分向装有的 SSL 监听指令中增多 http二 参数来启用 “HTTP/贰.0″。

上述增加到服务器配置的终极一段,是用来将具备非 SSL 的流量重定向到
SSL/TLS 暗许主机。然后用你主机的 IP 地址只怕 DNS 记录(最棒用 FQDN
名称)替换掉 “server_name” 选项的参数。

上述增添到服务器配置的末尾一段,是用来将具备非 SSL 的流量重定向到
SSL/TLS 暗许主机。然后用你主机的 IP 地址也许 DNS 记录(最棒用 FQDN
名称)替换掉 “server_name” 选项的参数。

生成
Nginx 的 SSL 证书和密钥

生成
Nginx 的 SSL 证书和密钥

当你根据上述步骤编辑完 Nginx
的暗许配置文件从此,用上边那一个命令来变化、查看 SSL 证书和密钥。

当您遵照以上步骤编辑完 Nginx
的暗中同意配置文件从此,用下边这几个命令来扭转、查看 SSL 证书和密钥。

用你自定义的设置完毕证书的创建,注意 Common Name 设置成和你的 DNS FQDN
记录恐怕服务器 IP 地址相匹配。

用你自定义的装置达成证书的创造,注意 Common Name 设置成和您的 DNS FQDN
记录或许服务器 IP 地址相匹配。

$ sudo mkdir /etc/nginx/ssl
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
$ ls /etc/nginx/ssl/
$ sudo mkdir /etc/nginx/ssl
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
$ ls /etc/nginx/ssl/

图片 13

图片 14