Categorias
Linux PHP Ubuntu

Instalar oci8 php7.4-fpm (Ubuntu)

mkdir /opt/oracle

cd /opt/oracle

ver outras versões
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/

wget https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-basic-18.3.0.0.0-3.x86_64.rpm
wget https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient18.3-devel-18.3.0.0.0-3.x86_64.rpm

alien -i oracle-instantclient18.3-basic-18.3.0.0.0-3.x86_64.rpm
alien -i oracle-instantclient18.3-devel-18.3.0.0.0-3.x86_64.rpm

sudo apt-add-repository ppa:ondrej/php
sudo apt-get update

sudo apt-get install php7.4-cli php7.4-fpm php7.4-curl php7.4-gd php7.4-mysql php7.4-mbstring php7.4-xml zip unzip

–Caso precise alterar a versão do PHP
sudo update-alternatives --config php

sudo apt-get install php-dev php-pear build-essential libaio1

pecl install oci8

instantclient,/usr/lib/oracle/18.3/client64/lib

echo "extension = oci8.so" >> /etc/php/7.4/fpm/php.ini
echo "extension = oci8.so" >> /etc/php/7.4/cli/php.ini

sudo systemctl restart php7.4-fpm

php -m | grep 'oci8'
caso retorne oci8, a configuração esta correta e pronto para usar

Categorias
PHP wordpress

remover atualizações em um plugin

As vezes fazemos algumas modificações em um plugin e não queremos que ninguem atualize para não perder as suas modificações, então oque fazer, basta apenas ir no plugin que deseja e colocar o código abaixo

add_filter('site_transient_update_plugins', 'remove_notificacao');
function remove_notificacao($value) {
unset($value->response[ plugin_basename(__FILE__) ]);
return $value;
}

God bless

Categorias
Blog Mysql PHP Zend Framework 2

Warning: class_implements(): Class Doctrine\DBAL\Driver\PDOMysql\Driver does not exist and could not be loaded

Esse erro é devido ao chamar o driverClass do doctrine colocar o PDOMysql basta colocar o “PDOMySql” com o S maiúsculo.

Categorias
Blog Linux PHP Ubuntu

Multiplas versões PHP Ubuntu – PHPFarm

Tenho um ambiente de desenvolvimento para mostrar aos clientes, como está o processo de desenvolvimento de seus projetos, e as vezes pego alguns projetos para dar manutenção que o PHP é antigo 5.4 ás vezes é 5.5.6 outros com o ZF2 com PHP mais novo, oque fazer com esse problema, pois bem o PHPFarm é a solução para esse impasse
Instalando o Lamp Server ( Caso não tenha instalado )

sudo apt-get update && sudo apt-get upgrade $$ sudo apt-get install lamp-server^

No caso se você já instalou o php5 como módulo do Apache você pode desativar ele primeiro (Opcional)

a2dismod php5

Dependências necessárias

sudo apt-get install build-essential git apache2-mpm-worker libapache2-mod-fastcgi php5-fpm vim

Dependencias PHP

sudo apt-get build-dep php5

Clone GIT PHPFarm

 sudo git clone https://github.com/cweiske/phpfarm.git /opt/phpfarm

/opt/ não é opcional é obrigatório
Vá até o local dp SRC PHPFarm

   cd /opt/phpfarm/src

em options.sh você pode ver oque vai ser configurado de começo mas é algo bem simples, então vamos criar um arquivo custom-options.sh que será o arquivo que vai compilar junto ao options.sh
crie o arquivo custom-options.sh

sudo vim custom-options.sh

Abaixo está o conteúdo de custom-options.sh

configoptions="
--enable-cli \
--enable-debug \
--enable-bcmath \
--enable-calendar \
--enable-exif \
--enable-ftp \
--enable-mbstring \
--enable-pcntl \
--enable-soap \
--enable-sockets \
--enable-sqlite-utf8 \
--enable-wddx \
--enable-zip \
--enable-readline \
--enable-posix \
--with-readline \
--with-posix
--with-apache2 \
--with-openssl \
--with-zlib \
--with-gettext \
--with-pear \
--with-curl \
--with-gd \
--with-mcrypt \
--with-pdo-mysql \
--enable-mbstring \
--with-mysqli \
--with-mysql -with-libdir=/lib/i386-linux-gnu \
"

obs: você pode criar para cada versão do php usando por exemplo custom-options-5.5.6.sh ou custom-options-5.6.2.sh assim por diante, como eu vou usar a mesma config para todos deixo no custom-options.sh que serve para todos que forem instalados
de permissão ao custom-options.sh

chmod +x custom-options.sh

Compilando as versões de PHP
Você pode compilar qualquer versão do PHP, basta ver a lista nesse link http://museum.php.net
tendo em vista que queira o php 5.5.6 e o 5.6.2

   sudo ./compile.sh 5.5.6
   sudo ./compile.sh 5.6.2

e assim por diante qual versão quiser e só verificar no museum e mandar a versão.
Agora vamos habilitar o Fast-CGI

   sudo a2enmod actions fastcgi alias

Reinicie o apache

   sudo service apache2 restart

Agora vamos configurar o FastCgiServer
criando um arquivo no conf.d para iniciar junto ao apache

   sudo vim /etc/apache2/conf.d/php-cgisetup.conf

vai abrir uma tela preta no terminal, aperte I para poder inserir e coloque o código abaixo

   #php-cgi setup
   #utilizado para multiplas versoes do PHP
   FastCgiServer /var/www/cgi-bin/php-cgi-5.5.6
   FastCgiServer /var/www/cgi-bin/php-cgi-5.6.2
   ScriptAlias /cgi-bin-php/ /var/www/cgi-bin/

Pode colocar quantos FastCgiServer quiser só basta colocar a versão certa, caso fique aparecendo erro 500 pode ser que você colocou alguma versão errada por exemplo um 5.5.0 invez de 5.5.6 só atentar aos detalhes
agora vamos criar o cgi-bin

   sudo mkdir /var/www/cgi-bin

Criando o arquivo binário php-cgi-5.5.6

   #!/bin/sh
   PHP_FCGI_CHILDREN=3
   export PHP_FCGI_CHILDREN
   PHP_FCGI_MAX_REQUESTS=5000
   export PHP_FCGI_MAX_REQUESTS
   exec /opt/phpfarm/inst/bin/php-cgi-5.5.6

Criando o arquivo binário php-cgi-5.6.2

   #!/bin/sh
   PHP_FCGI_CHILDREN=3
   export PHP_FCGI_CHILDREN
   PHP_FCGI_MAX_REQUESTS=5000
   export PHP_FCGI_MAX_REQUESTS
   exec /opt/phpfarm/inst/bin/php-cgi-5.6.2

Trocando dono do da pasta cgi-bin

  sudo chown -R www-data:www-data /var/www/cgi-bin

Permissão no cgi-bin

  sudo chmod -R 0744 /var/www/cgi-bin

agora vamos criar um arquivo virtualhost vá em

  cd /etc/apache2/sites-available

Crie um arquivo

  sudo vim php-dev

aperte o i para inserir o conteúdo e coloque o conteúdo abaixo !

<VirtualHost *:80>
ServerName meudev.com
DocumentRoot /var/www
 <Directory /var/www>
   Options FollowSymLinks
   AddHandler php-cgi .php
   AllowOverride All
   Action php-cgi /cgi-bin-php/php-cgi-5.5.6
 </Directory>
#colocando em um diretório especifico a versão do php
 <Directory /var/www/meu-projeto>
   Options FollowSymLinks
   AddHandler php-cgi .php
   AllowOverride All
   Action php-cgi /cgi-bin-php/php-cgi-5.6.2
 </Directory>
 ErrorLog /var/log/apache2/error.log
 LogLevel warn
 CustomLog /var/log/apache2/access.log combined
</VirtualHost>

Caso esteja fazendo na sua maquina pode criar apartir de sites separados (opcional, caso seja em sua maquina não em um cloud)

<VirtualHost *:80>
ServerName teste556.com
DocumentRoot /var/www
 <Directory />
   Options FollowSymLinks
   AllowOverride All
   AddHandler php-cgi .php
   Action php-cgi /cgi-bin-php/php-cgi-5.4.0
 </Directory>
 ErrorLog /var/log/apache2/error.log
 LogLevel warn
 CustomLog /var/log/apache2/access.log combined
 </VirtualHost>
 <VirtualHost *:80>
 ServerName teste562.com
 DocumentRoot /var/www
 <Directory />
   Options FollowSymLinks
   AllowOverride All
   AddHandler php-cgi .php
   Action php-cgi /cgi-bin-php/php-cgi-5.5.0
 </Directory>
 ErrorLog /var/log/apache2/error.log
 LogLevel warn
 CustomLog /var/log/apache2/access.log combined
 </VirtualHost>

Agora vamos desativar o virtual host default (padrão)

sudo a2dissite default

agora vamos ativar o qual criamos php-dev

  sudo a2ensite php-dev

de um reload no apache

  sudo service apache2 reload

agora vamos ver se está tudo ok crie um arquivo info.php

  sudo vim /var/www/info.php

e cole

<?php phpinfo(); ?>

veja seu ip (e pegue o inet addr:IP)  

    ifconfig
    vim /etc/hosts

coloque o ip com o dominio (opcional, caso seja em sua maquina não em um cloud)

    192.168.1.10 teste556.com
    192.168.1.10 teste562.com

agora veja se está tudo ok teste556.com/info.php e teste562.com/info.php
Adicionar mais modulos no PHPfarm
vamos localizar seu php.ini do php 5.5.6

/opt/phpfarm/inst/bin/php-5.5.6 --ini

vai aparecer a seguinte mensagem

Configuration File (php.ini) Path: /opt/phpfarm/inst/php-5.5.6/lib
Loaded Configuration File:         /opt/phpfarm/inst/php-5.5.6/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

se precisar de qualquer config já sabe onde está o php.ini neste caso /opt/phpfarm/inst/php-5.5.6/lib/php.ini
caso você precise de um novo modulo no php exemplo xdebug

cd /opt/phpfarm/
pear download pecl/xdebug

no meu caso foi o xdebug-2.3.3

tar -cvf xdebug-2.3.3.tar

Acesse o arquivo descompactado

cd xdebug-2.3.3

verificando se está tudo ok na versão que vai instalar o modulo

/opt/phpfarm/inst/bin/phpize-5.5.6

Compilando

./configure --with-php-config=/opt/phpfarm/inst/bin/php-config-5.5.6

 

make && make install

Se tudo ocorrer certo basta da um reload

/etc/init.d/apache2 reload

Pronto =)
Espero ter ajudado, eu achei fantástico essa ferramenta, para quem faz freelance é uma mão na roda no começo é meio chato de instalar mais vale a pena !
Fontes
http://www.fabiomingorance.com.br/instalando-multiplas-versoes-php-no-ubuntu-14/
https://cweiske.de/tagebuch/phpfarm-install-extensions.htm

Categorias
Blog CakePhp

CakePHP 2.x – AuthComponent utilizando outra tabela do banco de dados

Comecei a me aprofundar no CakePHP, e vou começar a fazer uma serie de POST no qual eu julgo importa em aplicação com esse framework.

Categorias
PHP

Limite de memória no prestashop

The following module(s) couldn’t be loaded:

  1. All the modules cannot be loaded due to memory limit restriction, please increase your memory_limit value on your server configuration

se fosse se deparar com a mensagem acima nos modulo, é simples resolver entre em config/config.inc.php e insira a seguinte linha

ini_set('memory_limit','128M');
Categorias
Blog PHP

Getters and Setters para o PHP no Eclipse

Primeiramente vamos ir ao site do plugin http://pdt.plugins.e-surf.pl/install.php , e apos abra seu eclipse e vá em
“help > Install New Software”  abrira a janela abaixo, agora va em Add… ao lado do Work with e abrira o Add Repository, agora coloque o nome do plugin em Name e link no Location, após de um OK

depois do ok aparecera para dar um next, e depois um finish aceite o termo e ele irá instalar

já instalado, abrira um menu chmado PHP Source click no mesmo e depois abrira Generate Getter and Setters…

ele ira ver a sua classe e ver seus atributos no meu caso, id, titulo, texto, dtinclusao, imagem e status
feito isso escolha os atributos e basta gerar os getters and setters.

 
Facilita bastante no desenvolvimento, o NetBeans é melhor em relação a getters and setters para o PHP, mas esse plugin já faz o serviço.
God Bless

Categorias
Blog PHP Zend Framework

Mensagem de erro personalizada banco de dados indisponível – ZendFramework

Bom vou falar sobre a mensagem personalizada de erro caso o banco de dados esteja indisponivel.
vamos la… no bootstrap.php do ZendFramework basta você inserir o metodo abaixo.

protected function _initConnection()
    {
        $options    = $this->getOption('resources');
        $db_adapter = $options['db']['adapter'];
        $params     = $options['db']['params'];
        try{
            $db = Zend_Db::factory($db_adapter, $params);
            $db->getConnection();
            $registry = Zend_Registry::getInstance();
            $registry->set('db', $db);
        }catch( Zend_Exception $e){
            //echo $e->getMessage();
            echo "





Estamos sem conexão ao banco de dados no momento.
já estamos providenciando a Solução.

Mensagem de Erro : " . $e->getMessage() . "
"; exit; } }

pode ver que possui um “echo” com html dentro, basta personalizar ao seu gosto, espero que tenha gostado.

Categorias
Banco de Dados Blog Oracle PHP Zend Framework

Zend_Db_Expr – Pegar Data atual do Banco de dados ZendFramework e Oracle

o Zend possui um método muito bom, que pode ser usado para trabalhar com banco de dados, neste caso estou usando banco de dados Oracle.
para utilizar em banco de dados oracle basta acrescentar a linha de baixo

new Zend_Db_Expr('SYSDATE');

estou ensinando somente para a data, mas podem ser feito farias coisas dentro do banco de dados, lembrando que são as funções do banco de dados que serão usadas dentro do ”.

Categorias
Blog PHP Zend Framework

Retirar Parâmetros desnecessários do link – Zend Framework

As Vezes o Zend Fica com alguns GET na URL,
Ex: http://www.meusite.com.br/id/3 , e você direciona para outro lugar e esse /id/3 continua,
para tirar isso basta passar dois parametros ex: abaixo