Jump to content
edm

★Ускоряем работу owncloud (и установка owncloud с нуля)★

Recommended Posts

Столкнулся с проблемой, когда мощности Giga 2 не хватает для быстрой работы owncloud (при обработке картинок).

Кто торопиться, то само ускорение в понкуте 8. и 9.

 

Начинаем. [ Если возниклнут проблемы, сообщите ]

 

1. Устанавливаем debian на роутер и настраиваем на свой вкус (полная-установка-entware-3x-совместно-с-debian-8)

 

2. Устанавливаем openssl, php5, nginx, apache2, mysql, adminer, phpmyadmin (не объязательно)

 

3. Советую использовать версию owncloud 9+ потому, что в веб-версии будет досупна много новых полезных фич + Русская локал тоже. Но можно и стандартную версию owncloud 7 из debian.

 

4. Установка owncloud-9.1.4-2.1 (если хотите owncloud-7, то перейдите к пункту 5.)

Через ssh-терминал debian'a добавляем ключи к репозитории новой версии owncloud 9

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

# apt-key add - < Release.key

Адрес репозитории

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

И объязательно после этого делаем

# apt-get update

 

5. Установка owncloud

# apt-get install owncloud

 

6. Файлы конфигурации apache2 и nginx и тестовый httpS сертефикат.

Эти файлы 

192.168.1.1.crt

192.168.1.1.key

поместите в новую папку

/var/сертификат/

 

testCA.crt - а этот Корневой файл Сертификации можно установить на телефон или на комп, чтоб не выдавал предупреждение в браузере.

[предупреждение] чтобы было безопасно, нужно самым создавать сертификат через openssl. Выше прилагающиеся сертификаты для ознакомления.

 

nginx будет работать на порту :443. чтоб включить и :80 (раскомментируйте строки)

 /etc/nginx/sites-available/default

Скрытый текст

#обычное соединение http на порту 80, то есть http://192.168.1.1
#если веб-интерфейс кинетика работает на порту 777, то можно раскомментировать эти 11 строк
#server {
#        listen 80 default_server;
#        listen [::]:80 default_server ipv6only=on;
#        root /var/www/html;
#        #index index.php index.html;
#        server_name 192.168.1.1;
#
#        #перенаправление на httpS
#        rewrite ^(.*) https://$server_name$1 permanent;
#
#}

#безопасное соединение httpS, то есть https://192.168.1.1
server {
        listen 443 default_server;
        listen [::]:443 default_server ipv6only=on;
        root /var/www/html;
        index index.php index.html;
        server_name 192.168.1.1;

     ssl on;
     #ssl_certificate /home/сертификат/server.pem;
     #ssl_certificate_key /home/сертификат/server.key;
     #ssl_dhparam /home/сертификат/dhparam.pem;
     ssl_certificate      /var/сертификат/192.168.1.1.crt;
     ssl_certificate_key  /var/сертификат/192.168.1.1.key;

     ssl_session_timeout 5m;

     ##ssl_protocols SSLv3 TLSv1;
     #ssl_protocols TLSv1.1 TLSv1.2; #для собременных браузеров
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #и для старых браузеров, TLSv1 содержит уязвимость. 

     ##ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK;
     ssl_prefer_server_ciphers on;

     add_header Strict-Transport-Security max-age=31536000;


        # максимальный размер загружаемого файла
        client_max_body_size 2012M;

        #adminer
        location ~* ^/adminer/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { 
           root /usr/share/adminer/; 
        }

        #статика owncloud
        location ~* ^/owncloud/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt|apk|mp4|mp3|sh|gz|zip|tar|rar|bz|lz|win|obb)[^?])$ {
          root /var/www/owncloud;
          add_header Cache-Control max-age=864000;
        }

      # Разруливаем статику и динамку
       location ~* \.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt|apk|mp4|mp3|sh|gz|zip|tar|rar|bz|lz|win|obb)[^?]$ {
          root /var/www/html;
          add_header Cache-Control max-age=864000;
       }
 


        # запрет на доступ к .htaccess
        location ~ /\.ht {
                deny all;
        }


        # передача запроса апачу
        location /  {
                proxy_pass http://127.0.0.1:81; # Порт на котором висит Apache
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-for $remote_addr;
                proxy_set_header Host $host;
                proxy_connect_timeout 300;
                proxy_send_timeout 300;
                proxy_read_timeout 300;
                proxy_redirect off;
                proxy_set_header Connection close;
                proxy_pass_header Content-Type;
                proxy_pass_header Content-Disposition;
                proxy_pass_header Content-Length;
        }
}

 

apache будет работать на порту :81 (/etc/apache2/sites-available/000-default.conf)

Скрытый текст

<VirtualHost localhost:81>

	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/html/>                                     
Options Indexes FollowSymLinks                      
AllowOverride All                                  
Require all granted                                 
</Directory>
                                                            
<Directory /var/www/html/owncloud/>                            
    Options +FollowSymLinks                                 
    AllowOverride All                                       
    <IfVersion < 2.3>                                       
        order allow,deny                                    
        allow from all                                      
    </IfVersion>                                            
    <IfVersion >= 2.3>                                      
        Require all granted                                 
    </IfVersion>                                            
</Directory>                                                
                                                            



   #чтоб работал adminer
   include /etc/adminer/apache.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

 

и не забудьте поменять порт в файле /etc/apache2/ports.conf


#Listen 80
Listen localhost:81

<IfModule ssl_module>
	Listen 443
</IfModule>

<IfModule mod_gnutls.c>
	Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

 

делаем рестарт

# service apache2 restart
# service nginx restart

 

7. Посте установки открывает в браузере адрес, входим через "root" и добавляем нового пользователя в mysql

https://192.168.1.1/adminer/

или 

https://192.168.1.1/phpmyadmin/

 

Создаем через SQL-запрос новую базу данных с названием "owncloud", нового пользователя "owncloud" и пароль "owncloud".

Код для ввода в SQL-запрос:

CREATE DATABASE `owncloud` COLLATE 'utf8_general_ci';
CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'owncloud';
GRANT ALL PRIVILEGES ON `owncloud`.* TO 'owncloud'@'localhost';
REVOKE ALL PRIVILEGES ON `owncloud`.* FROM 'owncloud'@'localhost'; GRANT ALL PRIVILEGES ON `owncloud`.* TO 'owncloud'@'localhost'WITH GRANT OPTION;

Всё.

 

 

Открываем адрес https://192.168.1.1/owncloud/ ,чтобы появился конфигурационный файл config.php.

Добавляем новое значение в файл конфигурации config.php

/var/www/owncloud/config/config.php

(для owncloud 7 путь /usr/share/owncloud/config/config.php)


<?php

$CONFIG = array (

   ...

  'dbname' => 'owncloud',

  'dbuser' => 'owncloud',

  'dbpassword' => 'owncloud', //это пароль

  'dbhost' => 'localhost',

   ...

);

 

Снова переходим по адресу 

https://192.168.1.1/owncloud/

и начинаем установку сервиса Owncloud. В поле базы данных указываем базу "owncloud", юзера "owncloud" и пароль "owncloud".

 

Для безопасности войдите в админку mysql и измените пароль пользователя "owncloud". и не забудьте новый пароль прописать в config.php.

 

8. Ускоряем работу owncloud 9 и owncloud 7.

 

Для owncloud 9:

 

переименовываем 

/var/www/owncloud/lib/private/legacy/image.php

в

/var/www/owncloud/lib/private/legacy/image.php_original

 

и закачиваем в 

/var/www/owncloud/lib/private/legacy/

новый файл 

image.php

 

Потом переименовываем

/var/www/owncloud/lib/private/IntegrityCheck/Checker.php

в

/var/www/owncloud/lib/private/IntegrityCheck/Checker.php_original

 

и закачиваем в

/var/www/owncloud/lib/private/IntegrityCheck/

новый файл

Checker.php

 

Для owncloud 7:

 

переименовываем 

/usr/share/owncloud/lib/private/image.php

в

/usr/share/owncloud/lib/private/image.php_original

 

и закачиваем в 

/usr/share/owncloud/lib/private/

новый файл 

image.php

 

9. Включаем кэширование

 

добавляем новое значение в файл конфигурации config.php

/var/www/owncloud/config/config.php

(для owncloud 7 путь /usr/share/owncloud/config/config.php)

Скрытый текст

<?php

$CONFIG = array (


  ...


  'memcache.local' => '\OC\Memcache\APCu',

);

 


 

Закончили. 

Edited by edm
чуточку обновил текст
  • Thanks 3

Share this post


Link to post
Share on other sites

Подскажите пожалуйста

после добавления строки 

'memcache.local' => '\OC\Memcache\APCu',

https://192.168.1.1/owncloud/

выдается ошибка 

Memcache \OC\Memcache\APCu not available for local cache Is the matching PHP module installed and enabled?

В чем моя ошибка?

Как сменить datadirectory на папку на HDD (NTFS), подключенную ко второму USB Keenetic Giga 2 ?

 

sshot-445.jpg

Edited by ukr0p

Share this post


Link to post
Share on other sites
6 часов назад, ukr0p сказал:

после добавления строки 


'memcache.local' => '\OC\Memcache\APCu',

php модуль APCu установить нужно.

 

6 часов назад, ukr0p сказал:

Как сменить datadirectory

для начала в терминале дебиан следует монтировать вторую флешку 

mkdir /f2; #создаем папку
	mount -t auto /dev/sdb1 /f2; монтируем

обрати внимание, что /dev/sdb1 - может быть не это вторая флешка, а sda1 или sdc1. гугл в помощь.

если всё ок, то меняй datadirectory путь на /f2

Share this post


Link to post
Share on other sites

Спасибо!

В 12.08.2017 в 06:31, edm сказал:

php модуль APCu установить нужно.

В руководстве об этом не упоминается.

Установил.

apt-get install php5-apcu

service apache2 restart

 

Сгенерировал сертификаты SSL как написано в Вашей инструкции. Установил в win7 rootCA.crt Но браузер  продолжает информировать о незазщищенности сайта.  Где искать причину?

Edited by ukr0p

Share this post


Link to post
Share on other sites
19 часов назад, ukr0p сказал:

Сгенерировал сертификаты SSL как написано в Вашей инструкции. Установил в win7 rootCA.crt Но браузер  продолжает информировать о незазщищенности сайта.  Где искать причину?

кстати говоря, хром на андроиде начиная с версии 58.0 тоже игнорит сертификат. 

Не знаю даже. 

Но можешь в андроиде проверить rootCA.crt в работоспособности.

Share this post


Link to post
Share on other sites

Подключил ко второму USB входу роутера HDD (один раздел ntfs)  и через Keenetic giga 2 Сеть windows открыл общий доступ к созданной папке owncloud.

Установил пакеты ntfs-3g  и cifs-utils в debian 8

Выполнил команды:

mount -t cifs -o username=admin,password=blabla //192.168.1.1/owncloud /mnt/f2

mv /var/www/owncloud/data /mnt/f2

mcedit /var/www/owncloud/config/config.php

отредактировал datadirectory '/mnt/f2/data',

и в результате при переходе 192.168.1.1/owncloud браузер выдает 

sshot-452.jpg

Пробовал chown -R www-data:www-data /mnt/f2/data результата нет.

chown -R www-data:www-data /var/www/owncloud/ аналогично.

chmod 750 /mnt/f2/data/ аналогично
 

Подскажите пожалуйста в чем возможна ошибка.
 

Edited by ukr0p

Share this post


Link to post
Share on other sites

всё-таки советую

монтировать блок

mount -t ntfs /dev/sdb1 /путь_до нужной_папки

 

или делаем виртуальное монтирование

mount -o bind /mnt/уже_смонтирован_автоматически /путь_до_нужной_папки

 

 

4 часа назад, ukr0p сказал:

mount -t cifs -o username=admin,password=blabla //192.168.1.1/owncloud /mnt/f2

может быть ошибка в этом? в команде поменяй местами //192.168.1.1/owncloud и /mnt/f2

 

4 часа назад, ukr0p сказал:

mv /var/www/owncloud/data /mnt/f2

и почему удаляешь командой "mv" эти папки?

Share this post


Link to post
Share on other sites

Командой mv переношу папку data с флешки на подключенную сетевую папку.

Если пытаюсь сделать mount по UUID usb hdd, который подключен ко второму разему KeeneticGiga2 то получаю ошибку.

blkid

/dev/sda1: LABEL="KINGSTON" UUID="73dfedf3-7d12-d301-60db-edf37d12d301" TYPE="ext4" PARTUUID="4d7e50c1-01"
/dev/sdb1: LABEL="MediaStorage" UUID="608014E48014C288" TYPE="ntfs" PARTUUID="000c5445-01"

mcedit /etc/fstab

UUID="608014E48014C288" /mnt/f2 ntfs rw,nls=utf8,gid=plugdev,umask=0002 0 0

mount -a

Mount is denied because the NTFS volume is already exclusively opened.
The volume may be already mounted, or another software may use it which
could be identified for example by the help of the 'fuser' command.

sshot-454.jpg

Edited by ukr0p

Share this post


Link to post
Share on other sites
1 час назад, ukr0p сказал:

Командой mv переношу папку data с флешки на подключенную сетевую папку.

Если пытаюсь сделать mount по UUID usb hdd, который подключен ко второму разему KeeneticGiga2 то получаю ошибку.

blkid

/dev/sda1: LABEL="KINGSTON" UUID="73dfedf3-7d12-d301-60db-edf37d12d301" TYPE="ext4" PARTUUID="4d7e50c1-01"
/dev/sdb1: LABEL="MediaStorage" UUID="608014E48014C288" TYPE="ntfs" PARTUUID="000c5445-01"

mcedit /etc/fstab

UUID="608014E48014C288" /mnt/f2 ntfs rw,nls=utf8,gid=plugdev,umask=0002 0 0

mount -a


Mount is denied because the NTFS volume is already exclusively opened.
The volume may be already mounted, or another software may use it which
could be identified for example by the help of the 'fuser' command.

sshot-454.jpg

Так он уже сам при подключении должен автоматически смонтироваться, зачем это еще раз делать?

Share this post


Link to post
Share on other sites

простите за глупый вопрос, Если он смонтирован, то как обратиться к его папкам?

Share this post


Link to post
Share on other sites
2 минуты назад, ukr0p сказал:

простите за глупый вопрос, Если он смонтирован, то как обратиться к его папкам?

/tmp/mnt/<ID раздела>/

Share this post


Link to post
Share on other sites

/tmp/mnt нет такого файла или каталога

Aug 17 12:48:45ndm
Core::Syslog: the system log has been cleared.
Aug 17 12:48:57ndm
kernel: usb 2-2: USB disconnect, device number 3
Aug 17 12:48:57ndm
kernel: sd 1:0:0:0: [sdb] Synchronizing SCSI cache
Aug 17 12:48:57ndm
kernel: sd 1:0:0:0: [sdb] Result: hostbyte=0x01 driverbyte=0x00
Aug 17 12:48:57ndm
FileSystem::Repository: unregistering "608014E48014C288:" filesystem...
Aug 17 12:48:57ndm
FileSystem::Repository: "608014E48014C288:" filesystem unregistered.
Aug 17 12:49:06ndm
kernel: usb 2-2: new high-speed USB device number 4 using ehci-platform
Aug 17 12:49:06ndm
kernel: usb 2-2: New USB device found, idVendor=174c, idProduct=5106
Aug 17 12:49:06ndm
kernel: usb 2-2: Product: StoreJet Transcend
Aug 17 12:49:06ndm
kernel: usb 2-2: Manufacturer: StoreJet Transcend
Aug 17 12:49:06ndm
kernel: usb 2-2: SerialNumber: S2RUJ9BDB07174
Aug 17 12:49:06ndm
kernel: scsi2 : usb-storage 2-2:1.0
Aug 17 12:49:09ndm
kernel: scsi 2:0:0:0: Direct-Access StoreJet Transcend 0 PQ: 0 ANSI: 6
Aug 17 12:49:09ndm
kernel: sd 2:0:0:0: Attached scsi generic sg1 type 0
Aug 17 12:49:09ndm
kernel: sd 2:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
Aug 17 12:49:09ndm
kernel: sd 2:0:0:0: [sdb] Write Protect is off
Aug 17 12:49:09ndm
kernel: sd 2:0:0:0: [sdb] Mode Sense: 43 00 00 00
Aug 17 12:49:09ndm
kernel: sd 2:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Aug 17 12:49:09ndm
kernel: sdb: sdb1
Aug 17 12:49:09ndm
kernel: sd 2:0:0:0: [sdb] Attached SCSI disk
Aug 17 12:49:09ndm
FileSystem::Ext: "/dev/sdb" has an unknown partition type, ignored.
Aug 17 12:49:09ndm
FileSystem::Ext: ntfs "608014E48014C288:": filesystem initialized.
Aug 17 12:49:09ndm
kernel: tntfs info (device sdb1, pid 8678): ntfs_fill_super(): fail_safe is enabled.
Aug 17 12:49:09ndm
kernel: tntfs info (device sdb1, pid 8678): load_system_files(): NTFS volume name 'MediaStorage', version 3.1 (cluster_size 4096, PAGE_SIZE 4096).
Aug 17 12:49:10ndm
FileSystem::Repository: "608014E48014C288:" registered.
Edited by ukr0p

Share this post


Link to post
Share on other sites
17 часов назад, ukr0p сказал:

/tmp/mnt нет такого файла или каталога

в debian нет. а вот в entware есть.

поэтому и надо монтировать в дебиан тоже. либо через mount -o bind, либо другим способом

Share this post


Link to post
Share on other sites

mount --bind работает только с папками. А под debian 8 я могу обращаться к HDD на USB №2 только /dev/sdb1/ либо UUID. 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...