Aller au contenu

php

Le paquet php 8.0 est dispo:

https://www.synology.com/fr-fr/support/download/DS916+?version=7.0#packages

Les services php actifs:

$ systemctl | grep PHP
  pkg-WebStation-php74@182b445b-6caf-469f-acaa-a763582ba8db.service                                                       loaded active running WebStation PHP7.4 fpm process
  pkg-WebStation-php74@da937888-3180-4a69-96d6-076b750f2b06.service                                                       loaded active running WebStation PHP7.4 fpm process
  pkg-WebStation-php74@e32d3cf6-055c-43f0-802d-6b72e9437f42.service                                                       loaded active running WebStation PHP7.4 fpm process
  pkg-WebStation-php80@746b57c5-03a4-4210-bf14-1d7df30c8b79.service                                                       loaded active running WebStation PHP8.0 fpm process
  pkgctl-PHP7.4.service                                                                                                   loaded active exited  PHP7.4's service unit
  pkgctl-PHP8.0.service                                                                                                   loaded active exited  PHP8.0's service unit
  PHP7.3.slice                                                                                                            loaded active active  PHP7.3.slice
  PHP7.4.slice                                                                                                            loaded active active  PHP7.4's slice
  PHP8.0.slice                                                                                                            loaded active active  PHP8.0's slice

Les services apache actifs:

$ systemctl | grep apache
  pkg-apache24.service                                                                                                    loaded active running Apache2.4 daemon

Redémarrer un service:

$ sudo systemctl restart pkgctl-PHP8.0.service
$ sudo systemctl stop pkgctl-PHP8.0.service
$ sudo systemctl start pkgctl-PHP8.0.service

Mettre PHP 8.0 cli par défaut:

$ sudo -i
Password:
root@DS916:~# cd /usr/bin/

root@DS916:/usr/bin# mv php php73
root@DS916:/usr/bin# ln -s /volume1/@appstore/PHP8.0/usr/local/bin/php80 php

root@DS916:/usr/bin# php -v
PHP 8.0.17 (cli) (built: Mar 22 2022 17:54:40) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.17, Copyright (c) Zend Technologies

Liste des php.ini:

$ find / -name php.ini 2>/dev/null

/usr/local/etc/php73/cli/php.ini
/usr/local/etc/php80/cli/php.ini        memory_limit = 512M
/usr/local/etc/php74/cli/php.ini        memory_limit = 128M
/etc.defaults/php/php.ini               memory_limit = 128M 
/volume1/@appstore/PHP7.0/usr/local/etc/php70/php.ini
/volume1/@appstore/PHP7.2/usr/local/etc/php72/cli/php.ini
/volume1/@appstore/PHP7.4/usr/local/etc/php74/cli/php.ini   memory_limit = 128M
/volume1/@appstore/PHP8.0/usr/local/etc/php80/cli/php.ini   memory_limit = 512M
/etc/php/php.ini        memory_limit = 512M
/volume1/@appstore/PHP8.0/misc/php-fpm.ini <- memory_limit pris en compte par php-info      memory_limit = 512M

PHP 8.0

Liste des fichiers de conf:

$ php --ini

Configuration File (php.ini) Path: /usr/local/etc/php80/cli
Loaded Configuration File:         /usr/local/etc/php80/cli/php.ini
Scan for additional .ini files in: /usr/local/etc/php80/cli/conf.d
Additional .ini files parsed:      /usr/local/etc/php80/cli/conf.d/extension.ini,
/usr/local/etc/php80/cli/conf.d/nextcloud.ini,
/usr/local/etc/php80/cli/conf.d/timezone.ini
bruno@DS916:~ $ cd /usr/local/etc/php80/cli/conf.d
total 20
-rw-r--r-- 1 root root  773 May  4 08:17 extension.ini
-rw-r--r-- 1 root root   68 May  4 09:48 nextcloud.ini
-rw-r--r-- 1 root root   32 May  4 08:17 timezone.ini

Erreur Nextcloud OC\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache:

Il faut rajouter l'extension apcu mais elle n'est pas dispo dans le profil PHP.

bruno@DS916:/usr/local/etc/php80/cli/conf.d $ cat nextcloud.ini

extension = apcu.so

[apc]
apc.shm_size = 512M
apc.enable_cli = 1

Liste des modules PHP:

$ php -m
[PHP Modules]
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
imap
intl
json
ldap
libxml
mailparse
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_dblib
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
ssh2
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
zip
zlib

[Zend Modules]

Dossier des modules:

/volume1/@appstore/PHP8.0/usr/local/lib/php80/modules/

/volume1/@appstore/PHP7.4/usr/local/lib/php74/modules/

Les extensions n'apparaissent pas dans les Extensions du profil PHP (Web Station). Il faut éditer extension_list.json:

$ sudo nano /volume1/@appstore/PHP8.0/misc/extension_list.json

        "apcu": {
                "enable_default": true,
                "desc": "APC User Cache."
        },



        "redis": {
                "enable_default": true,
                "desc": "The php redis extension provides an API for communicating with the Redis key-value store.."
        },

Installer Composer:

On se place dans /usr/local/bin:

bruno@DS916:~ $ cd /usr/local/bin

et on installe Composer:

bruno@DS916:/usr/local/bin $ sudo curl -s http://getcomposer.org/installer | sudo php80
Password:
All settings correct for using Composer
Downloading...

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

Pour l'appeler directement, on crée un script:

bruno@DS916:/usr/local/bin $ sudo nano composer
#!/bin/bash
php /usr/local/bin/composer.phar $*
bruno@DS916:/usr/local/bin $ sudo chmod --reference=composer.phar composer
bruno@DS916:/usr/local/bin $ composer --version
Composer version 2.5.7 2023-05-24 15:00:39

Dernière mise à jour: November 9, 2023