anúncios

terça-feira, 1 de março de 2016

Configurando o ambiente de desenvolvimento PHP com framework PhalconPHP

O que é PhalconPHP ?

PhalconPHP é um framework full-stack escrito em C ANSI e compilado na forma de uma extensão do PHP. Isso quer dizer que todos os sources do framework foram convertidos em código nativo de cada sistema operacional. Perfomance.

Segue a estrutura Model-View-Controller (MVC). Na perfomance é 8x mais rápido comparado com o CodeIgniter.

Depois de conhecer o PhalconPHP e para que serve, podemos seguir os procedimentos de configuração no ambiente de desenvolvimento PHP com PhalconPHP na distribuição Linux Debian e/ou CentOS/RHEL/Fedora.

Procedimentos de configuração do PhalconPHP
Debian: #apt-get install git-core gcc autoconf make apache2 php5 php5-dev php5-mysql mysql-server libpcre3-dev
CentOS/RHEL/Fedora: Antes deve ser instalados os pré-requisitos descritos em: Instalando e configurando ambiente de desenvolvimento web no CentOS
#yum install php-devel pcre-devel gcc make

Download do cphalcon e phalcon-devtools via Git
cphalcon é a extensão PhalconPHP que será compilada e adicionada o phalcon.so no Apache
phalcon-devtools é uma ferramenta que permite executar comandos para criar projetos, controlles e modelos de forma rápida. Opcional: #mkdir /opt/phalcon
#cd /opt/phalcon
git clone https://github.com/phalcon/cphalcon.git
git clone https://github.com/phalcon/phalcon-devtools.git

Após a finalização da clonagem do repositório cphalcon e phalcon-devtools Execute:
#cd cphalcon/build
#./install

#cd /opt/phalcon/phalcon-devtools
#./phalcon
#ln -s /opt/phalcon/phalcon-devtools/phalcon.php /usr/bin/phalcon
#chmod +x /usr/bin/phalcon

Debian: criar o arquivo 30-phalcon.ini no diretório /etc/php5/apache2/conf.d e adicionar a extensão phalcon.so
#vim /etc/php5/apache2/conf.d/30-phalcon.ini
extension=phalcon.so
CentOS/RHEL/Fedora: criar o arquivo phalcon.ini no diretório /etc/php.d/ e adicionar a extensão phalcon.so
#vim /etc/php.d/phalcon.ini
extension=phalcon.so

ESC +x (salva e sai do editor Vim)

Reinicie o Apache
Debian: #service apache2 restart
CentOS/RHEL/Fedora: #service httpd restart

Checar a instalação do PhalconPHP
#vim /var/www/checkphalcon.php <?php
print_r(get_loaded_extensions()); ?>

No browser acesse http://IP/checkphalcon.php
Deve aparecer algo semelhante, mas o foco nesse caso é phalcon Array ( [0] => Core [1] => date [2] => ereg [3] => libxml [4] => openssl [5] => pcre [6] => zlib [7] => bcmath [8] => bz2 [9] => calendar [10] => ctype [11] => dba [12] => dom [13] => hash [14] => fileinfo [15] => filter [16] => ftp [17] => gettext [18] => SPL [19] => iconv [20] => json [21] => mbstring [22] => session [23] => posix [24] => Reflection [25] => standard [26] => shmop [27] => SimpleXML [28] => soap [29] => sockets [30] => Phar [31] => exif [32] => sysvmsg [33] => sysvsem [34] => sysvshm [35] => tokenizer [36] => wddx [37] => xml [38] => xmlreader [39] => xmlwriter [40] => zip [41] => apache2handler [42] => PDO [43] => mysql [44] => mysqli [45] => pdo_mysql [46] => pdo_pgsql [47] => pdo_sqlite [48] => pgsql [49] => sqlite3 [50] => phalcon [51] => mhash )
Outro é verificar no phpinfo();
#vim /var/www/info.php
<?php
phpinfo();
?>

No browser, acesse http://IP/info.php

Note se o Phalcon foi habilitado.

Com o PhalconPHP habilidado no Apache, podemos começar a desenvolver projetos PHP com framework PhalconPHP.

O PhalconPHP não impõe uma estrutura fixa para desenvolvimento de projetos. Devido o fato do baixo acoplamento, você pode desenvolver projetos PhalconPHP com a estrutura de arquivos que for mais conveniente para você.

Para fins deste howto será adotado a estrutura base

projetoPhalcon
app/
controllers/
models/
views/
public/
css/
js/
img/

#cd /var/www/projetoPhalcon
#mkdir app/ public/
#mkdir app/controllers/ app/models/ app/views/
#mkdir public/css/ public/js/ public/img/

Note que não é necessário o diretório library relacionado ao PhalconPHP. A estrutura está disponível na memória, pronto para usar.

URLs amigáveis

URLs amigáveis são melhores para SEO, além de ser fácil para os usuários lembrarem. PhalconPHP suporta o módulo rewrite fornecido nos servidores web mais populares (Apache, Nginx).

Não é obrigatório usar URLs amigáveis no projeto com PhalconPHP, use se quiser apenas. Se preferir, crie o .htaccess no diretório do projeto.

#vim /var/www/projetoPhalcon/.htaccess

RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]

Dessa forma todas as solicitações do projeto serão redirecionadas para o diretório public/, tornando a raiz do projeto. Esta etapa garante que os diretórios internos do projeto permanecem ocultos da visão pública, eliminando ameaças deste tipo de segurança.

O segundo conjunto de regras irá verificar se o arquivo solicitado existe e, se isso acontecer, ele não tem que ser reescrito pelo módulo do servidor web.

#vim /var/www/projetoPhalcon/public/.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]

Criar um VirtualHost para o projeto
OBS: O projetoPhalcon é o diretório deste projeto exemplo, em outros projetos defina o nome de acordo com o projeto que está desenvolvendo.

#vim /etc/apache2/sites-available/projetoPhalcon

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all


Habilitar o VirtualHost do projeto
# a2ensite projetoPhalcon

Reinicie o Apache
Debian: #service apache2 restart CentOS/RHEL/Fedora: #service httpd restart
Autoinicialização do projeto

O arquivo de inicialização serve de base da aplicação, o que lhe dá o controle de todos os apectos do mesmo. Nesse arquivo é implementado a inicialização dos componentes, bem como o comportamento da aplicação.

#cd /var/www/projetoPhalcon/
#vim public/index.php

Source: index.php

Criação do primeiro Controller
#vim app/controllers/IndexController.php
Source: IndexController.php
ESC +x (salva e sai do editor Vim)
Após testar o controller no browser http://IP/projetoPhalcon, faça o teste no app/views.
Esse foi um exemplo de controller, mas no modelo MVC, a parte visual é implementada no view, nesse caso será mostrado a mesma mensagem no app/views/index.phtml
No app/controllers/IndexController.php deixe a function indexAction() vazia.
#vim app/views/index/index.phtml
Source: index.phtml
No browser, acesse http://IP/projetoPhalcon/

Referência
[1] https://docs.phalconphp.com/en/latest/index.html
Feito!

sexta-feira, 5 de fevereiro de 2016

Instalando e Configurando FAMP

Após realizar a instalação do FreeBSD, o objetivo deste howto é explicar os procedimentos de instalação do servidor web para desenvolvimento PHP com SGBD MySQL no FreeBSD (FAMP).
FAMP = FreeBSD+Apache+MySQL+PHP

Primeiramente, atualizaremos o sistema como segue.



Instalação do Apache



Habilitar o Apache




Instalação do MySQL



Criação da senha de root do MySQL



Instalação do PHP



Opcional: Pacotes Curl e GMP (lib para trabalhar com BigInt)



Editor Vim


Ajustes no Apache e PHP



Adicione index.php na linha 278 antes de index.html


Adicionar as linhas 524 e 525


Reinicie o serviço do Apache


Teste do PHP
Crie um arquivo info.php no /usr/local/www/apache24/data



Teste de outra máquina da rede. No browser http://IPSERVIDOR/info.php


Pronto, temos o servidor web Apache com PHP e MySQL configurado.

Referência sobre FreeBSD

https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/book.html

Feito!

quarta-feira, 3 de fevereiro de 2016

Instalação do Sistema Operacional FreeBSD

Neste howto é explicado a instalação do sistema operacional FreeBSD 10.2 RELEASE, usando imagem ISO “FreeBSD-10.2-RELEASE-i386-disc1.iso” e no próximo post a configuração do servidor Apache, MySQL e PHP no FreeBSD (FAMP).

Após gravar a imagem ISO no CD, coloque o CD no leitor de CD/DVD e altere a BIOS para o boot via CD/DVD.

Tecle ENTER para iniciar a opção 1


Selecione o modelo do seu teclado. No caso foi selecionado o modelo ABNT2


Se desejar, selecione Test para fazer o teste do teclado.


Faça o teste do seu teclado.


Teclado selecionado


Escolha um nome para o hostname (nome do servidor). No caso foi escolhido Saitam.




Selecione Manual para fazer o particionamento do HD de forma manual.


Selecione Create


Selecione o tipo desejado para tabela de partição.



Criação da partição /. Selecione Create.
Type: (sistema de arquivos) : freebsd-ufs
Tamanho: 4GB
Montagem: /


Se desejar adicionar /boot na mesma partição /. Selecione Yes.


Criação da partição swapp. Selecione Create
Type: freebsd-swap
Tamanho: 256MB (já esta de bom tamanho)


Criação da partição /var. Selecione Create.
Type: freebsd-ufs
Tamanho: 7GB
Montagem: /var


Criação da partição /usr
Type: freebsd-ufs
Tamanho: Se não for criar mais nenhuma outra partição, pode deixar o restante de espaço
Montagem: /usr


Particionamento completo. Selecione Finish.


Confirma selecionando Commit.






Crie um password para o root (Administrador do sistema FreeBSD).


Nessa etapa, sua placa de rede pode ser diferente, selecione OK.


Selecione Yes para configurar o IP na versão IPv4.


Se desejar usar o endereço IP atribuído por DHCP do seu roteador, selecione Yes, mas como nesse
caso é um servidor, então é recomendado usar IP fixo. No caso selecione No.


Configura o endereço IP de acordo com sua rede.


Se desejar configurar endereço IP na versão IPv6, selecione Yes. No caso foi selecionado No.


Digite os endereços DNS. No caso foi utilizado o gateway como primário e do Google como

secundário.




Selecione No.



Selecione sua região do país.


Selecione o seu país.


Selecione de acordo com o fuso horário do seu estado.



Selecione os serviços que deseja inicializar no boot do sistema.


Selecione Yes para criar um usuário regular.


Crie o seu usuário.



Selecione Exit



Selecione Reboot e retire o CD do leitor.


Primeiro boot do SO FreeBSD


Como é servidor, o ambiente gráfico é desnecessário.


Logado no sistema como root


Após seguir corretamente os procedimentos deste Howto terá instalado o SO FreeBSD no seu servidor e pronto para configurar servidor web com Apache, MySQL e PHP no próximo post.
Feito!