Base de conocimientos
1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Esta guía explica cómo trabajar sin el módulo PECL SSH2 client
no disponible en alojamientos web y Servidores Cloud Infomaniak, en lugar de utilizar la biblioteca phpseclib
, que funciona en PHP nativo sin necesidad de una extensión específica.
Preámbulo
- La utilización de
PECL SSH2 client
causa errores de tipoNo compatible key exchange algorithms found
oUnable to exchange encryption keys
en su última versión disponible. Phpseclib
permite:- La autenticación SSH por contraseña o clave privada.
- Ejecutar comandos remotos.
- Transferencia de archivos seguros (SFTP).
- Gestión de llaves SSH.
Usar phpseclib
Para integrar una conexión SSH en un script PHP, utilice phpseclib
como se indica a continuación:
use phpseclib3\Net\SSH2;
use phpseclib3\Crypt\PublicKeyLoader;
$ssh = new SSH2('domain.xyz');
$key = PublicKeyLoader::load(file_get_contents('/path/to/private_key'));
if (!$ssh->login('utilisateur', $key)) {
exit('Authentication Failed');
}
echo $ssh->exec('ls -la');
Infomaniak no realiza ninguna copia de seguridad de los VPS Cloud / VPS Lite.
Sin embargo, puedes…
- … crear una instantánea (snapshot) del servidor (copia de seguridad no automatizada)
- … respaldo del servidor en Swiss Backup (respaldo automatizado)
Esta guía le ayudará, por ejemplo, si desea desplegar un paquete como pymysql
y este requiere una versión de Python superior a la ofrecida en su alojamiento.
Prólogo
- Anaconda es una distribución libre y de código abierto de los lenguajes de programación Python. Esta distribución tiene como objetivo simplificar la gestión de paquetes y el despliegue.
- Se recomienda usar conda que viene con una versión reciente de python y se instala en el espacio del usuario, de modo que no haya conflictos con el sistema python (como en un entorno virtual, que siempre requiere una instalación del sistema de la versión deseada).
- Consulte la documentación oficial.
⚠️ Para obtener ayuda adicional contacte a un socio o lanza una oferta gratuita — también descubre el rol del proveedor de alojamiento.
Descargar el instalador
uid165116@od-12345:~$ wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh
--2021-07-28 18:21:10-- https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh
Resolving repo.anaconda.com (repo.anaconda.com)... 2606:4700::6810:8303, 2606:4700::6810:8203, 104.16.131.3, ...
Connecting to repo.anaconda.com (repo.anaconda.com)|2606:4700::6810:8303|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 89026327 (85M) [application/x-sh]
Saving to: ‘Miniconda3-py37_4.10.3-Linux-x86_64.sh’
Miniconda3-py37_4.10.3-Linux-x86_64.sh 100% [==============================================>] 84.90M 203MB/s in 0.4s
18:21:11 (100 MB/s) - ‘Miniconda3-py37_4.10.3-Linux-x86_64.sh’ saved [89026327/89026327]
Verificar el hash
uid165116@od-12345:~$ test $(md5sum Miniconda3-py37_4.10.3-Linux-x86_64.sh | awk '{print $1}') == "9f186c1d86c266acc47dbc1603f0e2ed" && echo "OK"
OK
Iniciar la instalación
uid165116@od-12345:~$ bash Miniconda3-py37_4.10.3-Linux-x86_64.sh -b
PREFIX=/home/clients/fc84cbbf6dcbd6dd76b15d3e56c1789f/miniconda3
Unpacking payload ...
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /home/clients/fc84cbbf6dcbd6dd76b15d3e56c1789f/miniconda3
added / updated specs:
- _libgcc_mutex==0.1=main
- _openmp_mutex==4.5=1_gnu
- brotlipy==0.7.0=py37h27cfd23_1003
- ca-certificates==2021.7.5=h06a4308_1
- certifi==2021.5.30=py37h06a4308_0
- cffi==1.14.6=py37h400218f_0
- chardet==4.0.0=py37h06a4308_1003
- conda-package-handling==1.7.3=py37h27cfd23_1
- conda==4.10.3=py37h06a4308_0
- cryptography==3.4.7=py37hd23ed53_0
- idna==2.10=pyhd3eb1b0_0
- ld_impl_linux-64==2.35.1=h7274673_9
- libffi==3.3=he6710b0_2
- libgcc-ng==9.3.0=h5101ec6_17
- libgomp==9.3.0=h5101ec6_17
- libstdcxx-ng==9.3.0=hd4cf53a_17
- ncurses==6.2=he6710b0_1
- openssl==1.1.1k=h27cfd23_0
- pip==21.1.3=py37h06a4308_0
- pycosat==0.6.3=py37h27cfd23_0
- pycparser==2.20=py_2
- pyopenssl==20.0.1=pyhd3eb1b0_1
- pysocks==1.7.1=py37_1
- python==3.7.10=h12debd9_4
- readline==8.1=h27cfd23_0
- requests==2.25.1=pyhd3eb1b0_0
- ruamel_yaml==0.15.100=py37h27cfd23_0
- setuptools==52.0.0=py37h06a4308_0
- six==1.16.0=pyhd3eb1b0_0
- sqlite==3.36.0=hc218d9a_0
- tk==8.6.10=hbc83047_0
- tqdm==4.61.2=pyhd3eb1b0_1
- urllib3==1.26.6=pyhd3eb1b0_1
- wheel==0.36.2=pyhd3eb1b0_0
- xz==5.2.5=h7b6447c_0
- yaml==0.2.5=h7b6447c_0
- zlib==1.2.11=h7b6447c_3
The following NEW packages will be INSTALLED:
_libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main
_openmp_mutex pkgs/main/linux-64::_openmp_mutex-4.5-1_gnu
brotlipy pkgs/main/linux-64::brotlipy-0.7.0-py37h27cfd23_1003
ca-certificates pkgs/main/linux-64::ca-certificates-2021.7.5-h06a4308_1
certifi pkgs/main/linux-64::certifi-2021.5.30-py37h06a4308_0
cffi pkgs/main/linux-64::cffi-1.14.6-py37h400218f_0
chardet pkgs/main/linux-64::chardet-4.0.0-py37h06a4308_1003
conda pkgs/main/linux-64::conda-4.10.3-py37h06a4308_0
conda-package-han~ pkgs/main/linux-64::conda-package-handling-1.7.3-py37h27cfd23_1
cryptography pkgs/main/linux-64::cryptography-3.4.7-py37hd23ed53_0
idna pkgs/main/noarch::idna-2.10-pyhd3eb1b0_0
ld_impl_linux-64 pkgs/main/linux-64::ld_impl_linux-64-2.35.1-h7274673_9
libffi pkgs/main/linux-64::libffi-3.3-he6710b0_2
libgcc-ng pkgs/main/linux-64::libgcc-ng-9.3.0-h5101ec6_17
libgomp pkgs/main/linux-64::libgomp-9.3.0-h5101ec6_17
libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-9.3.0-hd4cf53a_17
ncurses pkgs/main/linux-64::ncurses-6.2-he6710b0_1
openssl pkgs/main/linux-64::openssl-1.1.1k-h27cfd23_0
pip pkgs/main/linux-64::pip-21.1.3-py37h06a4308_0
pycosat pkgs/main/linux-64::pycosat-0.6.3-py37h27cfd23_0
pycparser pkgs/main/noarch::pycparser-2.20-py_2
pyopenssl pkgs/main/noarch::pyopenssl-20.0.1-pyhd3eb1b0_1
pysocks pkgs/main/linux-64::pysocks-1.7.1-py37_1
python pkgs/main/linux-64::python-3.7.10-h12debd9_4
readline pkgs/main/linux-64::readline-8.1-h27cfd23_0
requests pkgs/main/noarch::requests-2.25.1-pyhd3eb1b0_0
ruamel_yaml pkgs/main/linux-64::ruamel_yaml-0.15.100-py37h27cfd23_0
setuptools pkgs/main/linux-64::setuptools-52.0.0-py37h06a4308_0
six pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_0
sqlite pkgs/main/linux-64::sqlite-3.36.0-hc218d9a_0
tk pkgs/main/linux-64::tk-8.6.10-hbc83047_0
tqdm pkgs/main/noarch::tqdm-4.61.2-pyhd3eb1b0_1
urllib3 pkgs/main/noarch::urllib3-1.26.6-pyhd3eb1b0_1
wheel pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0
xz pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
yaml pkgs/main/linux-64::yaml-0.2.5-h7b6447c_0
zlib pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3
Preparing transaction: done
Executing transaction: done
installation finished.
Iniciar conda
uid165116@od-12345:~$ source <(~/miniconda3/bin/conda shell.bash hook)
Instalar pymysql (por ejemplo)
(base) uid165116@od-12345:~$ python3 -V
Python 3.7.10
(base) uid165116@od-12345:~$ pip3 install pymysql --user
Collecting pymysql
Downloading PyMySQL-1.0.2-py3-none-any.whl (43 kB)
|████████████████████████████████| 43 kB 892 kB/s
Installing collected packages: pymysql
Successfully installed pymysql-1.0.2
Esta guía explica cómo especificar un archivo que se cargará antes de la página deseada o al principio de cada script PHP ejecutado en su servidor, incluido como si se hubiera llamado con la función require()
, pero de manera más global utilizando la directiva auto_prepend_file
de PHP.
Prólogo
- Por ejemplo, para declarar los encabezados de un sitio web, es posible crear un archivo
headers.php
que contenga funciones PHPheader()
y que se prepend al principio de cada archivo PHP…- … a través de un archivo
.user.ini
(propio de una carpeta), - … o a través de la configuración del sitio del Manager (global) como se explica a continuación.
- … a través de un archivo
Incluir un archivo globalmente desde el Manager
Para acceder a la gestión del sitio web:
- Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿necesita ayuda?).
- Haga clic directamente en el nombre asignado al producto correspondiente:
- Haga clic en Gestionar bajo Configuración avanzada:
- Haga clic en la pestaña PHP / Apache.
- Complete la línea correspondiente ingresando la ruta del archivo a incluir.
- Haga clic en el botón para guardar:
Después de definir esta directiva, todas las páginas PHP en su servidor incluirán automáticamente el archivo especificado antes de ejecutar su propio código.
Los encabezados definidos en un archivo .htaccess
solo son válidos para el contenido no PHP (es decir, estático).
Infomaniak utiliza php-fpm
que recibe los diferentes encabezados a través de apache fast_cgi
. En la RFC de cgi_www el encabezado Strict-Transport-Security
no forma parte de los encabezados pasados a través de CGI y la documentación de Apache lo confirma. Consulte esta otra RFC.
⚠️ Para obtener ayuda adicional contacte a un socio o lanza una oferta gratuita — también descubre el rol del proveedor de alojamiento.
La infraestructura de Infomaniak no transmite instrucciones de virtualización a los VPS Cloud / VPS Lite; por lo tanto, no es posible realizar virtualización anidada (virtualización que se ejecutaría dentro de un entorno ya virtualizado) ya que esto causa problemas, especialmente durante las migraciones en directo.
Con el fin de utilizar módulos Perl
en uno Servidor Cloud Infomaniak, es necesario instalarlos en el árbol de usuario y de definir la ruta completa dentro de los scripts.
De este modo, podrá instalar y actualizar libremente sus módulos.
Esta guía trata sobre la creación de redes privadas entre diferentes ofertas de alojamiento de Infomaniak como VPS Cloud / VPS Lite, Public Cloud, NAS Synology, etc.
Crear un VLAN entre VPS
No es posible crear una red privada (VLAN) entre VPS Cloud / VPS Lite y otros productos, como NAS Synology p. ej., porque están instalados en redes distintas.
Sin embargo, es posible crear un VLAN entre al menos 10 VPS Cloud / VPS Lite que le pertenezcan (contacte con el soporte de Infomaniak), aunque una red privada dedicada no podrá comunicarse con otra.
Se recomienda migrar a la oferta Public Cloud para crear tales redes privadas entre VM.
Esta guía trata sobre la instalación de extensiones PHP en Hébergements Web Infomaniak.
Uso de extensiones PHP Zend
- Zend Guard Loader es una extensión PHP que permite ejecutar scripts PHP cifrados a través de Zend Guard.
- Zend Guard Loader viene instalado de serie para PHP <= 5.6 en todos los alojamientos web y no está disponible para las versiones de PHP >= 5.6.
- Desde PHP 5.3.x, el módulo Zend Optimizer ha sido reemplazado por ZendGuardLoader
- La extensión ZendOPCache requiere un Servidor Cloud configurado con PHP 5.5 mínimo
Jelastic Cloud es una plataforma como servicio (PaaS) que permite crear fácilmente entornos de desarrollo bajo demanda. Esta solución es muy ventajosa en el caso de que su consumo de recursos (CPU, RAM) varíe mucho según las épocas del año.
Un Servidor Cloud permite gestionar aplicaciones y sitios web tan fácilmente como un alojamiento compartido, ofreciéndote la ventaja de poder instalar software adicional según tus necesidades. Esta solución es muy ventajosa si tu consumo de recursos (CPU, RAM) es estable y previsible.
Un VPS Cloud o VPS Lite permite gestionar todo su servidor con la distribución Linux de su elección. Se requieren sólidas competencias técnicas. Esta solución es muy ventajosa si su consumo de recursos (CPU, RAM) es estable y previsible.
En los tres casos, disfruta de recursos completamente dedicados que puedes ajustar libremente según tus necesidades.
Tenga también en cuenta la oferta Public Cloud.
Esta guía explica cómo aumentar el valor max_children
sobre Servidor Cloud para aumentar el número de procesos de PHP simultáneos que pueden ser utilizados por su sitio. Esto será muy útil para resolver problemas de carga infinita de las páginas de su sitio.
Preámbulo
- Por defecto en cualquier alojamiento, el límite de
max_children
se fija en 20.- Aunque es posible aumentar este valor desde el Manager Infomaniak, el límite de
max_children
se ajusta automáticamente en función de la configuración de su Servidor Cloud. - Para aumentar este límite en alojamiento compartido, Migre en Servidor Cloud.
- Aunque es posible aumentar este valor desde el Manager Infomaniak, el límite de
- Para entender cómo calcular lo más justo posible
max_children
necesarios, tomen conocimiento de este artículo Acerca de eso.
Aumentar el valor max_children
Requisitos previos
- Asegúrese de que dispone de los recursos necesarios en el servidor Cloud.
- Cerciorarse de que no se utilicen todos los recursos del servidor Cloud; si resulta que se utilizan totalmente, el aumento del valor
max_children
no tendrá efecto alguno (Editar los recursos del Servidor Cloud). - Controlar el monitoring de los recursos de su servidor, en caso de que los recursos de su servidor se alcancen, será necesario comprobar la optimización de los procesos y de su sitio antes de considerar la posibilidad de aumentar el valor
max_children
. - Consulte los informes de error de PHP desde la carpeta
/ik-logs
(master process php logs - nombre del archivo: php-fpm.log) para comprobar si el límite "max_children
"se ha superado... ejemplo de error:[05-Jul-2024 09:08:58] WARNING: [pool www.infomaniak.ch] server reached max_children setting (20), consider raising it
Para acceder a la gestión de la configuración de PHP / Apache del sitio que necesita aumentar el valor max_children
en Servidor Cloud, conozca esta otra guía.
En particular, usted puede...
- ... elegir un nuevo valor de
max_children
:
No olvide guardar los cambios en la parte inferior de la página.
Límites en función del servidor
Límite de max_children
dependiendo de los recursos del Servidor Cloud:
Preferencias Servidor Cloud | max_children |
---|---|
2 CPU / 6 GB RAM | 20 |
4 CPU / 12 GB RAM | 40 |
6 CPU / 18 GB RAM | 60 |
8 CPU / 24 GB RAM | 80 |
12 CPU / 36 GB RAM | 120 |
16 CPU / 48 GB RAM | 160 |
24 CPU / 72 GB RAM | 240 |
32 CPU / 96 o 128 RAM | 320 |