PHP n'a pas de limitations matérielles que j'ai jamais rencontrées, mais une chose qui vous empêchera certainement de compiler de nouvelles versions de PHP sur les anciens systèmes * nix est le logiciel.
Les versions modernes de PHP ne compileront pas sur les anciens systèmes * nix car ils ne disposent pas des outils nécessaires pour compiler PHP (un compilateur C moderne, des versions semi-récentes de glibc, GNU make, Bison, et beaucoup des extensions PHP auront des prérequis de nouvelles versions de bibliothèques incompatibles avec celles installées sur les anciens systèmes).
Cela pourrait très bien être la raison pour laquelle ils disent cela. J'ai essayé de compiler PHP 5.4 sur RedHat 7.3 sans trop de chance car toutes ces bibliothèques système et outils de compilation de logiciels sont trop anciens. Avec l'extension OpenSSL, les anciens systèmes n'ont souvent pas les bons fichiers d'en-tête avec les prototypes de fonctions attendus par PHP lors de la compilation.
Alors oui, la compilation de PHP est difficile ou impossible sur un système plus ancien (jamais essayé de construire des versions plus récentes de libc sur de vieilles machines ??? C'est un cauchemar!).
Par exemple, je pris PHP 5.6.22 et a commencé à compiler sur Red Hat Linux version 7.3 (Valhalla) et ne pas très loin ...
première erreur simple:
checking for zlib version >= 1.2.0.4... 1.1.4
configure: error: libz version greater or equal to 1.2.0.4 required
C'est assez facile à compiler par lui-même, mais un certain nombre d'autres bibliothèques pour les extensions que je voulais ne sont pas installées sur le système, et essayer de compiler chacune d'entre elles pourrait être un trou de lapin.
Je pris à ceux que nous ne disposions pas de commencer, a pu ./configure
très bien, mais pas trop loin dans make
...
php-5.6.22/ext/openssl/openssl.c: In function `php_openssl_get_stream_from_ssl_handle':
php-5.6.22/ext/openssl/openssl.c:581: warning: passing arg 1 of `SSL_get_ex_data' discards qualifiers from pointer target type
php-5.6.22/ext/openssl/openssl.c: In function `php_openssl_get_evp_cipher_from_algo':
php-5.6.22/ext/openssl/openssl.c:1092: warning: return makes pointer from integer without a cast
php-5.6.22/ext/openssl/openssl.c:1095: warning: return makes pointer from integer without a cast
php-5.6.22/ext/openssl/openssl.c:1098: warning: return makes pointer from integer without a cast
php-5.6.22/ext/openssl/openssl.c: In function `openssl_x509v3_subjectAltName':
php-5.6.22/ext/openssl/openssl.c:1874: `GENERAL_NAMES' undeclared (first use in this function)
...
php-5.6.22/ext/openssl/openssl.c: In function `zif_openssl_digest':
php-5.6.22/ext/openssl/openssl.c:5112: void value not ignored as it ought to be
make: *** [ext/openssl/openssl.lo] Error 1
Donc, avec OpenSSL il était jeu sur (c'est la version 0.9.6b en passant, si vieux!). Je pourrais probablement compiler OpenSSL plus récent comme je l'ai fait avant sans problème, mais ce système 7.3 est également spécial. Nous avons mis beaucoup d'efforts pour apporter de nouvelles versions de logiciels non supportés (libs & compilateur) à ce système pour le maintenir en vie, mais sur les plus anciens, j'ai eu beaucoup moins de chance.
Alors oui, cela peut prendre des jours avant de faire fonctionner PHP sur des systèmes plus anciens et cela suppose beaucoup d'expérience et de connaissances sur la construction et l'installation de bibliothèques en dehors du chemin de votre bibliothèque. système), puis obtenir les nouveaux éléments à lier dynamiquement à ceux).
Je suis sûr que vous pouvez trouver cette information en utilisant Google. – Rasclatt
Juste par curiosité, comment "vieux"? Comme quel OS et version parlons-nous ici si vous pouvez partager? – drew010