如何在FreeBSD 10.2上使用Nginx和SSL安装OwnCloud 8

时间:2020-03-05 15:28:05  来源:igfitidea点击:

OwnCloud是用于创建托管服务的应用程序客户端-服务器套件,它允许我们创建自己的云存储,并允许我们与其他用户和设备共享数据,联系人,日历。
OwnCloud是一个开源项目,它为我们提供了一种简单的方法来同步和共享数据中心中托管的数据。
它具有美观且用户友好的前端设计,从而使用户易于浏览和访问数据,然后与其他用户共享。
OwnCloud在线安全企业文件同步和文件共享。

在本教程中,我将逐步指导我们安装owncloud 8,在FreeBSD 10.2上,我们将Nginx(engine-X)用作Web服务器,将php-fpm和mariaDB用作数据库系统。

步骤1)安装Nginx php-fpm和MariaDB

在上一个教程中,我们讨论了有关安装FEMP(Nginx,MariaDB和PHP-FPM)的问题,但是在本教程中,我们将简要讨论。

我们将使用pkg命令安装FEMP。

安装Nginx:

pkg install nginx

安装MariaDB:

pkg install mariadb100-server-10.0.21 mariadb100-client-10.0.21

安装php-fpm和owncloud所需的所有软件包:

pkg install php56-extensions php56-mysql php56-pdo_mysql php56-zlib php56-openssl php56-bcmath php56-gmp php56-gd php56-curl php56-ldap php56-exif php56-fileinfo php56-mbstring php56-gmp php56-bz2 php56-zip php56-mcrypt pecl-APCu pecl-intl

步骤2)配置Nginx php-fpm和MariaDB

配置Nginx。

将nginx保留为默认配置。
在这一步中,我们只需要使用sysrc命令将nginx添加到启动中,然后启动nginx即可:

sysrc nginx_enable=yes
service nginx start

并尝试使用浏览器访问它。

配置MariaDB

复制mariadb配置并将其添加到启动中。

cp /usr/local/share/mysql/my-medium.cnf /usr/local/etc/my.cnf
sysrc mysql_enable=yes

启动mariadb:

service mysql-server start

接下来,为mariadb配置密码:

mysql_secure_installation
Enter current password for root (enter for none):
#Just press Enter here
Change the root password? [Y/n] Y
#Type your password for mariadb here
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

并尝试使用以下命令登录到mariadb/mysql服务器:

mysql -u root -p
YOUR PASSWORD

配置PHP-FPM

更改默认值以监听Unix套接字并为其设置权限,然后将php-fpm配置为在用户“ www”下运行。

nano /usr/local/etc/php-fpm.conf

更改如下行:

listen = /var/run/php-fpm.sock
...
...
listen.owner = www
listen.group = www
listen.mode = 0660

现在配置和编辑php.ini文件:

cd /usr/local/etc/
cp php.ini-production php.ini
nano php.ini

将cgi.fix_pathinfo行值更改为0。

cgi.fix_pathinfo=0

最后将php-fpm添加到启动时间并启动它:

sysrc php_fpm_enable=yes
service php-fpm start

步骤3)为OwnCloud生成SSL证书

在/usr/local/etc/nginx /中创建新目录“ cert”,并生成SSL证书:

mkdir -p /usr/local/etc/nginx/cert/
cd /usr/local/etc/nginx/cert/
openssl req -new -x509 -days 365 -nodes -out /usr/local/etc/nginx/cert/owncloud.crt -keyout /usr/local/etc/nginx/cert/owncloud.key

接下来,将证书权限更改为600:

chmod 600 *

步骤4)为OwnCloud创建数据库

要为owncloud创建数据库,必须使用已设置的密码登录mysql/mariadb服务器。

mysql -u root -p
YOUR PASSWORD

创建一个名为“ my_ownclouddb”的新数据库:

create database my_ownclouddb;

并为“ my_ownclouddb”数据库创建新用户“ myownclouduser”:

create user myownclouduser@localhost identified by 'myownclouduser';

接下来,授予该用户已创建到“ my_ownclouddb”数据库的权限:

grant all privileges on my_ownclouddb.* to myownclouduser@localhost identified by 'myownclouduser';
flush privileges;

步骤5)安装和配置OwnCloud

转到tmp目录,并使用fetch命令从官方站点下载owncloud。

我在这里使用的是OwnCloud 8.1.3最新的稳定版本。

cd /tmp/
fetch https://download.owncloud.org/community/owncloud-8.1.3.tar.bz2

提取owncloud,并将owncloud目录移动到“/usr/local/www /”。

tar -xzvf owncloud-8.1.3.tar.bz2
mv owncloud//usr/local/www/

现在,在owncloud目录中创建新目录“ data”,并将文件和目录的所有权更改为运行nginx的“ www”用户。

cd /usr/local/www/
mkdir -p /usr/local/www/owncloud/data
chown -R www:www owncloud/

接下来,为owncloud配置虚拟主机。

移至nginx配置目录,并将默认的nginx配置文件nginx.conf重命名为nginx.conf.original。

cd /usr/local/etc/nginx/
mv nginx.conf nginx.conf.original

并为owncloud创建新的配置文件:

nano nginx.conf

粘贴以下代码:

worker_processes 2;
events {
worker_connections  1024;
}
http {
include      mime.types;
default_type  application/octet-stream;
sendfile        off;
keepalive_timeout  65;
gzip off;
server {
listen 80;
server_name 192.168.1.114;
#Force to the https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name 192.168.1.114; #YourIP or domain
#SSL Certificate you created
ssl_certificate /usr/local/etc/nginx/cert/owncloud.crt;
ssl_certificate_key /usr/local/etc/nginx/cert/owncloud.key;
# 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;
root /usr/local/www/owncloud;
location = /robots.txt { allow all; access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }
location ^~/{
index index.php;
try_files $uri $uri//index.php$is_args$args;
fastcgi_intercept_errors on;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
client_max_body_size 512M;
fastcgi_buffers 64 4K;
location ~ ^/(?:\.|data|config|db_structure\.xml|README) {
deny all;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
include fastcgi_params;
fastcgi_param modHeadersAvailable true;
fastcgi_param MOD_X_ACCEL_REDIRECT_ENABLED on;
}
location ~* \.(?:jpg|gif|ico|png|css|js|svg)${
expires 30d;
add_header Cache-Control public;
access_log off;
}
location ^~ /data {
internal;
alias /mnt/files;
}
}
}
}

保存并退出。

接下来,使用命令“ nginx -t”测试nginx配置,如果没有错误,请重新启动nginx和php-fpm:

nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
service php-fpm restart
service nginx restart

使用浏览器访问服务器IP或者域名:

http://owncloud.local将强制使用https,因此请确认ssl证书。

并为owncloud创建管理员用户,并填写用户名和密码。
然后填写数据库配置,并用上一步中配置的数据库填充它。

然后点击“完成设置”。

步骤6)测试

访问http://192.168.1.114/,然后使用已配置的用户名和密码登录。

因此,我们已经在具有SSL和Nginx Web服务器的FreeBSD 10.2上成功安装并配置了owncloud 8.1.3.