Nextcloud на FreeBSD 10.3

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
DeAlexWin
проходил мимо
Сообщения: 5
Зарегистрирован: 2016-10-23 16:22:49

Nextcloud на FreeBSD 10.3

Непрочитанное сообщение DeAlexWin » 2016-10-23 17:46:05

Помогите настроить Nextcloud. При установке никаких проблем не появляется. Но при первом запуске говорит что не может получить доступ к БД, если получает то не работает WebDAV и некоторое содержимое не грузится. HTTPS убрал т.к. это бакенд, и вход на него осуществляется с фронтенда с шифрованием.

VirtualBox (5.1.2 r108956): https://yadi.sk/d/DCfuAcI6xRzau

SSH (192.168.1.12 - DHCP): root | 12345678

Подскажите что не так, моя последовательность действий:

Код: Выделить всё

pkg install nano

-------

pkg install nginx
echo 'nginx_enable="YES"' >> /etc/rc.conf
service nginx start

mkdir -p /var/nginx/{client_body_temp,proxy_temp} && chown -R www:www /var/nginx/
mkdir /usr/local/etc/nginx/conf.d

nano /usr/local/etc/nginx/nginx.conf
load_module /usr/local/libexec/nginx/ngx_mail_module.so;
load_module /usr/local/libexec/nginx/ngx_stream_module.so;

user www;
worker_processes auto;

pid /var/run/nginx.pid;

events {
  use kqueue;
  worker_connections 1024;
  multi_accept on;
}
http {

  # Basic settings
  # ----------

  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  reset_timedout_connection on;
  keepalive_timeout 65;
  keepalive_requests 1000;
  types_hash_max_size 2048;
  server_tokens off;
  send_timeout 30;
  server_names_hash_max_size 4096;

  # Common limits
  # ----------

  client_max_body_size 100m; # upload size
  client_body_buffer_size 1m;
  client_header_timeout 3m;
  client_body_timeout 3m;

  client_body_temp_path /var/nginx/client_body_temp;

  proxy_connect_timeout 5;
  proxy_send_timeout 10;
  proxy_read_timeout 10;

  proxy_buffer_size 4k;
  proxy_buffers 8 16k;
  proxy_busy_buffers_size 64k;
  proxy_temp_file_write_size 64k;

  proxy_temp_path /var/nginx/proxy_temp;

  include mime.types;
  default_type application/octet-stream;

  # Logs format
  # ----------

  log_format main '$remote_addr - $host [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"'
                  'rt=$request_time ut=$upstream_response_time '
                  'cs=$upstream_cache_status';

  log_format cache '$remote_addr - $host [$time_local] "$request" $status '
                   '$body_bytes_sent "$http_referer" '
                   'rt=$request_time ut=$upstream_response_time '
                   'cs=$upstream_cache_status';

  access_log /var/log/nginx/access.log main;
  error_log /var/log/nginx/error.log warn;

  # GZip config
  # ----------

  gzip on;
  gzip_static on;
  gzip_types text/plain text/css text/javascript text/xml application/x-javascript application/javascript application/xml application/json image/x-icon;
  gzip_comp_level 9;
  gzip_buffers 16 8k;
  gzip_proxied expired no-cache no-store private auth;
  gzip_min_length 1000;
  gzip_disable "msie6"
  gzip_vary on;

  # Cache config
  # ----------

  proxy_cache_valid 1m;

  # Virtual host config
  # ----------

  include /usr/local/etc/nginx/conf.d/*.conf;
}

-------

nano /usr/local/etc/nginx/conf.d/nextcloud.conf
server {
  listen 80;
  charset utf-8;

  server_name _;

  access_log /var/log/nginx/nextcloud.access.log;
  error_log /var/log/nginx/nextcloud.error.log;

#  add_header Strict-Transport-Security 'max-age=631138519; includeSubDomains; preload' always;
#  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;
#  add_header X-Content-Security-Policy "allow 'self';";
#  add_header X-WebKit-CSP "allow 'self';";

  root /usr/local/www/;

  location = /robots.txt {
    deny all;
  }

  location / {
    deny all;
    return 404;
  }

  location ^~ /cloud {

    client_max_body_size 10G;
    fastcgi_buffers 64 4K;

    gzip off;

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

    location ~ ^/cloud/(data|config|\.ht|db_structure\.xml|README) {
      deny all;
    }

    location ~* \/cloud\/remote\/(?:.*)$ {
      rewrite ^ /cloud/remote.php last;
    }

    # logo
    location ~* \/cloud\/core\/(?:js\/oc\.js|preview\.png).*$ {
      rewrite ^ /cloud/index.php last;
    }

    # WEB download files
    location ~* \/cloud\/apps\/(?:files\/ajax\/upload\.php).*$ {
      rewrite ^ /cloud/index.php last;
    }

    # Theme Nextcloud
    location ~* \/cloud\/apps\/(?:theming\/styles\.css).*$ {
      rewrite ^ /cloud/index.php last;
    }

    location /cloud {
      rewrite ^/cloud/caldav(.*)$ /cloud/remote.php/caldav$1 redirect;
      rewrite ^/cloud/carddav(.*)$ /cloud/remote.php/carddav$1 redirect;
      rewrite ^/cloud/webdav(.*)$ /cloud/remote.php/webdav$1 redirect;

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

      if ($uri !~* (?:\.(?:css|js|svg|gif|png|html|ttf|woff)$|^\/cloud\/(?:remote|public|cron|status|ocs\/v1|ocs\/v2)\.php)){
        rewrite ^ /cloud/index.php last;
      }
    }

    location ~* ^(?!\/cloud\/remote\.php)(?:.*)\.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf|html|svg|ttf|woff)$ {
      expires 30d;
      access_log off;
    }

    location ~ \.php(?:$|/) {
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param PATH_INFO $fastcgi_path_info;
      fastcgi_pass unix:/var/run/php-fpm.sock;
      fastcgi_param HTTPS off;
      fastcgi_param modHeadersAvailable true;
      fastcgi_param front_controller_active true;
      fastcgi_intercept_errors on;
      fastcgi_request_buffering off;
    }
  }
}

-------

pkg install mariadb101-{server,client}
echo 'mysql_enable="YES"' >> /etc/rc.conf

ls -l /usr/local/share/mysql/my*.cnf
cp /usr/local/share/mysql/my-small.cnf /usr/local/etc/my.cnf

sed -i "" "s/max_allowed_packet = .*/max_allowed_packet = 32M/" /usr/local/etc/my.cnf

service mysql-server start && /usr/local/bin/mysql_secure_installation   // all yes

mysql -u root -p   // 12345678
CREATE DATABASE nextcloud CHARACTER SET utf8;
CREATE USER cloud@localhost IDENTIFIED BY '12345678';
GRANT ALL PRIVILEGES ON nextcloud.* TO cloud@localhost;
FLUSH PRIVILEGES;
QUIT;

service mysql-server restart

-------

cd /usr/local/www
pkg install ca_root_nss && fetch https://download.nextcloud.com/server/releases/nextcloud-10.0.1.zip
unzip nextcloud-10.0.1.zip
mv /usr/local/www/nextcloud/ /usr/local/www/cloud/
rm -f nextcloud-10.0.1.zip

mkdir /usr/local/www/cloud/data && chown -R www:www /usr/local/www/

-------

pkg install redis
echo 'redis_enable="YES"' >> /etc/rc.conf

sed -i "" "s/port 6379/port 0/" /usr/local/etc/redis.conf
sed -i "" "s/# unixsocket \/tmp\/redis.sock/unixsocket \/tmp\/redis.sock/" /usr/local/etc/redis.conf
sed -i "" "s/# unixsocketperm 700/unixsocketperm 777/" /usr/local/etc/redis.conf

service redis start
redis-cli -s /tmp/redis.sock   // проверка работы сокета

-------

pkg search php70
pkg install php70 mod_php70 php70-pdo_mysql php70-mysqli php70-redis php70-gd php70-curl php70-json php70-zip php70-dom php70-xmlwriter php70-xmlreader php70-xml php70-mbstring php70-ctype php70-zlib php70-simplexml php70-hash php70-fileinfo php70-posix php70-iconv php70-filter php70-openssl
echo 'php_fpm_enable="YES"' >> /etc/rc.conf

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini && rehash

sed -i "" "s/memory_limit = .*/memory_limit = 512M/" /usr/local/etc/php.ini
sed -i "" "s/;date.timezone.*/date.timezone = UTC/" /usr/local/etc/php.ini
sed -i "" "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /usr/local/etc/php.ini
sed -i "" "s/upload_max_filesize = .*/upload_max_filesize = 10240M/" /usr/local/etc/php.ini
sed -i "" "s/post_max_size = .*/post_max_size = 10240M/" /usr/local/etc/php.ini

sed -i "" "s/listen = .*/listen = \/var\/run\/php-fpm.sock/" /usr/local/etc/php-fpm.d/www.conf
sed -i "" "s/;listen.owner = www/listen.owner = www/" /usr/local/etc/php-fpm.d/www.conf
sed -i "" "s/;listen.group = www/listen.group = www/" /usr/local/etc/php-fpm.d/www.conf
sed -i "" "s/;listen.mode = 0660/listen.mode = 0660/" /usr/local/etc/php-fpm.d/www.conf

nano /usr/local/etc/php-fpm.d/www.conf   // uncomment
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

php-fpm -t
service php-fpm start

-------

nano /usr/local/www/cloud/config/config.php
<?php
$CONFIG = array(
  'trusted_domains' => array (
    0 => '192.168.1.*',
  ),
  'datadirectory' => '/usr/local/www/cloud/data',
  'dbtype' => 'mysql',
  'defaultapp' => 'files',
  'knowledgebaseenabled' => false,
  'enable_avatars' => false,
  'allow_user_to_change_display_name' => true,
  'remember_login_cookie_lifetime' => 60*60*24*15,
  'session_lifetime' => 60 * 60 * 24,
  'session_keepalive' => true,
  'token_auth_enforced' => false,
  'auth.bruteforce.protection.enabled' => true,
  'trashbin_retention_obligation' => 'auto, 30',
  'versions_retention_obligation' => 'auto',
  'updatechecker' => false,
  'check_for_working_webdav' => true,
  'check_for_working_htaccess' => false,
  'config_is_read_only' => false,
  'memcache.local' => '\OC\Memcache\Redis',
  'memcache.locking' => '\OC\Memcache\Redis',
  'memcache.distributed' => '\OC\Memcache\Redis',
  'redis' => array(
    'host' => '/tmp/redis.sock',
    'port' => 0,
    'timeout' => 0.0,
  ),
);

nano /usr/local/etc/php/ext-30-pdo_mysql.ini
[mysql]
mysql.allow_local_infile=On
mysql.allow_persistent=On
mysql.cache_size=2000
mysql.max_persistent=-1
mysql.max_links=-1
mysql.default_port=
mysql.default_socket=/tmp/mysql.sock
mysql.default_host=
mysql.default_user=
mysql.default_password=
mysql.connect_timeout=60
mysql.trace_mode=Off

-------

service nginx restart && service php-fpm restart

http://192.168.1.*/cloud
Отправлено спустя 1 час 17 минут 13 секунд:
Изображение
Последний раз редактировалось f_andrey 2016-10-24 17:58:06, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Amaka
мл. сержант
Сообщения: 78
Зарегистрирован: 2016-02-03 12:05:11
Откуда: Москва

Nextcloud на FreeBSD 10.3

Непрочитанное сообщение Amaka » 2016-10-24 16:50:24

Добрый день!
У меня тоже были проблемы с nextcloud. Ставил на apache + PHP 5.6 + mysql 5.5.
Ставить нужно nextcloud на sqlite. Без всяких настроек типа:

Код: Выделить всё

  'memcache.local' => '\OC\Memcache\Redis',
  'memcache.locking' => '\OC\Memcache\Redis',
  'memcache.distributed' => '\OC\Memcache\Redis',
  ...
   'check_for_working_webdav' => true,
   
Вот это тоже слишком:

Код: Выделить всё

sed -i "" "s/post_max_size = .*/post_max_size = 10240M/" /usr/local/etc/php.ini
Достаточно 2G для тестирования на первом этапе.
По хорошему, где-то было, сейчас не помню. Процесс настройки заключается в создании с нуля файла config.php самим инстарятором.
Т.е. тебе нужно сделать бекам твоего (неработающего) файла config.php. Сам файл удалить. После этого зайти браузером по адресу http://192.168.1.*/cloud. Если все нормально, то увидишь окно конфигурирования и сделаешь установку на базу sqlite. Иначе не заработает. Проверено.
У тебя корень в папке: /usr/local/www/cloud/. Т.е. тебе обязательно нужно выставить права на папку и подкаталоги скриптом, который рекомендуют в nextcloud. Смотри их доку с примером скрипта в низу страницы: Setting Strong Directory Permissions.
Потом, когда увидишь, нормальное завершение инсталляции, попробуешь работать админом и выполнишь все рекомендации по конфигурированию. Если дошел до этого этапа, тебе повезло. Можешь конвертировать бакенд sqlite в базу mysql штатным конвертером nextcloud и оптимизировать производительность.
Всем удачи!

DeAlexWin
проходил мимо
Сообщения: 5
Зарегистрирован: 2016-10-23 16:22:49

Nextcloud на FreeBSD 10.3

Непрочитанное сообщение DeAlexWin » 2016-10-24 20:10:57

Nextcloud ставили на FreeBSD?
Просто на Debian у меня все заработало без проблем.
config.php он и так создается через web-gui, но есть возможность правки руками.
Разве прав пользователя www не достаточно?

Аватара пользователя
Amaka
мл. сержант
Сообщения: 78
Зарегистрирован: 2016-02-03 12:05:11
Откуда: Москва

Nextcloud на FreeBSD 10.3

Непрочитанное сообщение Amaka » 2016-10-25 10:54:47

DeAlexWin писал(а):Nextcloud ставили на FreeBSD?...
Да. FreeBSD 10.3 + Apache 2.4 + PHP 5.6 + MySQL 5.5 + Memcached + Redis.
...Разве прав пользователя www не достаточно?..
Недостаточно. Читай документацию на сайте Nextcloud.
Кстати счастья я не получил. По идее с Nextcloud должны нормально работать пользователеи через разные браузеры. Заявлена нормальная работы с IE 9+, Google Chrome 18+, Mozzila FireFox 14+.
Я проводил тестирование на IE11, Google Chrome 54, Mozzila FireFox 49.
Наихудшая совместимость с IE 11.
  1. При создании шары не подсвечивает подсказку для активного (выбранного) поля формы.
  2. Не дает загружать (upload) файлы с расширениями: RAR, ISO.
  3. Не полное отображение пользовательских данных на верхней панели.
C Google Chrome 54 и Mozzila FireFox 49 особых проблем пока не заметил.
Всем удачи!

Аватара пользователя
Amaka
мл. сержант
Сообщения: 78
Зарегистрирован: 2016-02-03 12:05:11
Откуда: Москва

Nextcloud на FreeBSD 10.3

Непрочитанное сообщение Amaka » 2016-10-26 13:27:27

Amaka писал(а): Наихудшая совместимость с IE 11.
  1. При создании шары не подсвечивает подсказку для активного (выбранного) поля формы.
  2. Не дает загружать (upload) файлы с расширениями: RAR, ISO.
  3. Не полное отображение пользовательских данных на верхней панели.
...
Удалось решить проблему с невозможностью загружать файлы RAR, ISO и т.д. Добавил в конфиге апача (/etc/apache24/httpd.conf) описание этих типов:

Код: Выделить всё

AddType application/x-iso9660-image .iso
AddType application/x-rar-compressed .rar
AddType text/vbscript .vbs
AddType application/java-archive .jar
:Yahoo!:
Всем удачи!

DeAlexWin
проходил мимо
Сообщения: 5
Зарегистрирован: 2016-10-23 16:22:49

Nextcloud на FreeBSD 10.3

Непрочитанное сообщение DeAlexWin » 2016-10-26 19:19:43

Amaka писал(а): Удалось решить проблему с невозможностью загружать файлы RAR, ISO и т.д. Добавил в конфиге апача (/etc/apache24/httpd.conf) описание этих типов:

Код: Выделить всё

AddType application/x-iso9660-image .iso
AddType application/x-rar-compressed .rar
AddType text/vbscript .vbs
AddType application/java-archive .jar
Если не сложно покажите как apache сконфигурировали (httpd и сам сайт).
Если не сложно, подскажите, как в апаче сделать доступ к nextcloud через поддиректорию: http://site.ru/cloud/index.php

Возможно, подскажете как сделать proxy_pass в nginx'е на этот апач?

DeAlexWin
проходил мимо
Сообщения: 5
Зарегистрирован: 2016-10-23 16:22:49

Nextcloud на FreeBSD 10.3

Непрочитанное сообщение DeAlexWin » 2016-10-27 8:24:44

вроде, настроил, apache работает куда стабильнее и правильнее с NC, чем nginx. Теперь остались только вопросы:
1. как убрать index.php.
подставил в config.php: 'htaccess.RewriteBase' => '/cloud',
модули mod_env и mod_rewrite активированы, но index.php не пропал.
2. будет ли это работать все на фронтенде nginx c такой конфигурацией:

Код: Выделить всё

upstream http_cloud {
  server 192.168.1.***:80;  
}

server {

  # Настройки облака
  
  location ~* /cloud {
    proxy_pass http://http_cloud;
    proxy_redirect off;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_send_lowat 12000;
    proxy_buffer_size 4k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
  }
}
Отправлено спустя 26 минут 4 секунды:
с index.php добил. стоило запустить команду:

Код: Выделить всё

cd /usr/local/www/apache24/data/cloud && chmod +x occ && su -m www -c "./occ maintenance:update:htaccess"

DeAlexWin
проходил мимо
Сообщения: 5
Зарегистрирован: 2016-10-23 16:22:49

Nextcloud на FreeBSD 10.3

Непрочитанное сообщение DeAlexWin » 2016-10-27 12:36:04

Добил почти все, в хроме только через прокси выходит:

Код: Выделить всё

DevTools failed to parse SourceMap: https://*****.ru/cloud/core/vendor/jquery/dist/jquery.min.map