FAMP: FreeBSD – Apache – MYSQL – PHP


Servidor de sites completo - FAMP


        Neste HOW TO apresentaremos de forma simples e clara como disponibilizar um servidor FAMP: FreeBSD – Apache – MYSQL – PHP.
        Para esse HOW To foi instalado o sistema operacional FreeBSD 8.1 e configurados o AMP, que consiste na base de dados MySQL, o servidor web Apache e o interpretadores para linguagens de script PHP.

        MYSQL: O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como interface. O MySQL foi criado na Suécia por dois suecos e um finlandês: David Axmark, Allan Larsson e Michael "Monty" Widenius.
www.mysql.com/

        APACHE: O servidor Apache é o mais bem sucedido servidor web livre. Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications).
www.apache.org/

        PHP: PHP (um acrónimo recursivo para "PHP: Hypertext Preprocessor") é uma linguagem de programação de computadores interpretada, livre e muito utilizada para gerar conteúdo dinâmico na World Wide Web, tendo como principais caracteriticas a velocidade e robustez, ser estruturado e orientado a objetos e sua portabilidade. A linguagem surgiu por volta de 1994, como um pacote de programas CGI criados por Rasmus Lerdorf.
www.php.net/

        PHPMYADMIN: O phpMyAdmin é um programa de computador desenvolvido em PHP para administração do MySQL pela Internet. A partir deste sistema é possível criar e remover bases de dados, criar, remover e alterar tabelas, inserir, remover e editar campos, executar códigos SQL e manipular campos chaves. O phpMyAdmin é muito utilizado por programadores web que muitas vezes necessitam manipular bases de dados.
www.phpmyadmin.net/






1- Instalando o Mysql

Para instalar o MYSQL acesse o diretório:

# cd /usr/ports/databases/mysql55-server/

Execute o comando de compilação e instalação do MySQL 5.5.5:

# make BUILD_STATIC=yes BUILD_OPTIMIZED=yes WITH_OPENSSL=yes install clean

Depois de instado o MySQL, vamos habilitar para o que ele inicialize quando o FreeBSD for reiniciado. Editar o arquivo “rc.conf”:

# ee /etc/rc.conf

Adicionando ao final do arquivo as linhas abaixo, depois salve o arquivo e saia:

#MySQL
         mysql_enable=”YES”

Agora vamos iniciar o MySQL com o seguinte comando:

# /usr/local/etc/rc.d/mysql-server start
# rehash

Agora vamos realizar as alterações necessárias no MySQL. Primeiro alterar senha de root:

# mysqladmin -uroot password “senha” (sem aspas)

Agora reiniciar o Mysql:
# /usr/local/etc/rc.d/mysql-server restart


2- Instalando o APACHE

Para instalar o Apache acesse o diretório:

# cd /usr/ports/www/apache22

Configure as opções de compilação do Apache 2.2 com o comando:

# make config

Marque as opções apropriadas para sua necessidade no Apache 2.2.16:
[X] THREADS               Enable threads support in APR    
[X] MYSQL                 Enable MySQL support for apr-dbd 
[ ] PGSQL                 Enable PostgreSQL support for apr-dbd
[ ] SQLITE                Enable SQLite support for apr-dbd
[ ] IPV6                  Enable IPv6 support              
[X] BDB                   Enable BerkeleyDB dbm            
[X] AUTH_BASIC            Enable mod_auth_basic            
[X] AUTH_DIGEST           Enable mod_auth_digest           
[X] AUTHN_FILE            Enable mod_authn_file            
[ ] AUTHN_DBD             Enable mod_authn_dbd             
[X] AUTHN_DBM             Enable mod_authn_dbm             
[X] AUTHN_ANON            Enable mod_authn_anon            
[X] AUTHN_DEFAULT         Enable mod_authn_default         
[X] AUTHN_ALIAS           Enable mod_authn_alias           
[X] AUTHZ_HOST            Enable mod_authz_host            
[X] AUTHZ_GROUPFILE       Enable mod_authz_groupfile       
[X] AUTHZ_USER            Enable mod_authz_user            
[X] AUTHZ_DBM             Enable mod_authz_dbm             
[X] AUTHZ_OWNER           Enable mod_authz_owner           
[X] AUTHZ_DEFAULT         Enable mod_authz_default         
[X] CACHE                 Enable mod_cache                 
[X] DISK_CACHE            Enable mod_disk_cache            
[X] FILE_CACHE            Enable mod_file_cache            
[ ] MEM_CACHE             Enable mod_mem_cache             
[X] DAV                   Enable mod_dav                   
[X] DAV_FS                Enable mod_dav_fs                
[ ] BUCKETEER             Enable mod_bucketeer             
[ ] CASE_FILTER           Enable mod_case_filter           
[ ] CASE_FILTER_IN        Enable mod_case_filter_in  
[ ] EXT_FILTER            Enable mod_ext_filter            
[ ] LOG_FORENSIC          Enable mod_log_forensic          
[ ] OPTIONAL_HOOK_EXPORT  Enable mod_optional_hook_export  
[ ] OPTIONAL_HOOK_IMPORT  Enable mod_optional_hook_import  
[ ] OPTIONAL_FN_IMPORT    Enable mod_optional_fn_import    
[ ] OPTIONAL_FN_EXPORT    Enable mod_optional_fn_export    
[ ] LDAP                  Enable mod_ldap                  
[ ] AUTHNZ_LDAP           Enable mod_authnz_ldap           
[X] ACTIONS               Enable mod_actions               
[X] ALIAS                 Enable mod_alias                 
[X] ASIS                  Enable mod_asis                  
[X] AUTOINDEX             Enable mod_autoindex             
[X] CERN_META             Enable mod_cern_meta             
[X] CGI                   Enable mod_cgi                   
[X] CHARSET_LITE          Enable mod_charset_lite               
[ ] DBD                   Enable mod_dbd    
[X] DEFLATE               Enable mod_deflate               
[X] DIR                   Enable mod_dir                   
[X] DUMPIO                Enable mod_dumpio                
[X] ENV                   Enable mod_env                   
[X] EXPIRES               Enable mod_expires               
[X] HEADERS               Enable mod_headers               
[X] IMAGEMAP              Enable mod_imagemap              
[X] INCLUDE               Enable mod_include               
[X] INFO                  Enable mod_info                  
[X] LOG_CONFIG            Enable mod_log_config            
[X] LOGIO                 Enable mod_logio                 
[X] MIME                  Enable mod_mime                  
[X] MIME_MAGIC            Enable mod_mime_magic            
[X] NEGOTIATION           Enable mod_negotiation           
[X] REWRITE               Enable mod_rewrite    
[X] SETENVIF              Enable mod_setenvif              
[X] SPELING               Enable mod_speling               
[X] STATUS                Enable mod_status                
[X] UNIQUE_ID             Enable mod_unique_id             
[X] USERDIR               Enable mod_userdir               
[X] USERTRACK             Enable mod_usertrack             
[X] VHOST_ALIAS           Enable mod_vhost_alias           
[X] FILTER                Enable mod_filter                
[X] VERSION               Enable mod_version               
[ ] PROXY                 Enable mod_proxy                 
[ ] PROXY_CONNECT         Enable mod_proxy_connect              
[X] PATCH_PROXY_CONNECT   Patch proxy_connect SSL support       
[ ] PROXY_FTP             Enable mod_proxy_ftp                  
[ ] PROXY_HTTP            Enable mod_proxy_http                 
[ ] PROXY_AJP             Enable mod_proxy_ajp                  
[ ] PROXY_BALANCER        Enable mod_proxy_balancer             
[ ] PROXY_SCGI            Enable mod_proxy_scgi                 
[X] SSL                   Enable mod_ssl                        
[ ] SUEXEC                Enable mod_suexec                     
[ ] SUEXEC_RSRCLIMIT      SuEXEC rlimits based on login class   
[X] REQTIMEOUT            Enable mod_reqtimeout                 
[ ] CGID                  Enable mod_cgid

Execute o comando de compilação e instalação do Apache

# make install clean

Marque as opções apropriadas para sua necessidade no perl 5.10.1_2:
[ ] DEBUGGING            Build with debugging support    
[ ] GDBM                 Build GDBM_File extension              
[X] PERL_MALLOC          Use Perl malloc                       
[X] PERL_64BITINT        Use 64 bit integers (on i386)         
[ ] THREADS              Build threaded perl
[ ] MULTIPLICITY         Use multiplicity                  
[ ] SUIDPERL             Build set-user-id suidperl binary     
[ ] SITECUSTOMIZE        Run-time customization of @INC       
[X] USE_PERL             Rewrite links in /usr/bin

Marque as opções apropriadas para sua necessidade no m4 1.4.14,1:
[ ] LIBSIGSEGV           Use libsigsegv for better diagnostics

Marque as opções apropriadas para sua necessidade no libiconv 1.13.1_1:
[X] EXTRA_ENCODINGS      Include extra character sets             
[ ] EXTRA_PATCHES        Apply patches to fix CP932, add EUCJP-MS

Marque as opções apropriadas para sua necessidade no apr-ipv6-devrandom-gdbm-db42 1.4.2.1.3.9_1:
[X] THREADS              Enable Threads in apr        
[ ] IPV6                 Enable IPV6 Support in apr   
[X] BDB                  Enable Berkley BDB support in apr-util     
[X] GDBM                 Enable GNU dbm support in apr-util       
[ ] LDAP                 Enable LDAP support in apr-
[X] MYSQL                Enable MySQL suport in apr-
[ ] NDBM                 Enable NDBM support in apr-
[ ] PGSQL                Enable Postgresql suport in apr-util        
[ ] SQLITE               Enable SQLite3 support in apr-util         
[X] DEVRANDOM            Use /dev/random or compatible in apr

Marque as opções apropriadas para sua necessidade no python26 2.6.5_1:
[X] THREADS              Enable thread support      
[ ] HUGE_STACK_SIZE      Use a larger thread stack  
[ ] SEM                  Use POSIX semaphores (experimental)    
[ ] PTH                  Use GNU Pth for threading/multiprocessing 
[X] UCS4                 Use UCS4 for unicode support             
[X] PYMALLOC             Use python's internal malloc 
[ ] IPV6                 Enable IPv6 support        
[ ] FPECTL               Enable floating point exception handling

Depois de realizado a instalação, vamos habilitar para o Apache inicializar quando o FreeBSD for reiniciado. Editar o arquivo “rc.conf”.

# ee /etc/rc.conf

Adicionando ao final do arquivo as linhas abaixo, depois salve o arquivo e saia.

#Apache
         apache22_enable="YES"
         accf_data_load="YES"
         accf_http_load="YES"

Agora adicione a linha abaixo no “/etc/hosts”:

# ee /etc/hosts 
127.0.0.1 "hostname" 

Depois edite o arquivo “httpd.conf”:

# ee /usr/local/etc/apache22/httpd.conf
Servername "hostname":80

Agora vamos iniciar o Apache com o seguinte comando.


# /usr/local/etc/rc.d/apache22 start

# rehash

Vamos agora testar o Apache. Use um browser para conectar a:


# http://"ip_do_servidor"

Se tudo estiver certo será exibido “It works!”.


3- Instalando o PHP

Para instalar o PHP acesse o diretório:

# cd /usr/ports/lang/php52

Configure as opções de compilação do PHP 5 com o comando:

# make config

Marque as opções apropriadas para sua necessidade no php52 5.2.14:
[X] CLI                  Build CLI version                  
[X] CGI                  Build CGI version                  
[X] APACHE               Build Apache module                
[ ] DEBUG                Enable debug                       
[X] SUHOSIN              Enable Suhosin protection system (not for jails) 
[ ] MULTIBYTE            Enable zend multibyte support      
[ ] IPV6                 Enable ipv6 support                
[ ] MAILHEAD             Enable mail header patch           
[ ] REDIRECT             Enable force-cgi-redirect support (CGI only)    
[ ] DISCARD              Enable discard-path support (CGI only)          
[X] FASTCGI              Enable fastcgi support (CGI only)  
[ ] FPM                  Enable fastcgi process manager (CGI only)
[X] PATHINFO             Enable path-info-check support (CGI only)

Acesse o diretório das extensões do PHP:

# cd ../php52-extensions/

Configure as opções de compilação do php52-extensions com o comando:

# make config

Marque as opções apropriadas para sua necessidade no php52-extensions 1.3:
[ ] BCMATH               bc style precision math functions            
[X] BZ2                  bzip2 library support
[ ] CALENDAR             calendar conversion support     
[X] CTYPE                ctype functions      
[ ] CURL                 CURL support         
[ ] DBA                  dba support          
[ ] DBASE                dBase library support
[X] DOM                  DOM support          
[ ] EXIF                 EXIF support         
[ ] FILEINFO             fileinfo support     
[X] FILTER               input filter support 
[ ] FRIBIDI              FriBidi support      
[ ] FTP                  FTP support          
[X] GD                   GD library support   
[X] GETTEXT              gettext library support         
[ ] GMP                  GNU MP support       
[X] HASH                 HASH Message Digest Framework   
[X] ICONV                iconv support        
[ ] IMAP                 IMAP support         
[ ] INTERBASE            Interbase 6 database support (Firebird)      
[X] JSON                 JavaScript Object Serialization support      
[ ] LDAP                 OpenLDAP support     
[X] MBSTRING             multibyte string support        
[X] MCRYPT               Encryption support   
[X] MHASH                Crypto-hashing support          
[ ] MING                 ming shockwave flash support    
[ ] MSSQL                MS-SQL database support         
[X] MYSQL                MySQL database support          
[ ] MYSQLI               MySQLi database support         
[ ] NCURSES              ncurses support (CLI only)      
[ ] ODBC                 unixODBC support     
[X] OPENSSL              OpenSSL support      
[ ] PCNTL                pcntl support (CLI only)        
[X] PCRE                 Perl Compatible Regular Expression support   
[X] PDF                  PDFlib support (implies GD)     
[X] PDO                  PHP Data Objects Interface (PDO)
[ ] PDO_SQLITE           PDO sqlite driver    
[ ] PGSQL                PostgreSQL database support     
[X] POSIX                POSIX-like fnctions 
[ ] PSPELL               pspell support       
[ ] READLINE             readline support (CLI only)     
[ ] RECODE               recode support       
[X] SESSION              session support      
[ ] SHMOP                shmop support        
[X] SIMPLEXML            simplexml support          
[ ] SNMP                 SNMP support         
[ ] SOAP                 SOAP support         
[ ] SOCKETS              sockets support      
[X] SPL                  Standard PHP Library 
[ ] SQLITE               sqlite support       
[ ] SYBASE_CT            Sybase database support         
[ ] SYSVMSG              System V message support        
[ ] SYSVSEM              System V semaphore support      
[ ] SYSVSHM              System V shared memory support  
[ ] TIDY                 TIDY support         
[X] TOKENIZER            tokenizer support    
[ ] WDDX                 WDDX support (implies XML)      
[X] XML                  XML support          
[X] XMLREADER            XMLReader support    
[ ] XMLRPC               XMLRPC-EPI support        
[X] XMLWRITER            XMLWriter support    
[ ] XSL                  XSL support (Implies DOM)       
[ ] YAZ                  YAZ support (ANSI/NISO Z39.50)  
[X] ZIP                  ZIP support          
[X] ZLIB                 ZLIB support

Execute o comando de compilação e instalação do PHP e PHP Extensions:

# make install clean

Marque as opções apropriadas para sua necessidade no php52-pcre 5.2.14:
[ ] BUNDLED_PCRE         Select if you use apache 2.0.x

Marque as opções apropriadas para sua necessidade no php52-gd 5.2.14:
[X] T1LIB                Include T1lib support                  
[X] TRUETYPE             Enable   TrueType string function      
[ ] JIS                  Enable JIS-mapped Japanese font support

Marque as opções apropriadas para sua necessidade no libxslt 1.1.26_2:
[ ] MEM_DEBUG            Enable memory debugging    
[X] CRYPTO               Enable crypto support for exslt 

Marque as opções apropriadas para sua necessidade no png 1.4.3:
[ ] APNG                 Animated PNG support

Marque as opções apropriadas para sua necessidade no php52-mbstring 5.2.14:
[X] REGEX                Enable multibyte regex support

As configurações do PHP ficam guardados em “/usr/local/etc/php.ini”. É necessário criar o arquivo utilizando um dos samples existentes executando o comando:

# cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

Agora vamos configurar o PHP no Apache. Edite o arquivo “/usr/local/etc/apache22/httpd.conf” e adicione as linhas abaixo:

# ee /usr/local/etc/apache22/httpd.conf

# Dentro da sessão "ifmodule mime_module"
AddType application/x-httpd-php .php .php3 .phtml
AddType application/x-httpd-php-source .phps

# Dentro da sessão "ifmodule dir_module"
DirectoryIndex index.html index.htm index.php

Agora vamos alterar o arquivo “/usr/local/etc/php.ini”. Altere as opções conforme abaixo:

# ee /usr/local/etc/php.ini
short_open_tag = On

Vamos agora testar o PHP. Crie o arquivo “index.php” e adicione o seguinte conteúdo nele:

# touch /usr/local/www/apache22/data/index.php
# echo "<?php phpinfo(); ?>" > /usr/local/www/apache22/data/index.php

Feito isso vamos reiniciar o Apache com o seguinte comando:

# /usr/local/etc/rc.d/apache22 restart
# rehash

Para acessar a pagina de teste use um browser para conectar a:

# http://"ip_do_servidor"/index.php

Se tudo estiver certo será exibida as configurações do Apache e PHP:

4- Instalando o PHPMyAdmin

Para instalar o PHPMyAdmin acesse o diretório:

# cd /usr/ports/databases/phpmyadmin211/

Configure as opções de compilação do PHPMyAdmin com o comando:

# make config

Marque as opções apropriadas para sua necessidade no phpMyAdmin211 2.11.10.1:
[ ] SUPHP                suPHP support                                
[X] BZ2                  bzip2 library support                   
[X] GD                   GD library support                          
[X] OPENSSL              OpenSSL support                       
[X] PDF                  PDFlib support (implies GD)             
[X] ZLIB                 ZLIB support                     
[X] MCRYPT               MCrypt library support                
[X] MBSTRING             Multi-byte character-set string support

Execute o comando de compilação e instalação do PHPMyAdmin:

# make install clean

Depois de instalado vamos criar o arquivo de configuração utilizando um dos samples existentes executando o comando:

# cp /usr/local/www/phpMyAdmin211/libraries/config.default.php /usr/local/www/phpMyAdmin211/config.inc.php

Agora vamos realizar as alterações necessárias no arquivo “/usr/local/www/phpMyAdmin211/config.inc.php” :

# ee /usr/local/www/phpMyAdmin211/config.inc.php
$cfg['Servers'][$i]['auth_type'] = ‘http‘;

Depois adicione no arquivo “http.conf” do Apache:

# ee /usr/local/etc/apache22/httpd.conf

Alias /phpmyadmin "/usr/local/www/phpMyAdmin211/"

<Directory "/usr/local/www/phpMyAdmin211/">
        Options none
        AllowOverride Limit
        Order Deny,Allow
</Directory>

Feito isso vamos reiniciar o Apache com o seguinte comando:

# /usr/local/etc/rc.d/apache22 restart
# rehash

Vamos agora testar o PHPMyAdmin. Use um browser para conectar a:

# http://"ip_do_servidor"/phpmyadmin/

Se tudo estiver certo será solicitado autenticação para acessar. Use o login root e a mesma senha que você configurou para o MySQL.


5- Referências

FREEBSD: www.freebsd.org/
MYSQL:    www.mysql.com/
APACHE:  www.apache.org/
PHP:          www.php.net/
PHPMyADMIN: www.phpmyadmin.net/

www.fug.com.br
www.bsdux.com.br
http://www.remontti.com.br/blog/archives/648
http://dev.mysql.com/doc/refman/5.5/en/freebsd.html
http://www.fug.com.br/content/view/360/77/
http://tuxtraining.com/2009/04/22/how-to-setup-a-famp-freebsd-apache-mysql-php-server
http://www.georgemendonca.com.br/middlecore-introducao-ao-desenvolvimento-de-a

2 comentários:

  1. George Henrique disse...:

    Muito bacana seu material. Bastante!
    Até me assustei quando vi minhas imagens aí...rs.
    Vou colocar se blog como referência no meu artigo.
    Entra lá e faz uns comentários, se não for incômodo.
    Grande abraço.

    http://www.georgemendonca.com.br

  1. leo disse...:

    Caraca. Consegui configurar de primeira, o que para mim é um grande feito (sempre que configurei o php, apache e mysql foi no linux Debian e derivados).

    Excelente artigo. Muito bom. Bem detalhado, explicativo, e fácil de fazer.

    Parabéns

Postar um comentário

 
HowtoBSD © 2010 | Designed by Trucks, in collaboration with MW3, templates para blogspot