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
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
Apache Blog Fedora Linux

suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) – erro no httpd – FAILED – mod-ssl

Aconteceu em um servidor que cuido, instalei o mod_ssl com os certificados e do nada ele falhou, vi os log

cat /var/log/httpd/error_log
[Sun Jan 11 04:03:55 2015] [notice] Digest: generating secret for digest authentication ...
[Sun Jan 11 04:03:55 2015] [notice] Digest: done
[Mon Jan 12 08:31:14 2015] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

para resolver foi simples basta fazer os passos abaixo

em /etc/httpd/conf.d/nss.conf

adiciona essa linha:

NSSEnforceValidCerts off

God Bless

Categorias
Blog Linux Ubuntu

Desativar sessão convidado ubuntu 11.04

Segue um passo a passo simples
primeiro utilize seu editor favorito, o meu é o “vim”.

vim /etc/lightdm/lightdm.conf

após edite o arquivo que está assim [ Original ]
 

[SeatDefaults]
user-session=ubuntu
greeter-session=unity-greeter

modifique deixando o assim:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
allow-guest=false

e depois execute no terminal

sudo restart lightdm

prontinho agora não tem mais sessão convidado.
fonte: vivaolinux

Categorias
Blog Fedora Linux Ruby Ruby on Rails

Erro Could not find a JavaScript runtime – rails

se este erro ocorrer quando estiver executando “rails server” ou rails s
/usr/lib/ruby/gems/1.8/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect’: Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
from /usr/lib/ruby/gems/1.8/gems/execjs-1.4.0/lib/execjs.rb:5
from /usr/lib/ruby/gems/1.8/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require’
from /usr/lib/ruby/gems/1.8/gems/coffee-script-2.2.0/lib/coffee_script.rb:1
from /usr/lib/ruby/gems/1.8/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require’
from /usr/lib/ruby/gems/1.8/gems/coffee-script-2.2.0/lib/coffee-script.rb:1
from /usr/lib/ruby/gems/1.8/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1:in `require’
from /usr/lib/ruby/gems/1.8/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1
from /usr/lib/ruby/gems/1.8/gems/bundler-1.1.5/lib/bundler/runtime.rb:68:in `require’
from /usr/lib/ruby/gems/1.8/gems/bundler-1.1.5/lib/bundler/runtime.rb:68:in `require’
from /usr/lib/ruby/gems/1.8/gems/bundler-1.1.5/lib/bundler/runtime.rb:66:in `each’
from /usr/lib/ruby/gems/1.8/gems/bundler-1.1.5/lib/bundler/runtime.rb:66:in `require’
from /usr/lib/ruby/gems/1.8/gems/bundler-1.1.5/lib/bundler/runtime.rb:55:in `each’
from /usr/lib/ruby/gems/1.8/gems/bundler-1.1.5/lib/bundler/runtime.rb:55:in `require’
from /usr/lib/ruby/gems/1.8/gems/bundler-1.1.5/lib/bundler.rb:119:in `require’
from /Ruby/projeto/college/config/application.rb:7
from /usr/lib/ruby/gems/1.8/gems/railties-3.2.7/lib/rails/commands.rb:53:in `require’
from /usr/lib/ruby/gems/1.8/gems/railties-3.2.7/lib/rails/commands.rb:53
from /usr/lib/ruby/gems/1.8/gems/railties-3.2.7/lib/rails/commands.rb:50:in `tap’
from /usr/lib/ruby/gems/1.8/gems/railties-3.2.7/lib/rails/commands.rb:50
from script/rails:6:in `require’
from script/rails:6
instale o gem ‘therubyracer’ para javascript
no linux

gem install therubyracer

e depois execute

echo "gem 'therubyracer'" >> Gemfile

dentro do projeto.

Categorias
Blog Fedora Linux

Serviços inicializando junto com Linux

uma abordagem rapida sobre inicialização vou se referir a dois serviços, o apache e o mysql, que
foram instalados por yum
utilize o comando

#su root
#vim /etc/rc.local

e edite o arquivo deixando desse jeito

Categorias
Blog Linux

Bloquear Ping no Servidor ( em linux )

Para bloquear a requisição de pacotes ICMP no seu servidor, basta entrar como root

# su root

depois execute o comando

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

pronto agora não vai mais receber os pacotes em ICMP
Espero ter ajudado !

Categorias
Blog Linux

Matando Processos no Linux

Quando travar algum serviço seu no Linux não se desespere, basta abrir o Terminal
para listar todos os Serviços sendo executado no S.O:

$ ps aux
Categorias
Banco de Dados Blog Linux PostgreSQL

Dando permissão para acesso ao banco de dados PostgreSQL

dando permissão para acesso ao banco, caso você não esteja conseguindo conectar no Banco de dados de outro IP segue os comandos abaixo:
você precisa configurar o arquivo pg_hba.conf
vamos utilizar o vim do LINUX ( é um editor de texto )

   vim /opt/PostgresSQL/8.4/data_utf8/pg_hba.conf

Já editando o arquivo pg_hba.conf

Categorias
Banco de Dados Blog Linux PostgreSQL

Criando Cluster no PostgreSQL – Linux

Criando outro Cluster no Postgres, nesse artigo vou mostrar como Levantar outra Cluster no PostgreSQL, essa foi minha salvação, pois tinha uma aplicação mais antiga no servidor que estava em LATIN-1 Porém precisava de UTF-8 para rodar outra aplicação, e resolvi com os seguintes passos abaixo.
cluster em utf-8
Logue como usuario postgres:

    su – postgres