Instalação em PHP 5.5

Objetivo

O objetivo deste documento é identificar/descrever as melhores práticas de instalação WPMS em sistema operativo RHEL 6.5 ou centOS com a versão do php 5.5. Não contempla a vertente Funcional.

Instalação RHEL 6.5 ou centOS

No caso de instalação em RHEL 6.5 deverá fazer o download em http://www.redhat.com/ da versão para 64 bits para linux.

No caso de escolher o centOS, deve efectuar uma instalação normal da versão centOs 6.5 de 64 bits para linux, disponivel em http://wiki.centos.org/Download .

Webmin

Sugerimos que se instale o webmin para uma gestão mais prática do servidor.

yum install webmin

Rede

Para configuração da rede pode editar os seguintes ficheiros:

  • editar ficheiro /etc/hosts (nome do host)
  • editar ficheiro /etc/sysconfig/network-scripts/ifcfg-eth0 (endereço ip e da placa de rede)
  • editar ficheiro /etc/sysconfig/network

Em alternativa pode-se correr o comando:

setup

onde aparece uma janela de opção de modificar e configurar as opções de rede.

Não esquecer de depois no final de se efetuar “reboot” ao servidor.

Atualização de pacotes de software

Pode utilizar a opção existente no webmin para se fazer uma atualização de pacotes sugeridos pelo próprio sistema operativo. Aconselhamos que efetue a atualização nesses pacotes.

Adicionalmente aos pacotes sugeridos, deverá instalar os seguintes pacotes através dos comandos:

yum groupinstall “Development Tools”
yum install pcre-devel -y
yum install openssl-devel
yum install libxml2-devel
yum install libcurl-devel
yum install libjpeg-devel
yum install libpng-devel

yum install freetype-devel
yum install memcached
yum install pkgconfig
yum install openssl098e
mkdir -p /root/install
cd /root/install
wget http://pkgs.repoforge.org/libmcrypt/libmcrypt-2.5.7-1.2.el6.rf.x86_64.rpm
wget http://pkgs.repoforge.org/libmcrypt/libmcrypt-devel-2.5.7-1.2.el6.rf.x86_64.rpm
wget ftp://ftp.univie.ac.at/systems/linux/fedora/epel/6/x86_64/mcrypt-2.6.8-10.el6.x86_64.rpm
wget ftp://ftp.ntua.gr/pub/databases/postgresql/repos/yum/9.1/redhat/rhel-6-x86_64/mhash-0.9.9.9-
1.rhel6.x86_64.rpm
rpm -ivh libmcrypt-*
rpm -ivh mhash-0.9.9.9-1.rhel6.x86_64.rpm
rpm -ivh mcrypt-2.6.8-10.el6.x86_64.rpm

Instalação do Apache

Como não vamos instalar a versão sugerida pelo repositório não iremos utilizar o comando yum install. Como queremos uma versão especifica iremos fazer download dessa versão. Deverá fazer os seguintes comandos:

cd /root/install

wget ftp://mirrors.fe.up.pt/pub/apache/httpd/httpd-2.4.10.tar.gz

tar xfvz httpd-2.4.10.tar.gz

wget http://apache.osuosl.org/apr/apr-1.5.1.tar.bz2

wget http://apache.osuosl.org/apr/apr-util-1.5.3.tar.bz2

bunzip2 apr-1.5.1.tar.bz2

tar -xvf apr-1.5.1.tar

mv apr-1.5.1 httpd-2.4.10/srclib/apr

bunzip2 apr-util-1.5.3.tar.bz2

tar -xvf apr-util-1.5.3.tar

mv apr-util-1.5.3 httpd-2.4.10/srclib/apr-util

cd httpd-2.4.10

./configure –prefix=/www –with-mpm=prefork –enable-so –enable-rewrite –enable-vhosts-alias –enablessl
–enable-modules=’unique-id’ –with-included-apr

make

make install

No final será necessário editar o ficheiro /www/conf/httpd.conf. No anexo 1 indicamos uma sugestão de uma configuração no ficheiro httpd.conf.

Caso tenha a firewall ativa no servidor terá que dar autorização ao porto, normalmente o 80. Pode utilizar o webmin para criar essa regra na firewall. Disponível no menu do webmin em “Networking → Linux Firewall”. Na área nos anexos encontra um print das regras que deverá ter na firewall.

Para arrancar o apache deve ser através do comando:

/www/bin/apachectl start

Para parar o apache deve ser feito através do comando:

/www/bin/apachectl stop

Para fazer restart ao apache deve ser feito através do comando:

/www/bin/apachectl restart

Utilizador wpms

Deverá criar um utilizador wpms, poderá fazê-lo através do webmin. Disponível no menu “System → Users and Groups”.

Instalar Oracle Client

Instalar os pacotes oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm e oracle-instantclient11.2-basic- 11.2.0.3.0-1.x86_64.rpm disponiveis no site da oracle para download.

Depois do download e estando na respetiva pasta dos ficheiros correr o comando:

rpm -ivh oracle-instantclient*

Adicionalmente, fazer os comandos:

setsebool -P httpd_can_network_connect 1

cd /usr/lib/oracle/11.2/client64

mkdir network; mkdir network/admin; cd network/admin

Depois editar o ficheiro tnsnames.ora que se deve encontrar nesta pasta e adaptar à nossa configuração.

Atualizar o ficheiro “/etc/hosts” com os servidores de base de dados.

Verificar variáveis de ambiente de root em “$HOME/.bash_profile”:

ORACLE_HOME=/usr/lib/oracle/11.2/client64
export ORACLE_HOME
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/11.2/client64/lib
export LD_LIBRARY_PATH
SQLPATH=/usr/lib/oracle/11.2/client64/lib/:${SQLPATH}
export SQLPATH
NLS_LANG=american_america.we8iso8859p15
export NLS_LANG
PATH=$PATH:/usr/lib/oracle/11.2/client64/bin
export PATH

Instalação do php 5.5

Existe várias versões do php 5.5, neste documento iremos exemplificar a versão 5.5.16.

Devemos fazer download do php 5.5 através dos comandos:

cd /root/install/

wget http://pt1.php.net/get/php-5.5.1 6 .tar.bz2/from/this/mirror – O php-5.5.16.tar.bz2

bunzip2 php-5.5..tar.bz2 tar -xvf php-5.5..tar

cd php-5.5.*

./configure –prefix=/usr/local –with-config-file-path=/etc –with libdir=/lib64 –enable-fpm –with-xmlrpc –enable-wddx –with-iconv –enable-sockets –enable-mbstring –with-curl –with-mysqli –with-gd –enablesoap –with-freetype-dir=/usr/local/lib –with-mcrypt=/usr/lib64 -with-openssl –with-zlib –enable-pcntl –enable-posix –enable-shmop – enable-sysvsem –enable-sysvshm –enable-sysvmsg –enable-sigchild –enable-zip –with-jpeg-dir=/usr/local/lib –with-png-dir=/usr/local/lib64 –with-zlib-dir=/usr/local/lib64 – with-oci8=instantclient,/usr/lib/oracle/11.2/client64/lib

make

make install

Nota: no comando configure estamos a passar os parâmetros para instalação de Oracle e de mysql. Se não for necessário um deles retirar do comando.

Devemos aplicar o patch “http://kai.mactane.org/software/patch-pear builder-1.38.txt” no ficheiro Builder.php do PEAR para poder utilizar “pecl”.

O ficheiro Builder.php encontra-se em /usr/local/lib/php/PEAR/Builder.php

Na pasta /root/install/php-5.5.16/sapi/fpm:

  • copiar ficheiro php-fpm.conf para /etc/php-fpm.conf e declarar variaveis globais

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
env[ORACLE_HOME] = /usr/lib/oracle/11.2/client64
env[LD_LIBRARY_PATH] = /usr/lib/oracle/11.2/client64/lib
env[NLS_LANG] = american_america.we8iso8859p15

  • copiar ficheiro init.d.php-fpm para /etc/init.d/php-fpm
  • copiar ficheiro status.html para o document root do apache /www/htdocs/

Devemos registar o serviço php-fpm para facilitar o start e o stop, através do comando:

/sbin/chkconfig php-fpm on

No ficheiro /etc/init.d/php-fpm alterar a linha “php_fpm_CONF=${prefix}/etc/php-fpm.conf” para “php_fpm_CONF=/etc/php-fpm.conf”

Fazer o download do monitor opcache:

wget https://raw.github.com/rlerdorf/opcache-status/master/opcache.php

Copiar ficheiro opcache.php para document root do apache /www/htdocs/

No final verificar se o php aponta para o php.ini em /etc/php.ini através do comando:

php -i |grep php.ini

Para arrancar o php deve ser através do comando:

/etc/init.d/php-fpm stop

Para fazer um restart ao php deve ser através do comando:

/etc/init.d/php-fpm restart

Nota:

Após um upgrade deve ser feito um restart ao php

Profiler

Instalação através dos comandos:

pecl config-set preferred_state beta

pecl install xhprof

echo “extension=xhprof.so” >> /etc/php.ini

igbinary

Instalação através dos comandos:

pecl install igbinary

echo “extension=igbinary.so” >> /etc/php.ini

Memcache

Instalação através dos comandos:

pecl install memcache

Nota:
Enable memcache session handler support? [yes] : yes.

Couchbase

Especificações mínimas sugeridas: 4GB RAM e Dual-core CPU running at 2GHz for key-value store num sistema a 64 bits.

Através de comandos:

cd /root/install/

wget http://packages.couchbase.com/releases/2.2.0/couchbase server-community_2.2.0_x86_64.rpm

rpm -ivh couchbase-server-community_2.2.0_x86_64.rpm

wget -O /etc/yum.repos.d/couchbase.repo http://packages.couchbase.com/rpm/couchbasecentos62- x86_64.repo

sudo yum check-update

sudo yum install -y libcouchbase2-libevent libcouchbase-devel

pecl install couchbase

No final actualizar o php.ini com “extension=couchbase.so”

Na firewall através do webmin as portas: 8091:8092, 4369, 21100:21199, 11209:11211

Na configuração do couchbase server e bucket, disponivel através do url http://:8091/index.html

  • piscar “enable auto-failover” na aba “Settings->Fail over”
  • criar o data bucket “WPMS_sessions” (o default pode ser eliminado)
  • criar uma view em “_design/dev_sessions” com o nome “sessions_keys” (o emit é: “emit(meta.id, meta.expiration);”) e publicar
  • se não é o primeiro servidor lembrar de activar os outros em “Server Nodes”

Anexos

Ficheiro httpd.conf

Print Firewall

Print Utilizador wpms

Exemplo tnsnames.ora

# TNSNAMES.ORA Network Configuration File: /oracle/client/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

WPMS, WPMS.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = jabbanew.isretail.eu)(PORT = 1521))
(CONNECT_DATA =
(SID = WPMS)
(SERVICE_NAME = wpms.isretail.eu)
(GLOBAL_NAME = WPMS.WORLD)
)
)