Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2024-07-29 GMT+08:00

PHP

Acceda a una instancia de DCS Memcached en PHP en un ECS en la misma VPC.

Prerrequisitos:

  • La instancia de DCS Memcached a la que desea acceder está en el estado Running.
  • Inicie sesión en el ECS. Para obtener más información sobre cómo crear ECS, consulte la Guía del usuario de Elastic Cloud Server.

    Un ECS puede comunicarse con una instancia de DCS que pertenece a la misma VPC y está configurada con el mismo grupo de seguridad.

    • Si las instancias de ECS y de DCS están en las VPC diferentes, establezca una conexión de pares de VPC para lograr conectividad de red entre las instancias de ECS y de DCS. Para obtener más información, consulte ¿Soporta DCS el acceso entre VPC?
    • Si se han configurado diferentes grupos de seguridad para la instancia de ECS y de DCS, establezca reglas de grupo de seguridad para lograr la conectividad de red entre la instancia de ECS y de DCS. Para obtener más información, consulte ¿Cómo configuro un grupo de seguridad?

SO de la serie Red Hat

A continuación se utiliza CentOS 7.0 como ejemplo para describir cómo instalar un cliente PHP y usarlo para acceder a una instancia de DCS Memcached. El procedimiento también es aplicable a un cliente PHP que ejecute Red Hat o Fedora OS.

  1. Instale los componentes de compilación GCC-C++ y Make.

    yum install gcc-c++ make

  2. Instalar paquetes de SASL relacionados.

    yum install cyrus-sasl*

  3. Instale la biblioteca libMemcached.

    La instalación de la biblioteca libMemcached requiere parámetros de autenticación SASL. Por lo tanto, no puede instalar la biblioteca ejecutando el comando yum.

    wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

    tar -xvf libmemcached-1.0.18.tar.gz

    cd libmemcached-1.0.18

    ./configure --prefix=/usr/local/libmemcached --enable-sasl

    make && make install

    Antes de instalar la biblioteca libMemcached, instale los componentes GCC-C++ y SASL. De lo contrario, se informará de un error durante la compilación. Después de resolver el error, ejecute el comando make clean y, a continuación, ejecute el comando make de nuevo.

  4. Instale el entorno PHP.

    yum install php-devel php-common php-cli

    PHP 7.x no soporta autenticación SASL. Use PHP 5.6. Si la versión yum php no es 5.6, descargue una de Internet.

  5. Instale el cliente Memcached.

    Tenga en cuenta que debe agregar un parámetro utilizado para habilitar SASL al ejecutar el comando configure.

    wget http://pecl.php.net/get/memcached-2.1.0.tgz

    tar zxvf memcached-2.1.0.tgz

    cd memcached-2.1.0

    phpize

    ./configure --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached-sasl

    make && make install

  6. Modifique el archivo php.ini.

    Run the find or locate command to find the php.ini file.

    find / -name php.ini

    Añada las siguientes dos líneas al archivo php.ini:

    extension=memcached.so
    memcached.use_sasl = 1
    Figura 1 Modificar el archivo php.ini

  7. Acceda a una instancia de DCS Memcached.

    Cree un archivo memcached.php y agregue el siguiente contenido al archivo:

    <?php
        $connect = new Memcached; //Declares a Memcached connection.
        $connect->setOption(Memcached::OPT_COMPRESSION, false); //Disables compression.
        $connect->setOption(Memcached::OPT_BINARY_PROTOCOL, true); //Uses the binary protocol.
        $connect->setOption(Memcached::OPT_TCP_NODELAY, true); //Disables the TCP network delay policy.
        $connect->addServer('{memcached_instance_ip}', 11211); //Specifies the instance IP address and port number.
        $connect->setSaslAuthData('{username}', '{password}'); //If password-free access is enabled for the instance, delete or comment out this line.
        $connect->set("DCS", "Come on!");
        echo 'DCS: ',$connect->get("DCS");
        echo "\n";
        $connect->quit();
    ?>

    Guarde y ejecute el archivo memcached.php. Se muestra el siguiente resultado.

    [root@testphpmemcached ~]# php memcached.php 
        DCS: Come on!
    [root@testphpmemcached ~]# 

SO de la serie Debian

El siguiente ejemplo utiliza el SO de Ubuntu para describir cómo instalar un cliente PHP y usarlo para acceder a una instancia de DCS Memcached.

  1. Instale los componentes de compilación de GCC y Make.

    apt install gcc make

  2. Instale el entorno PHP.

    Se recomienda PHP 5.x para una mejor compatibilidad con la autenticación SASL.

    Ejecute los siguientes comandos para agregar la fuente de imagen de PHP de una versión anterior, y luego instale los paquetes php.5.6 y php.5.6-dev:

    apt-get install -y language-pack-en-base;

    LC_ALL=en_US.UTF-8;

    add-apt-repository ppa:ondrej/php;

    apt-get update;

    apt-get install php5.6 php5.6-dev;

    Una vez completada la instalación, ejecute el comando php -version para comprobar la versión de PHP. Si se muestra el siguiente resultado, la versión de PHP es 5.6, lo que indica que PHP 5.6 se ha instalado correctamente.

    root@dcs-nodelete:/etc/apt# php -version
    PHP 5.6.36-1+ubuntu16.04.1+deb.sury.org+1 (cli) 
    Copyright (c) 1997-2016 The PHP Group

    Para desinstalar PHP, ejecute los siguientes comandos:

    apt install aptitude -y

    aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`

  3. Instale el componente SASL.

    apt install libsasl2-dev cloog.ppl

  4. Instale la biblioteca libMemcached.

    wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

    tar -xvf libmemcached-1.0.18.tar.gz

    cd libmemcached-1.0.18

    ./configure --prefix=/usr/local/libmemcached

    make && make install

    Antes de instalar la biblioteca libMemcached, instale los componentes GCC-C++ y SASL. De lo contrario, se informará de un error durante la compilación. Después de resolver el error, ejecute el comando make clean y, a continuación, ejecute el comando make de nuevo.

  5. Instale el cliente Memcached.

    Instale el componente zlib.

    apt install zlib1g.dev

    Tenga en cuenta que debe agregar un parámetro utilizado para habilitar SASL al ejecutar el comando configure.

    wget http://pecl.php.net/get/memcached-2.2.0.tgz;

    tar zxvf memcached-2.2.0.tgz;

    cd memcached-2.2.0;

    phpize5.6;

    ./configure --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached-sasl;

    make && make install;

  6. Modifique el archivo pdo.ini.

    Ejecute el siguiente comando para encontrar el archivo pdo.ini:

    find / -name pdo.ini

    Por defecto, el archivo pdo.ini se almacena en el directorio /etc/php/5.6/mods-available. Añada las siguientes dos líneas al archivo php.ini:

    extension=memcached.so
    memcached.use_sasl = 1
    Figura 2 Modificar el archivo pdo.ini

  7. Acceda a una instancia de DCS Memcached.

    Cree un archivo memcached.php y agregue el siguiente contenido al archivo:

    <?php
        $connect = new Memcached; //Declares a Memcached connection.
        $connect->setOption(Memcached::OPT_COMPRESSION, false); //Disables compression.
        $connect->setOption(Memcached::OPT_BINARY_PROTOCOL, true); //Uses the binary protocol.
        $connect->setOption(Memcached::OPT_TCP_NODELAY, true); //Disables the TCP network delay policy.
        $connect->addServer('{memcached_instance_ip}', 11211); //Specifies the instance IP address and port number.
        $connect->setSaslAuthData('{username}', '{password}'); //If password-free access is enabled for the instance, delete or comment out this line.
        $connect->set("DCS", "Come on!");
        echo 'DCS: ',$connect->get("DCS");
        echo "\n";
        $connect->quit();
    ?>

    Guarde y ejecute el archivo memcached.php. Se muestra el siguiente resultado.

    [root@dcs-nodelete ~]# php memcached.php 
        DCS: Come on!
    [root@dcs-nodelete ~]#