PHP: Configurando um Ambiente de Desenvolvimento PHP/CakePHP no Linux

From Wiki

Neste artigo descrevo como realizar um configurar um ambiente de desenvolvimento PHP, em uma estacão Linux. Vamos configurar também o Framework CakePHP

Para configurarmos nosso ambiente vamos precisar dos seguintes itens:

  • Apache 2
  • PHP 5
  • MySql Server
  • Biblioteca php5-mysql

Usando o usuário root, no meu Fedora Linux.

Instalando o pacotes

Instalar os pacotes:

yum -y install httpd mysql mysql-server php php-mysql 

Configurado o HTTP Server

Configurado o httpd

Inicie o servidor

systemctl start httpd.service
systemctl enable httpd.service

Validando o HTTP Server e o PHP

Crie um arquivo php

# vi /var/www/html/teste.php

e adicione o seguinte

<?php
phpinfo();
?>

Salve e feche o arquivo

Com um navegador acesse o seu servidor

 http://localhost 

e teste o php

 http://localhost/teste.php 

Configurado o http para meu usuário

Configurado o http para meu usuário

vi /etc/httpd/conf.d/userdir.conf

remova a linha

UserDir disabled

Salve e feche o arquivo. Reinicie o apache

systemctl restart httpd.service

Testando para o usuario

Criar o diretório

mkdir -p /home/usuario/public_html

Criando o arquivo

vi /home/usuario/public_html/index.html

adicione as seguintes linhas

<html>
  <head>
  </head>
  <body>
     Funcionou!!1
  </body>
</html>

salve e feche o arquivo

Com um navegador acesse o seu servidor

  http://localhost/~usuario/

Configurado o MySQL

Obs.: Você pode ter mais detalhes aqui MySQL:Configurando o MySQL

Inicie o servidor

systemctl start mysqld.service
systemctl enable mysqld.service

Obs.:

Se não existir o mysqld.service, fazer o seguinte:

vi /etc/systemd/system/mysqld.service

e adicione

[Unit]
Description=MySQL Server
After=network.target

[Service]
ExecStart=/usr/bin/mysqld --defaults-file=/etc/mysql/my.cnf --datadir=/var/lib/mysql --socket=/var/run/mysqld/mysqld.sock
User=mysql
Group=mysql
WorkingDirectory=/usr

[Install]
WantedBy=multi-user.target

Salve e feche o arquivo depois execute o comando

systemctl daemon-reload

Configure a segurança

/usr/bin/mysql_secure_installation

Aceite os valores default, e coloque uma senha para o root.

Criando as databases para o CakePHP

mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.34-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Criando a default

MariaDB [(none)]> CREATE DATABASE default_cake_db;
Query OK, 1 row affected (0.04 sec)

Criando a de test

MariaDB [(none)]> CREATE DATABASE test_cake_db;
Query OK, 1 row affected (0.00 sec)

Configurando o CakePHP

Descompactando o CakePHP

Faca o download do cakephp e descompacte o arquivo no diretório do usuário

cd /home/usuario/public_html

unzip /tmp/cakephp-cakephp-2.4.5-0-g9b4c2f3.zip 
 
mv cakephp-cakephp-b47d357/ cakephp/

Configurando para o diretório do usuário

Para executar o usuário, alterar o diretório base.

vi cakephp/.htaccess

Adicionar

RewriteBase /~usuario/cakephp/

Exemplo:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /~usuario/cakephp/
  RewriteRule    ^$ app/webroot/    [L]
  RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

Fazer o mesmo para os demais

vi cakephp/app/.htaccess

Adicionar

RewriteBase /~usuario/cakephp/app/

Fazer o mesmo para os demais

vi cakephp/app/webroot/.htaccess

Adicionar

RewriteBase /~usuario/cakephp/app/webroot/

Ajustando o timezone

Editar o arquivo

vi /home/usuario/public_html/cakephp/app/Config/core.php

Alterar a linha

//date_default_timezone_set('UTC');

para

date_default_timezone_set('America/Sao_Paulo');

Salve e feche o arquivo

Ajustando o Security.salt e Security.cipherSeed

Gere uma string randomica

# date +%s | sha256sum | base64 | head -c 32 ; echo
MzYwYmRmMzUzODIyODBjMjc3MDYyMDg5

#od -vAn -N8 -tu8  < /dev/urandom 
 2244647735284905218

Editar o arquivo

vi /home/usuario/public_html/cakephp/app/Config/core.php

Alterar a linha

Configure::write('Security.salt', 'MzYwYmRmMzUzODIyODBjMjc3MDYyMDg5')

Alterar a linha

Configure::write('Security.cipherSeed', '2244647735284905218');


Salve e feche o arquivo

Alterando o Timezone

Editar o arquivo

vi /home/usuario/public_html/cakephp/app/Config/core.php

Alterar a linha

//date_default_timezone_set('UTC');

para

date_default_timezone_set('America/Sao_Paulo');

Salve e feche o arquivo


Configurando o Banco de Dados

Alternar para o diretório

cd /home/usuario/public_html/cakephp/app/Config/

Copiar o arquivo padrao

cp database.php.default database.php

Configurar a database

vi database.php

Exemplo:

class DATABASE_CONFIG {

       public $default = array(
               'datasource' => 'Database/Mysql',
               'persistent' => false,
               'host' => 'localhost',
               'login' => 'root',
               'password' => 'password',
               'database' => 'prod_db_name',
               'prefix' => ,
               //'encoding' => 'utf8',
       );

       public $test = array(
               'datasource' => 'Database/Mysql',
               'persistent' => false,
               'host' => 'localhost',
               'login' => 'root',
               'password' => 'password',
               'database' => 'test_db_name',
               'prefix' => ,
               //'encoding' => 'utf8',
       );
}

Alterando as permissões do diretório tmp

Alterne para o diretório

cd vi /home/usuario/public_html/cakephp/app/

Altere as permissões

chmod -R 777 tmp/

Configurando o Debug Kit

Baixe o debugkit, no link [1],

Alterne para o diretório

cd /home/usuario/public_html/cakephp/Plugin/

Descompactar o arquivo

unzip /tmp/debug_kit-master.zip

Alterar o nome do diretório

mv debug_kit-master DebugKit

Edite o arquivo

vi /home/usuario/public_html/cakephp/app/Config/bootstrap.php

Adicione a linha

CakePlugin::load('DebugKit'); //Loads a single plugin named DebugKit

Salve e feche o arquivo

Teste com o navegador

http://localhost/~usuario/cakephp/

Incluir o toolbar

vi /home/usuario/public_html/cakephp/app/Controller/AppController.php

Adicionar

class AppController extends Controller {
  public $components = array('DebugKit.Toolbar');
 }

Salvar e Fechar

Editar também

vi /home/usuario/public_html/cakephp/app/Config/core.php

Adicionar

Configure::write('debug', 1);

Salvar e Fechar

Editar também

vi /home/usuario/public_html/cakephp/app/View/Layouts/default.ctp

Remover

sql_dump

Salvar e Fechar

Ver também