Files
mkdocs/docs/Synology/dsm6.md
2020-04-18 07:23:09 +02:00

10 KiB

DSM 6

Dossiers utilisateurs:

bruno@DS916:~ $ pwd
/var/services/homes/bruno
root@DS916:~# pwd
/root

Se connecter en root:

bruno@DS916:~ $ sudo -su root
Password:
sh-4.3#
# ok

bruno@DS916:~ $ sudo -i
root@DS916:~#

Taches panifiée:

Exécuter un script par un utilisateur xxx: ici le script cron.php de Nextcloud doit être lancé par http

sudo -u http /usr/local/bin/php73 -f /volume1/web/nextcloud/cron.php

Services:

Afficher la liste des services

root@DS916:~# synoservicecfg --list
DSM
apparmor
atalk
avahi
bluetoothd
bonjour
btacd

Gérer les services de DSM

synoservicecfg --list

synoservice --status

synoservicecfg --stop <service>

synoservicecfg --hard-stop <service>

synoservicecfg --start <service>

synoservicecfg --hard-start <service>

synoservice --restart <service>

synoservicectl --restart <service>

Redémarrer un service

/usr/syno/sbin/synoservicecfg -restart  syslog-acc

Afficher les logs de connection ssh dans /var/log/message:

  • Créer en tant que root le fichier /usr/local/etc/syslog-ng/patterndb.d/sshd.conf comme suit :
filter f_messages {
        level(info..emerg)
        and not facility( mail, news, cron)
        and not program(syslog-ng)
        and not filter(f_local)
        and not filter(f_synology);
};
  • Faire un chmod 644 sur le fichier /usr/local/etc/syslog-ng/patterndb.d/sshd.conf créé.
DS414> cd /usr/local/etc/syslog-ng/patterndb.d/
-rw-rw-rw- 1 root root  454 Jul 16 19:15 sshd.conf
-rw-r--r-- 1 root root  454 Jul 11 15:15 VideoStation.conf
DS414> chmod 644 sshd.conf
-rw-r--r-- 1 root root  454 Jul 16 19:15 sshd.conf
-rw-r--r-- 1 root root  454 Jul 11 15:15 VideoStation.conf
  • Relancer le syslog pour prise en compte du fichier (sinon un reboot du NAS) :
DS414> synoservicecfg --restart syslog-acc

Installer un paquet .deb

# echec pour un problème de signature
$ sudo dpkg -i nano_2.7.4-1_i386.deb
Password:
Authenticating nano_2.7.4-1_i386.deb ...
debsig: Origin Signature check failed. This deb might not be signed.

dpkg: error processing nano_2.7.4-1_i386.deb (--install):
 verification on package nano_2.7.4-1_i386.deb failed!
Errors were encountered while processing:
 nano_2.7.4-1_i386.deb
 
# option --force-bad-verify
$ sudo dpkg -i --force-bad-verify nano_2.7.4-1_amd64.deb
Authenticating nano_2.7.4-1_amd64.deb ...
debsig: Origin Signature check failed. This deb might not be signed.

dpkg: verification on package nano_2.7.4-1_amd64.deb failed; but installing anyway as you requested
Selecting previously unselected package nano.
(Reading database ... 118 files and directories currently installed.)
Unpacking nano (from nano_2.7.4-1_amd64.deb) ...

# supprimer le paquet debsig-verify
$ dpkg --purge dpkg-verify

Installer manuellement un paquet .spk

$ sudo synopkg install <package.spk>

Apache:

Configuration:

Les fichiers .conf se trouvent dans /usr/local/etc/apache22 ou /usr/local/etc/apache24

Editer le Le fichier de conf principal: nano /usr/local/etc/apache22/conf/httpd22.conf

Il est conseillé de faire les modifications dans /usr/local/etc/apache22/sites-enabled

Logs:

Ils sont dans /var/log/httpd

/var/log/httpd $ ls -la
total 540
drwxr-xr-x  2 root   root   4096 Nov 16 03:07 .
drwxr-xr-x 17 root   root   4096 Mar  9 01:15 ..
-rw-r--r--  1 root   root    176 Oct  9 10:10 access_log
-rw-rw----  1 system log  146142 Mar 13 09:50 apache22-error_log
-rw-rw----  1 system log   58824 Nov 16 02:05 apache22-error_log.1.xz
-rw-rw----  1 system log   25992 Dec 11  2016 apache22-error_log.2.xz
-rw-rw----  1 system log    2106 Jan  9  2017 apache24-error_log
-rw-r--r--  1 root   root    363 Oct  9 10:09 error_log
-rw-rw----  1 system log  283282 Nov  2  2016 user-error_log

Redémarrer Apache:

synoservice --restart pkgctl-WebStation

synoservice --restart pkgctl-Apache2.2

service [pkgctl-Apache2.2] restart failed, synoerr=[0x2000]

Liste des modules Apache:

$ httpd22 -M
Loaded Modules:
 core_module (static)
 mpm_worker_module (static)
 ...

php7.0

$ php70 --ini
Configuration File (php.ini) Path: /usr/local/etc/php70
Loaded Configuration File:         /usr/local/etc/php70/php.ini
Scan for additional .ini files in: /usr/local/etc/php70/conf.d
Additional .ini files parsed:      /usr/local/etc/php70/conf.d/SYNO.SDS.PhotoStation.ini

open_basedir

/tmp:/var/services/tmp:/var/services/web:/var/services/homes:/dev/urandom:/volume1/dokuwiki:/volume1/Repositories:/volume1/nextcloud

php.ini

extension_dir = "/usr/local/lib/php70/modules"

logs

Web Station -> Paramètres PHP-> Paramètres Avancés -> Coeur -> error_log

Connaitre les extensions chargées par PHP CLI:

$ php -m
[PHP Modules]
apcu
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
readline
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

PHP 7.0.13: curl n'est pas activé:

  • Ouvrir /volume1/@appstore/PHP7.0/misc/extension_list.json
root@DS916:/volume1/@appstore/PHP7.0/misc# ls -la
total 24
drwxr-xr-x 1 root root  134 Jan  7 09:08 .
drwxrwxrwx 1 root root   46 Jan  5 17:22 ..
-rw-r--r-- 1 root root 5082 Dec 19 12:20 extension_list.json
-rw-r--r-- 1 root root 5082 Jan  7 09:08 extension_list.json.bak
-rw-r--r-- 1 root root  147 Dec 19 12:20 logrotate.conf
-rw-r--r-- 1 root root  174 Dec 19 12:20 syslog.conf
root@DS916:/volume1/@appstore/PHP7.0/misc# nano extension_list.json
  • Ajouter
       "curl": {
               "enable_default": true,
               "desc": "The curl extension allows you to connect and communicate to many different types of servers wih many different types of protocols."
       },
  • Aller dans Web Station → Paramètres PHP → version 7.0
  • Cocher, décocher et recocher pour activer l'extension (en appliquant à chaque fois)

:fa-link: Source

Les 3 versions de PHP:

  • PHP 5.6 (BusyBox) /bin/php
  • PHP 5.6 (Package PHP 5) /usr/local/bin/php56
  • PHP 7.3 (Package PHP 7) /usr/local/bin/php73

Pour Apache, c'est la version choisie dans WebStation qui est active.

En ligne de commande, par défaut, c'est la version Busybox qui est active:

$ which php
/bin/php

$ php -v
PHP 5.6.11 (cli) (built: Jun  8 2018 15:13:30)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

$ php --ini
Configuration File (php.ini) Path: /etc/php
Loaded Configuration File:         /etc/php/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

Les 2 autres versions sont néanmoins disponibles:

$ which php56
/usr/local/bin/php56

$ php56 -v
PHP 5.6.36 (cli) (built: May  2 2018 16:13:10)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

$ php56 --ini
Configuration File (php.ini) Path: /usr/local/etc/php56
Loaded Configuration File:         /usr/local/etc/php56/php.ini
Scan for additional .ini files in: /usr/local/etc/php56/conf.d
Additional .ini files parsed:      /usr/local/etc/php56/conf.d/phpMyAdmin.ini,
/usr/local/etc/php56/conf.d/webstation-extensions.ini


$ which php70
/usr/local/bin/php70

$ php70 -v
PHP 7.0.30 (cli) (built: May  2 2018 16:29:25) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.30, Copyright (c) 1999-2017, by Zend Technologies
    
$ php70 --ini
Configuration File (php.ini) Path: /usr/local/etc/php70
Loaded Configuration File:         /usr/local/etc/php70/php.ini
Scan for additional .ini files in: /usr/local/etc/php70/conf.d
Additional .ini files parsed:      /usr/local/etc/php70/conf.d/SYNO.SDS.PhotoStation.ini

Mettre PHP70 par défaut en CLI:

# On renomme PHP Busybox
$ cd /bin
$ mv php php_5.6.11
$ ls -la
-rwxr-xr-x  1 root   root 6600840 Jun  8 10:31 php_5.6.11

# On crée un lien symbolique 
$ cd /usr/local/bin
$ ln -s /var/packages/PHP7.0/target/usr/local/bin/php70 php

$ which php
/usr/local/bin/php

$ php --ini
Configuration File (php.ini) Path: /usr/local/etc/php70
Loaded Configuration File:         /usr/local/etc/php70/php.ini
Scan for additional .ini files in: /usr/local/etc/php70/conf.d
Additional .ini files parsed:      /usr/local/etc/php70/conf.d/SYNO.SDS.PhotoStation.ini

php7.3

Composer:

Installation:

root@DS916:/usr/local/bin# curl -s http://getcomposer.org/installer | php70
All settings correct for using Composer
Downloading...

Composer (version 1.6.3) successfully installed to: /usr/local/bin/composer.phar
Use it: php composer.phar

Installation des dépendances de l'application (ici Gitlist):

bruno@DS916:/volume1/web/gitlist $ php70 /usr/local/bin/composer.phar install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 62 installs, 0 updates, 0 removals

- Installing symfony/process (v3.4.6): Downloading (100%)

Pour simplifier l'utilisation:

  • Créer un script composer.sh dans /usr/local/bin
  • Ajouter le contenu suivant:
#!/bin/bash
php70 -d extension=phar.so /usr/local/bin/composer.phar $*
  • Rendre le script exécutable et le renommer:
$ chmod +X composer.sh

$ mv composer.sh composer
  • Utilisation:
$ composer about
Composer - Package Management for PHP
Composer is a dependency manager tracking local dependencies of your projects and libraries.
See https://getcomposer.org/ for more information.
  • Mise à jour:
$ sudo composer self-update 
You are already using composer version 1.7.1 (stable channel).

Erreurs:

/bin/nano

nano: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

sudo ln -s /lib/libncurses.so.5.9 /lib/libtinfo.so.5

Developer guide:

https://help.synology.com/developer-guide/index.html