Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2022-11-08 GMT+08:00

PHP

Acesse uma instância do DCS Memcached no PHP em um ECS na mesma VPC.

Pré-requisitos

  • A instância do Memcached DCS que você deseja acessar está no estado Running.
  • Efetue login no ECS. Para obter detalhes sobre como criar os ECS, consulte o Guia do usuário do Elastic Cloud Server.

    Um ECS pode se comunicar com uma instância de DCS que pertence à mesma VPC e está configurada com o mesmo grupo de segurança.

    • Se a instância do ECS e do DCS estiverem nas VPC diferentes, estabeleça uma conexão de peering de VPC para obter conectividade de rede entre o ECS e a instância do DCS. Para obter detalhes, consulte O DCS oferece suporte ao acesso entre VPC?
    • Se grupos de segurança diferentes tiverem sido configurados para a instância do ECS e do DCS, defina regras de grupo de segurança para obter conectividade de rede entre o ECS e a instância do DCS. Para obter detalhes, consulte Como configurar um grupo de segurança?

Os SO da série Red Hat

A seguir, o CentOS 7.0 é usado como um exemplo para descrever como instalar um cliente PHP e usá-lo para acessar uma instância do Memcached DCS. O procedimento também é aplicável a um cliente PHP rodando o SO de Red Hat ou Fedora.

  1. Instale os componentes de compilação GCC-C++ e Make.

    yum install gcc-c++ make

  2. Instalar pacotes SASL relacionados.

    yum install cyrus-sasl*

  3. Instale a biblioteca libMemcached.

    A instalação da biblioteca libMemcached requer parâmetros de autenticação SASL. Portanto, você não pode instalar a biblioteca executando o 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 a biblioteca libMemcached, instale os componentes GCC-C++ e SASL. Caso contrário, um erro será relatado durante a compilação. Depois de resolver o erro, execute o comando make clean e, em seguida, execute o comando make novamente.

  4. Instalar o ambiente PHP.

    yum install php-devel php-common php-cli

    PHP 7.x não suporta autenticação SASL. Use o PHP 5.6. Se a versão do yum php não for 5.6, baixe uma da Internet.

  5. Instale o cliente Memcached.

    Observe que você deve adicionar um parâmetro usado para habilitar o SASL ao executar o 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 o arquivo php.ini.

    Execute o comando find ou locate para encontrar o arquivo php.ini.

    find / -name php.ini

    Adicione as duas linhas a seguir ao arquivo php.ini:

    extension=memcached.so
    memcached.use_sasl = 1
    Figura 1 Modificando o arquivo php.ini

  7. Acessar uma instância do Memcached DCS.

    Crie um arquivo memcached.php e adicione o seguinte conteúdo ao arquivo:

    <?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();
    ?>

    Salve e execute o arquivo memcached.php. O seguinte resultado é exibido.

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

Sistemas operacionais da série Debian

O seguinte usa o SO de Ubuntu como um exemplo para descrever como instalar um cliente PHP e usá-lo para acessar uma instância do DCS Memcached.

  1. Instale os componentes de compilação GCC e Make.

    apt install gcc make

  2. Instalar o ambiente PHP.

    O PHP 5.x é recomendado para uma melhor compatibilidade com a autenticação SASL.

    Execute os seguintes comandos para adicionar a fonte da imagem do PHP de uma versão anterior e, em seguida, instale os pacotes php.5.6 e 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;

    Depois que a instalação estiver completa, execute o comando php -version para verificar a versão do PHP. Se o seguinte resultado for exibido, a versão do PHP é 5.6, indicando que o PHP 5.6 foi instalado com sucesso.

    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 o PHP, execute os seguintes comandos:

    apt install aptitude -y

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

  3. Instale o componente SASL.

    apt install libsasl2-dev cloog.ppl

  4. Instale a 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 a biblioteca libMemcached, instale os componentes GCC-C++ e SASL. Caso contrário, um erro será relatado durante a compilação. Depois de resolver o erro, execute o comando make clean e, em seguida, execute o comando make novamente.

  5. Instale o cliente Memcached.

    Instale o componente zlib.

    apt install zlib1g.dev

    Observe que você deve adicionar um parâmetro usado para habilitar o SASL ao executar o 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 o arquivo pdo.ini.

    Execute o seguinte comando para localizar o arquivo pdo.ini:

    find / -name pdo.ini

    Por padrão, o arquivo pdo.ini é armazenado no diretório /etc/php/5.6/mods-available. Adicione as duas linhas a seguir ao arquivo php.ini:

    extension=memcached.so
    memcached.use_sasl = 1
    Figura 2 Modificando o arquivo pdo.ini

  7. Acesse uma instância do Memcached DCS.

    Crie um arquivo memcached.php e adicione o seguinte conteúdo ao arquivo:

    <?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();
    ?>

    Salve e execute o arquivo memcached.php. O seguinte resultado é exibido.

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