Para atualizar a versão do PHP, basta acessar o Cpanel buscar por configuração PHP.
Para atualizar a versão do PHP, basta acessar o Cpanel buscar por configuração PHP.
O Postman é uma API cliente que permite desenvolvedores realizarem testes a partir de requisições HTTP.
É possível utilizar vários tipos de requisições, como exemplo, GET, POST, PUT e DELETE que são as mais comuns.
Para baixar o software post acesse: https://www.postman.com
Depois de ter instalado, acesse o programa e na tela inicial, no menu [File], clique em [new] ou clique no sinal [+] para abrir uma nova página de testes.
Em seguida selecionar o tipo de testes que deseja realizar, insira a URL e clique em Send.
https://fabianobento.com/webjson/products/
https://fabianobento.com/webjson/products/2
Teste com DELETE
POST
Consultando a informação na tabela.
php artisan migrate
[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes (SQL: alter table users
add unique users_email_unique
(email
))
Este erro ocorre devido a capacidade de armazenamento do engine (charset) do banco de dados;
Inclua a linha $table->engine = ‘InnoDB’; nos arquivos [migrations] para evitar o erro.
Caso queira manter como MyISAM edite o arquivo Builder.php, conforme descrito abaixo.
Correção rápida: Edite o arquivo; vendor\laravel\framework\src\Illuminate\Database\Schema\Builder.php
Alterando a variável $ defaultStringLength = 255;, para $defaultStringLength = 250;. Conforme o exemplo abaixo;
Exemplo:
public static $defaultStringLength = 255;
public static $defaultStringLength = 250;
PHP LDAP – Autenticação de usuários
Olá pessoal, neste artigo de hoje estarei abordando a conexão/autenticação de usuários PHP via LDAP. (pode ser usada para autenticar no Active Directory do windows server), criar um login unificado.
Está conexão será utilizada em uma abordagem para projeto de criação de Intranet Corporativa básica, com poucas funcionalidades e que poderá ser aprimoradas conforme as necessidades surgirem.
O que é LDAP?
https://pt.wikipedia.org/wiki/LDAP
Uma utilização comum do LDAP é fornecer um “logon único” onde uma senha para um usuário é compartilhada entre muitos serviços, como a aplicação de um código de login da companhia para páginas web (de forma que a equipe loga apenas uma vez aos computadores da companhia e então são automaticamente logadas na intranet da companhia).
1º Passo – O primeiro passo é a configuração do PHP .
PHP LDAP
http://php.net/manual/pt_BR/book.ldap.php
Localize o arquivo php.ini dentro do diretório de instalação do servidor web (apache), e em seguida abra usando um editor de texto(notepad, edit plus, sublime…).
Encontre a linha ;extension=php_ldap.dll e remova o (;)ponto e vírgula no inicio, salve, feche e reinicie o serviço do servidor web (apache)
2º Passo – Criação do arquivo de conexão
Hoje vou mostrar como configurar o wamp server e preparar o ambiente de trabalho.
Testes realizados com o WAMP 2.4
WampServer 2.4 – Windows 32 Bits
Apache : 2.4.4
MySQL : 5.6.12
PHP : 5.4.16
PHPMyAdmin : 4.0.4
SqlBuddy : 1.3.3
XDebug : 2.2.3
Link para download:
http://sourceforge.net/projects/wampserver/files/WampServer%202/Wampserver%202.4/
Para trabalhar com vhosts temos que adicionar no arquivo hosts os alias com o nome do computador e os sites que você irá trabalhar, segue exemplo abaixo;
C:\Windows\System32\drivers\etc\hosts
127.0.0.1 localhost
127.0.0.1 nome-pc
127.0.0.1 meusite.local
127.0.0.1 meusite.dev
Na sequencia precisamos configurar o Apache para trabalhar com vhosts.
Localizar o arquivo httpd.conf
C:\wamp\bin\apache\Apache2.4.4\conf\httpd.conf
Descomentar as linhas abaixo
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
#Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-vhosts.conf
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule rewrite_module modules/mod_rewrite.so
Agora iremos editar o arquivo httpd-vhosts.conf, adicionando os alias de domínios que informamos no arquivo hosts.
C:\wamp\bin\apache\Apache2.4.4\conf\extra\httpd-vhosts.conf
Acrescentar as linhas abaixo
<VirtualHost localhost:80>
ServerAdmin mail@mail.com
DocumentRoot “C:/wamp/www”
ServerName localhost
ServerAlias localhost
ErrorLog “logs/localhost-error.log”
CustomLog “logs/localhost-access.log” common
</VirtualHost>
<VirtualHost nome-pc:80>
ServerAdmin mail@mail.com
DocumentRoot “C:/wamp/www”
ServerName nome-pc
ServerAlias nome-pc
ErrorLog “logs/nome-pc-error.log”
CustomLog “logs/nome-pc-access.log” common
</VirtualHost>
<VirtualHost meusite.local:80>
ServerAdmin mail@mail.com
DocumentRoot “C:/wamp/www/meusite.local”
ServerName meusite.local
ServerAlias meusite.local
ErrorLog “logs/meusite.local-error.log”
CustomLog “logs/meusite.local-access.log” common
</VirtualHost>
<VirtualHost meusite.dev:80>
ServerAdmin mail@mail.com
DocumentRoot “C:/wamp/www/meusite.dev”
ServerName meusite.dev
ServerAlias meusite.dev
ErrorLog “logs/meusite.dev-error.log”
CustomLog “logs/meusite.dev-access.log” common
</VirtualHost>
Após acrescentar os dados, salvar o arquivo e reiniciar os serviços do wamp server, e acessar os endereços configurados;
http://localhost
http://meusite.dev
http://meusite.local
Como instalar Apache, MySQL e PHP (LAMP) no CentOS 6.3
30/09/2012
Neste artigo vou descrever a maneira mais simples e rapida para configurar um servidor LAMP Apache, MySQL e PHP
Instalar o Apache
yum install httpd
instalar MySQL
yum install mysql-server
Iniciar o serviço do MySQL
service mysqld start
mysql_secure_installation
yum install php php-mysql
chkconfig httpd on
chkconfig mysqld on
service http start
Editado em 01/05/2013 19:20h
Desenvolvendo um sistema de enquete (Novo) PHP/MySQL Parte 1 (Planejamento)
A pedido de alguns de visitantes estou reformulando o tutorial antigo de enquete.
O primeiro passo é definirmos a estrutura que iremos trabalhar. Esta estapa é um levantamento das informações que vamos precisar.
Este será um sistema para enquetes com ilimitadas opções, sendo que no tutorial anterior eu havia criado o banco de dados com varias colunas, porém não é o ideal, pois não devemos ter colunas na tabela que não serão utilizadas.
Na segunda parte, estarei fazendo um código mais simplificado pois o foco deste tutorial é trabalhar mais o conceito da enquete.
Abaixo vou colocar o código das tabelas do banco e irei explicar o que será armazenado em cada uma.
Para entender o porque usei algumas siglas nas colunas, sugiro a leitura do Artigo:
Padrões para Nomenclatura em um banco de dados
http://blog.fabianobento.com.br/2011/09/padroes-para-nomenclatura-em-um-banco-de-dados/
Diagrama
Começando pela tabela das perguntas.
Precisamos, de um código para a enquete, a data do cadastro para sabermos quando foi cadastrada. Eu coloquei a coluna DT_INICIO, DT_FIM, para configuramos no código fonte quando a enquete será iniciada e encerrada, desta forma não seria necessário acessar o painel de controle para esta tarefa.
CREATE TABLE IF NOT EXISTS `enquete_perguntas` ( `CD_ENQUETE` int(11) NOT NULL AUTO_INCREMENT COMMENT 'codigo da enquete', `DT_CADASTRO` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'data do cadastro', `NM_ENQUETE` varchar(150) NOT NULL COMMENT 'nome da enquete', `DS_PERGUNTA` varchar(150) NOT NULL COMMENT 'pergunta da enquete', `DT_INICIO` date NOT NULL COMMENT 'data inicio que será exibida', `DT_FIM` date NOT NULL COMMENT 'data final da exibição no site', `IE_SITUACAO` enum('A','I') NOT NULL COMMENT 'situação da enquete, Ativa ou Inativa', PRIMARY KEY (`CD_ENQUETE`), UNIQUE KEY `DT_INICIO` (`DT_INICIO`), UNIQUE KEY `DT_FIM` (`DT_FIM`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Entidade para armazenar as perguntas das enquetes' AUTO_INCREMENT=2 ; -- -- Extraindo dados da tabela `enquete_perguntas` -- INSERT INTO `enquete_perguntas` (`CD_ENQUETE`, `DT_CADASTRO`, `NM_ENQUETE`, `DS_PERGUNTA`, `DT_INICIO`, `DT_FIM`, `IE_SITUACAO`) VALUES (1, '2013-04-25 17:48:15', 'Operadora de Celular', 'Qual sua operadora de celular?', '2013-04-25', '2013-04-30', 'A');
Como estamos fazendo um sistema para ilimitadas opções, precisamos de uma outra tabela para armazenas estes dados.
-- -- Estrutura da tabela `enquete_opcoes` -- CREATE TABLE IF NOT EXISTS `enquete_opcoes` ( `NR_OPCAO` int(11) NOT NULL AUTO_INCREMENT COMMENT 'numero da opção', `CD_ENQUETE` int(11) NOT NULL COMMENT 'FK codigo da enquete', `DS_OPCAO` varchar(150) NOT NULL COMMENT 'descrição da opção', `QT_VOTO` int(11) NOT NULL DEFAULT '0' COMMENT 'quantidade de votos', PRIMARY KEY (`NR_OPCAO`), KEY `FK_enquete_opcoes` (`CD_ENQUETE`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Entidade para armazenar as opções das enquetes' AUTO_INCREMENT=7 ; -- -- Extraindo dados da tabela `enquete_opcoes` -- INSERT INTO `enquete_opcoes` (`NR_OPCAO`, `CD_ENQUETE`, `DS_OPCAO`, `QT_VOTO`) VALUES (1, 1, 'Claro', 0), (2, 1, 'Tim', 0), (3, 1, 'Vivo', 0), (4, 1, 'Oi', 0), (5, 1, 'Não tenho celular.', 0), (6, 1, 'Outra operadora', 0);
Tabela para armazenar os comentários das enquetes.
-- -- Estrutura da tabela `enquete_comentarios` -- CREATE TABLE IF NOT EXISTS `enquete_comentarios` ( `NR_SEQUENCIA` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Numero sequencial', `CD_ENQUETE` int(11) NOT NULL COMMENT 'FK codigo da enquete', `DT_ENVIO` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Data que o comentário foi enviado', `NR_IP` varchar(20) NOT NULL COMMENT 'numero de IP da pessoa que enviou', `NM_PESSOA` varchar(30) NOT NULL COMMENT 'nome da pessoa', `DS_EMAIL` varchar(60) NOT NULL COMMENT 'email da pessoa', `DS_COMENTARIO` tinytext NOT NULL COMMENT 'comentario sobre a enquete', `IE_SITUACAO` enum('A','P','R') NOT NULL COMMENT 'situação, Ativo, Bloqueado, Pendente de aprovação', PRIMARY KEY (`NR_SEQUENCIA`), KEY `FK_enquete_comentarios` (`CD_ENQUETE`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Entidade para armazenar os comentários' AUTO_INCREMENT=1 ;
Esta tabela é uma das mais importantes, pois estaremos armazenando os logs de tudo o que acontecer com nossa enquete como; quem votou, quando, IP, e caso algum engraçadinho tente negativar sua enquete você poderá analisar os logs para identificar se houve alguma tentativa de burlar a enquete.
-- -- Estrutura da tabela `enquete_logs` -- CREATE TABLE IF NOT EXISTS `enquete_logs` ( `NR_SEQUENCIA` int(11) NOT NULL AUTO_INCREMENT, `CD_ENQUETE` int(11) NOT NULL, `NR_OPCAO` int(11) NOT NULL, `DT_ENVIO` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `NR_IP` varchar(20) NOT NULL, PRIMARY KEY (`NR_SEQUENCIA`), KEY `NR_OPCAO` (`NR_OPCAO`), KEY `CD_ENQUETE` (`CD_ENQUETE`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Entidade para armazenar os LOGs' AUTO_INCREMENT=19 ; -- -- Extraindo dados da tabela `enquete_logs` -- INSERT INTO `enquete_logs` (`NR_SEQUENCIA`, `CD_ENQUETE`, `NR_OPCAO`, `DT_ENVIO`, `NR_IP`) VALUES (6, 1, 4, '2013-04-30 03:26:58', '127.0.0.1'), (7, 1, 1, '2013-04-30 03:27:01', '127.0.0.1');
Relacionamentos entre as tabelas
-- -- Restrições para a tabela `enquete_comentarios` -- ALTER TABLE `enquete_comentarios` ADD CONSTRAINT `FK_enquete_comentarios` FOREIGN KEY (`CD_ENQUETE`) REFERENCES `enquete_perguntas` (`CD_ENQUETE`); -- -- Restrições para a tabela `enquete_logs` -- ALTER TABLE `enquete_logs` ADD CONSTRAINT `FK_enquete_logs` FOREIGN KEY (`NR_OPCAO`) REFERENCES `enquete_opcoes` (`NR_OPCAO`); -- -- Restrições para a tabela `enquete_opcoes` -- ALTER TABLE `enquete_opcoes` ADD CONSTRAINT `FK_enquete_opcoes` FOREIGN KEY (`CD_ENQUETE`) REFERENCES `enquete_perguntas` (`CD_ENQUETE`);
PHP – Upload de arquivos
Para upload maiores de 2MB, localizar e editar o arquivo php.ini.
http://php.net/file-uploads
file_uploads = On
Diretório temporário para upload de arquivos HTTP (vai usar o padrão do sistema, se não especificado).
http://php.net/upload-tmp-dir
upload_tmp_dir = “e :/ wamp / tmp”
O tamanho máximo permitido para arquivos enviados.
http://php.net/upload-max-filesize
upload_max_filesize = 2M
Tamanho máximo de dados POST que o PHP irá aceitar.
http://php.net/post-max-size
post_max_size = 8M
Configurando conexão com PHP + Oracle usando CentOS 6.3 / Red Hat 6.3
Neste artigo vou descrever a maneira mais simples e rapida para configurar o PHP para suporte com Oracle.
Antes de iniciar é necessário ter alguns pacotes básicos instalados;
1 | # yum install gcc gcc-c++ autoconf libaio |
Instalar o servidor web Apache
O comando abaixo instala o servidor web apache.
1 | # yum -y install httpd |
Configure para iniciar junto co o boot
Agora configuramos o apache para iniciar junto com o boot.
1 | # chkconfig httpd on |
Instalar o PHP
Instalando o PHP
1 | # yum -y install php php-devel php-pear |
Para instalar todas as bibliotecas do PHP – esta etapa não é obrigatoria
O comando abaixo instala todas as extensões disponíveis para o PHP
1 | # yum -y install php* |
Configurar o SELINUX
Agora vamos desabilitar SELINUX para não interferir no servidor httpd
1 2 3 | /etc/sysconfig/selinux # SELINUX=disabled |
Instalar o Oracle client
Agora precisamos baixar o client do oracle no site Oracle.com é necessário fazer um cadastro rápido e gratuito.
Lembrando que você deve baixar de acordo com a arquitetura i686 ou x64
O comando abaixo instala os pacotes RPM.
x86_64
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
1 2 | # rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm # rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm |
i686/i386
oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
oracle-instantclient11.2-devel-11.2.0.1.0-1.i386.rpm
1 2 | # rpm -ivh oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm # rpm -ivh oracle-instantclient11.2-devel-11.2.0.1.0-1.i386.rpm |
Agora é necessário setar a variável D_LIBRARY_PATH para o caminho da instalação do oracle client, que será carregado durante a Instalação do OCI8
1 2 | # export LD_LIBRARY_PATH=/usr/lib/oracle/ # export LD_LIBRARY_PATH=/usr/lib64/oracle/ |
PHP – Instalação das extensões PECL
http://php.net/manual/pt_BR/install.pecl.php
Instalar o OCI – http://pecl.php.net/package/oci8
1 | # pecl install oci8 |
Quando for solicitado o caminho do oracle_home, pressione enter caso tenha usado o comando export LD_LIBRARY_PATH apontando para o caminho do oracle client ou informar o caminho da instalação
Lembrando que tem diferença entre as plataformas i686 e x64(de acordo com a versão de plataforma e client do oracle usados)
Para suporte
http://php.net/manual/pt_BR/install.pecl.php
Editar o arquivo php.ini
1 | # /etc/php.ini |
Acrescentar a linha
1 | # extension=oci8.so |
reiniciar o host
1 | # reboot |
após reiniciar crie um arquivo phpinfo.php
1 | <!--?php phpinfo(); ?--> |
Se tudo ocorreu bem deverá aparecer o modulo OCI conforme a imagem abaixo
1 2 3 4 5 6 7 8 9 10 | When running the CLI version of PHP from the command line, you may receive errors like the following: [root@myserver /root]$ php -v PHP Warning: Module 'pcre' already loaded in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/spl.so' - /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/spl.so: Undefined symbol "pcre_exec" in Unknown on line 0 PHP Warning: Module 'SimpleXML' already loaded in Unknown on line 0 PHP Warning: Module 'session' already loaded in Unknown on line 0 PHP Warning: Module 'exif' already loaded in Unknown on line 0 PHP 5.2.3 (cli) (built: Jun 14 2007 15:29:17) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies |
Como resolver?
-Verifique se desabilitou o SELINUX após a configuração é necessário reiniciar o host.
Atualizado em 28/04/2018
Para instalar o suporte para PHP 5.4 no Linux CentOS 7
pecl install oci8-2.0.12
Extra: Quando tiver problemas para conexão pelo SQL PLUS (sqlplus command not found on Linux)
(para usar o SQLPLUS)
# yum install glibc.i686
Você pode abrir o SQLPLUS para testar a conexão com o banco de dados
Digite no terminal o comando sqlplus
# sqlplus
Para descobrir o diretorio de instalação do Oracle
#find / -name sqlplus -print
Resultado será parecido com:
# /u01/app/oracle/product/database/bin/sqlplus
Execute o comando para indicador o local
ORACLE_HOME=/u01/app/oracle/product/database
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
export PATH