Hi,
ich versuch ja grundsätzlich die Übersicht zu behalten.
Ich habe auf meiner DS215j sowohl php56 als auch php70 installiert. Dann habe ich herausgefunden, dass man diverse php-extensions und configs nur über die Installation von "Web Station" auswählen kann - auch wenn man "Web-Station" gar nicht verwenden wollte (...). Dort habe ich in der Oberfläche diverse extensions für php56 angeklickt, die ich teilweise unmittelbar, teilweise nur vielleicht benötige. Dann wollte ich das gleiche für php70 tun und stelle fest, dass dort meine auswahl von php56 übernommen wurde.
Mittlerweile bin ich soweit, dass ich folgendes verstanden habe:
1. Ich habe 3 verschiedene php binaries auf meinem synology
2. Meine 3 php installationen verwenden 3 unterschiedliche configs
Ich hab jetzt noch nicht überprüft ob und welche Änderungen aus der GUI sich auf welche und wieviele Configs auswirken, aber ich habe das Gefühl, da läuft was schief.
Ich wollte also mal wissen wo überhaupt die extensions für php abgelegt sind:
Und dann hab ich den Inhalt der Ordner überprüft:
Jetzt ist mir klar, warum in meiner php56 Installation nix läuft wie erwartet.
Ich stelle mir jetzt nur die Frage wie ich das Problem lösen kann? Eine De- und Neuinstallation von php56/php70 über die DSM (6.1) Oberfläche belässt alles unverändert. Sind die php-extensions aus /usr/lib/php/modules kompatibel mit php56 und/order php70 ? kann ich die einfach rüberkopieren? Überschreibt mir eine Änderung in der DSM Oberfläche meine angepassten php56 ini-config?
Hintergrund warum ich mich damit beschäftige: ich habe eine composer.phar geladen und wollte von einem Laravel-Projekt die Dependencies updaten.
Die php56 && php70 binaries funktionieren nicht mit meiner composer.phar mangels phar-extension/module
Und die php-binary failed am ende mit folgendem Fehler:
Allerdings ist der Tokenizer default-mässig seit php 4.3 inkludiert (http://php.net/manual/de/tokenizer.installation.php). Demnach wurde er für die php-binary auf synology beim compilieren explizit weggelassen.... hmpf.
Also ich würde mich freuen, wenn jemand einen hilfreichen Tipp hätte
ich versuch ja grundsätzlich die Übersicht zu behalten.
Ich habe auf meiner DS215j sowohl php56 als auch php70 installiert. Dann habe ich herausgefunden, dass man diverse php-extensions und configs nur über die Installation von "Web Station" auswählen kann - auch wenn man "Web-Station" gar nicht verwenden wollte (...). Dort habe ich in der Oberfläche diverse extensions für php56 angeklickt, die ich teilweise unmittelbar, teilweise nur vielleicht benötige. Dann wollte ich das gleiche für php70 tun und stelle fest, dass dort meine auswahl von php56 übernommen wurde.
Mittlerweile bin ich soweit, dass ich folgendes verstanden habe:
1. Ich habe 3 verschiedene php binaries auf meinem synology
Rich (BBCode):
myuser@synology:~$ which php
/bin/php
myuser@synology:~$ which php56
/usr/local/bin/php56
myuser@synology:~$ which php70
/usr/local/bin/php70
Rich (BBCode):
myuser@synology:~$ 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)
myuser@synology:~$ 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/apcu.ini,
/usr/local/etc/php56/conf.d/extensions.ini,
/usr/local/etc/php56/conf.d/opcache.ini
myuser@synology:~$ 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: (none)
Ich hab jetzt noch nicht überprüft ob und welche Änderungen aus der GUI sich auf welche und wieviele Configs auswirken, aber ich habe das Gefühl, da läuft was schief.
Ich wollte also mal wissen wo überhaupt die extensions für php abgelegt sind:
Rich (BBCode):
myuser@synology:~$ php -i | grep "modules"
extension_dir => /usr/lib/php/modules => /usr/lib/php/modules
myuser@synology:~$ php56 -i | grep "modules"
extension_dir => /usr/local/lib/php56/modules => /usr/local/lib/php56/modules
myuser@synology:~$ php70 -i | grep "modules"
extension_dir => /usr/local/lib/php70/modules => /usr/local/lib/php70/modules
Und dann hab ich den Inhalt der Ordner überprüft:
Rich (BBCode):
myuser@synology:~$ ls -alh /usr/lib/php/modules
total 896K
drwxr-xr-x 2 root root 4.0K Feb 3 04:53 .
drwxr-xr-x 5 root root 4.0K Feb 3 04:53 ..
-rwxr-xr-x 1 root root 25K Jan 26 01:15 bcmath.so
-rwxr-xr-x 1 root root 17K Jan 26 01:15 bz2.so
-rwxr-xr-x 1 root root 73K Jan 26 01:15 curl.so
-rwxr-xr-x 1 root root 33K Jan 26 01:15 iconv.so
-rwxr-xr-x 1 root root 49K Jan 26 01:15 ldap.so
-rwxr-xr-x 1 root root 38K Jan 26 01:15 mcrypt.so
-rwxr-xr-x 1 root root 117K Jan 26 01:15 openssl.so
-rwxr-xr-x 1 root root 20K Jan 26 01:15 pdo_sqlite.so
-rwxr-xr-x 1 root root 236K Jan 26 01:15 phar.so
-rwxr-xr-x 1 root root 21K Jan 26 01:15 posix.so
-rwxr-xr-x 1 root root 8.3K Jan 26 01:15 shmop.so
-rwxr-xr-x 1 root root 70K Jan 26 01:15 sockets.so
-rwxr-xr-x 1 root root 37K Jan 26 01:15 sqlite3.so
-rwxr-xr-x 1 root root 14K Jan 26 01:16 syno_compiler.so
-rwxr-xr-x 1 root root 95K Jan 26 01:15 zip.so
myuser@synology:~$ ls -alh /usr/local/lib/php56/modules/
total 8.0K
drwxr-xr-x 2 root root 4.0K Mar 23 2017 .
drwxr-xr-x 3 root root 4.0K Mar 23 2017 ..
myuser@synology:~$ ls -alh /usr/local/lib/php70/modules/
total 8.0K
drwxr-xr-x 2 root root 4.0K Jan 17 13:33 .
drwxr-xr-x 3 root root 4.0K Jan 17 13:33 ..
Jetzt ist mir klar, warum in meiner php56 Installation nix läuft wie erwartet.
Ich stelle mir jetzt nur die Frage wie ich das Problem lösen kann? Eine De- und Neuinstallation von php56/php70 über die DSM (6.1) Oberfläche belässt alles unverändert. Sind die php-extensions aus /usr/lib/php/modules kompatibel mit php56 und/order php70 ? kann ich die einfach rüberkopieren? Überschreibt mir eine Änderung in der DSM Oberfläche meine angepassten php56 ini-config?
Hintergrund warum ich mich damit beschäftige: ich habe eine composer.phar geladen und wollte von einem Laravel-Projekt die Dependencies updaten.
Die php56 && php70 binaries funktionieren nicht mit meiner composer.phar mangels phar-extension/module
Rich (BBCode):
myuser@synology:~/code/laravelproject$ php56 composer.phar update
PHP Fatal error: Class 'Phar' not found in /volume2/homes/myuser/code/laravelproject/composer.phar on line 23
Fatal error: Class 'Phar' not found in /volume2/homes/myuser/code/laravelproject/composer.phar on line 23
myuser@synology:~/code/laravelproject$ php70 composer.phar update
PHP Fatal error: Uncaught Error: Class 'Phar' not found in /volume2/homes/myuser/code/laravelproject/composer.phar:23
Stack trace:
#0 {main}
thrown in /volume2/homes/myuser/code/laravelproject/composer.phar on line 23
Fatal error: Uncaught Error: Class 'Phar' not found in /volume2/homes/myuser/code/laravelproject/composer.phar:23
Stack trace:
#0 {main}
thrown in /volume2/homes/myuser/code/laravelproject/composer.phar on line 23
Und die php-binary failed am ende mit folgendem Fehler:
Rich (BBCode):
myuser@synology:~/code/laravelproject$ php composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
[...]
- psy/psysh v0.8.17 requires nikic/php-parser ~1.3|~2.0|~3.0 -> satisfiable by nikic/php-parser[v1.3.0, v1.4.0, v1.4.1, v2.0.0, v2.0.1, v2.1.0, v2.1.1, v3.0.0, v3.0.1, v3.0.2, v3.0.3, v3.0.4, v3.0.5, v3.0.6, v3.1.0, v3.1.1, v3.1.2, v3.1.3, v3.1.4].
- psy/psysh v0.8.2 requires nikic/php-parser ~1.3|~2.0|~3.0 -> satisfiabl
- psy/psysh v0.7.2 requires nikic/php-parser ^1.2.1|~2.0 -> satisfiable by nikic/php-parser[v1.2.1, v1.2.2, v1.3.0, v1.4.0, v1.4.1, v2.0.0, v2.0.1, v2.1.0, v2.1.1].
- nikic/php-parser v3.1.4 requires ext-tokenizer * -> the requested PHP extension tokenizer is missing from your system.
[...]
- nikic/php-parser v1.2.1 requires ext-tokenizer * -> the requested PHP extension tokenizer is missing from your system.
- Installation request for laravel/tinker ~1.0 -> satisfiable by laravel/tinker[v1.0.0, v1.0.1, v1.0.2, v1.0.3].
To enable extensions, verify that they are enabled in your .ini files:
- /etc/php/php.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
Allerdings ist der Tokenizer default-mässig seit php 4.3 inkludiert (http://php.net/manual/de/tokenizer.installation.php). Demnach wurde er für die php-binary auf synology beim compilieren explizit weggelassen.... hmpf.
Also ich würde mich freuen, wenn jemand einen hilfreichen Tipp hätte