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.
- Instale os componentes de compilação GCC-C++ e Make.
yum install gcc-c++ make
- Instalar pacotes SASL relacionados.
yum install cyrus-sasl*
- 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.
- 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.
- 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
- 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
- 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.
- Instale os componentes de compilação GCC e Make.
apt install gcc make
- 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" " "`
- Instale o componente SASL.
apt install libsasl2-dev cloog.ppl
- 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.
- 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;
- 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
- 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 ~]#