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
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