Freebsd – Ports, vim, apache, mysql, phpmyadmin, webmin, asterisk, noip, ntpdate postfix, lynx, oslec, dahdi

Escrito por Ulisses F. Féres Abrantes Cerqueira – Abratel Telecom. Ao copiar mantenha os créditos.

Atualização do Ports

Se for a primeira vez:
portsnap fetch (puxar o snapshot da arvore do ports mais atual)
portsnap extract (extraindo o snapshot mais recente)
portsnap fetch update
Se for a segunda vez:
portsnap fetch
portsnap update

Resolução Bug da Versão 9.1 quanto a busca de ports e instalação
Setenv PACKAGESITE http://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-current/Latest/
Obs: Minha versão é 64bits 9.1. Caso queira saber o nome do pacote a procurar pode conectar no browser no link acima e verificar o nome exato. Existe outra forma que iremos abordar posteriormente
Para tornar a variável permanente, acrescente esse comando no arquivo ~/.cshrc:
echo setenv PACKAGESITE http://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-current/Latest/ >> ~/.cshrc

Instalando programas via ports
1 – Instalando editor VIM
pkg_add -rv vim
Para deixar o editor colorido facilitando a visualização de erros proceder:
echo “syntax on” >> ~/.vimrc

2 – Instalando APACHE
cd /usr/ports/www/apache22
make install clean
Após instalação para start automatic necessitamos adicionar no rc.conf:
echo ‘apache22_enable=”YES”‘ >> /etc/rc.conf
Realizando o start do apache:
/usr/local/etc/rc.d/apache22 start
3 – Instalando MYSQL
cd /usr/ports/databases/mysql55-server
make install clean
Adicionar em /etc/rc.conf:
echo ‘mysql_enable=”YES”‘ >> /etc/rc.conf
Inicializando:
/usr/local/etc/rc.d/mysql-server start
Setando a senha de root do Mysql (tem que ter realiazado o start antes)
/usr/local/bin/mysqladmin -u root password ‘senha’

4 – Instalando o PHP
cd /usr/ports/lang/php5
make config
No menu de seleção de configurações marcar Build Apache module
make install clean
Instalando suporte para MySQL e MySQLi (uma interface melhorada para o MySQL), a fim de comunicar com o servidor MySQL.
cd /usr/ports/lang/php5-extensions/
make config
Selecionar MySQL database support e MySQLi database support
make install clean

5 – Instalando PHPMYADMIN
cd /usr/ports/databases/phpmyadmin/
make config
Devemos selecionar MYSQL M(DB_connect): PHP MySQL support via mysql client e MYSQLI M(DB_connect) PHP Improved MySQL client support
Desmarcar a opção de PDF – PHPLib Support pois ao final há erros na instalação da mesma. Acredito que necessita de outra biblioteca.
make install clean
Iremos criar o php.ini vindo do exemplo:
cp /usr/local/etc/php.ini-development /usr/local/etc/php.ini
Iremos editar o arquivo /usr/local/etc/apache22/httpd.conf alterando a linha
DirectoryIndex index.html
Para
DirectoryIndex index.html index.htm index.php
Adicionar no final do arquivo em
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Alias /phpmyadmin “/usr/local/www/phpMyAdmin”

Options None
AllowOverride None
Order allow,deny
Allow from all

Para que o apache suporte multilinguagem é necessários descomentar a linha:
Include etc/apache22/extra/httpd-languages.conf
Editar o arquivo /usr/local/etc/apache22/extra/httpd-languages.conf e adicionar no final do arquivo a linha:
AddDefaultCharset On

Restartar o apache
/usr/local/etc/rc.d/apache22 restart
Obs: Enfrentei um grande problema ao subir o apache com um erro visivelmente observado com o FQDN

Cat /var/log/httpd-error.log

[Sun Feb 17 04:57:13 2013] [alert] (EAI 8)hostname nor servname provided, or not known: mod_unique_id: unable to find IPv4 address of “cliente.abratel.com.br”

A solução foi editar o /usr/local/etc/apache22/httpd.conf descomentando a linha e adicionando o mesmo nome definido no rc.conf como hostname:
ServerName cliente.abratel.com.br:80
Visualização do rc.conf
hostname=”cliente.abratel.com.br”
Persistindo o erro percebi que não pingava no hostname, criei então a entrada editando o arquivo/etc/hosts:
127.0.0.1 srvclosmaq.abratel.com.br
Tive que adicionar no /etc/hosts
127.0.0.1 cliente cliente.abratel.com.br
Após realizei o start do apache com sucesso.
7 – Instalar no lnkys (navegador)
pkg_add –rv lynx (r para buscar remotamente na internet e v de verbose)
Podemos testar o comando e o funcionamento do apache, php e phpmyadmin:
lynx http://localhost/phpmyadmin
8 – Instalando asterisk
Instalar drives dahdi para clock do asterisk
cd /usr/ports/misc/dahdi-kmod26 (instalação da versão 2.6 do dahdi)
make install clean
echo ‘dahdi_enable=”YES”’ >> /etc/rc.conf
Se possuir realmente uma placa basta somente colocar o modelo corretamente para inicialização (talvez com o comando dmesg consiga localizar o modelo corretamente):
echo ‘dahdi_modules=”wctdm24xxp”’ >> /etc/rc.conf

Foi necessário a criação do system.conf
touch /usr/local/etc/dahdi/system.conf
Startando o service:
/usr/local/etc/rc.d/dahdi start
Instalando asterisk:
cd /usr/ports/net/asterisk11 (optamos pela versão 11)
make config
Selecionar arquivos MYSQL – MySQL database
make install clean
echo ‘asterisk_enable=”YES”’ >> /etc/rc.conf
Obs: Para funcionamento do commando safe_asterisk é preciso editar o arquivo /usr/local/sbin/safe_asterisk comentando a linha
#TTY=9
9 – Instalando complementos asterisk
cd /usr/ports/www/asterisk-stat
make install clean
cd /usr/local/www/asterisk-stat/lib
cp defines.php-dist defines.php
Editar o arquivo defines.php modificando:
define (“HOST”, “localhost”);
define (“PORT”, “3306”);
define (“USER”, “root”);
define (“PASS”, “123”);
define (“DBNAME”, “asteriskcdrdb”);
define (“DB_TYPE”, “mysql”); // mysql or postgree
Salve este arquivo e continue:
Editar o arquivo /usr/local/etc/apache2/httpd.conf inserindo as linhas:
Alias /asterisk-stat “/usr/local/www/asterisk-stat/”

Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all

Reinicie o apache, e acesse:
http://ipdoservidor/asterisk-stat/cdr.php
10 – Instalando OSLEC para cancelamento de ECO
Noticia boa é que o freebsd 9 com o dahdi 2.6 já esta incluso o cancelador de eco oslec bastando ativa-lo no system.conf do dahdi removendo o cancelador padrão mg2.
11 – Instalação do Noip
pkg_add –rv noip
Após instalação é exibida a mensagem:
###########################################################
You need to generate the noip config file ‘no-ip2.conf’ in
/usr/local/etc/no-ip2.conf. To do this automatically, run:
make conf
You need to register with www.no-ip.com to use this port.
You also need to add the following line to your
/etc/rc.conf or /etc/rc.conf.local file:
noip_enable=”YES”
###########################################################
Comando para atualizar a lista de comando:
rehash
Configurar a interface e noip: (cadastrar o host criado em www.no-ip.org)
noip2 -C -c /usr/local/etc/no-ip2.conf
Abaixo um exemplo de uma configuração:
By typing the number associated with it.
0 em0
1 em1

Please enter the login/email string for no-ip.com email@provedor.com.br Please enter the password for user ‘email@provedor.com.br’ **********
Only one host [srvclosmaq.sytes.net] is registered to this account.
It will be used.
Please enter an update interval:[30] 3
Do you wish to run something at successful update?[N] (y/N) y
Please enter the script/program name noip
New configuration file ‘/usr/local/etc/no-ip2.conf’ created.
Adicionar no start automatico:
Edite o arquivo /usr/local/etc/rc.d/noip e altere a variável (name=”noip”) para (name=”noip2″) nome do comando que está em /usr/local/bin/noip2.
No /etc/rc.conf deixe o No-IP habilitado como padrão noip_enable=”YES”
12 – Instalando o webmin
pkg_add –rv webmin
Rodar o commando/usr/local/lib/webmin/setup.sh para configurar de acordo do desejado.
Para dar o start no webmin /usr/local/etc/rc.d/webmin start
Adicionar para inicialização automatic (/etc/rc.conf): webmin_enable=”YES”
Depedendo das configurações desejadas o link de acesso padrão é http://ip:10000
Realizando procura de pacotes pelo Ports:

Instalando um serviço de email MTA:
Instalando um smarthost baseado no gmail
cd /usr/ports/mail/postfix && make install
Selecionar na instalação: PCRE, TLS, SASL2.
Quando terminar a instalação será questionado se deseja ativar o postfix, iremos responder que sim:
Would you like to activate Postfix in /etc/mail/mailer.conf [n] “y”
Para ativar o postfix automaticamente na inicialização:
echo ‘postfix_enable=”YES”’ >> /etc/rc.conf
Desativar o sendmail editando o arquivo /etc/rc.conf adicionando as linhas:
sendmail_enable=”NO”
sendmail_submit_enable=”NO”
sendmail_outbound_enable=”NO”
sendmail_msp_queue_enable=”NO”
Desativar as retinas diárias feita pelo sendmail editando o arquivo /etc/periodic.conf:
(Caso não exista esse arquivo, cria-lo e adicionar as linhas abaixo)
daily_clean_hoststat_enable=”NO”
daily_status_mail_rejects_enable=”NO”
daily_status_include_submit_mailq=”NO”
daily_submit_queuerun=”NO”
Configuração do postfix. Editar o arquivo /usr/local/etc/postfix/main.cf adicionando as linhas abaixo:
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_use_tls = yes
Criar um arquivo chamado sasl_passwd /usr/local/etc/postfix/sasl_passwd:
cd /usr/local/etc/postfix
touch sasl_passwd
chmod 700 sasl_passwd
Preencher o arquivo com os dados abaixo /usr/local/etc/postfix/sasl_passwd:
[smtp.gmail.com]:587 seuemail@gmail.com:suasenha
Salvar e mudar a permissão do arquivo:
chmod 400 sasl_passwd
Realizar o reboot do sistema:
reboot
Criar o hash do arquivo:
cd /usr/local/etc/postfix
postmap sasl_passwd
Editar o arquivo /etc/mail/aliases descomentando e adicionando o email do gmail:
root: seuemail@gmail.com
Criar a base de direcionamento dentro de /etc/aliases com o comando:
newaliases
postmap -q root hash:/etc/aliases
Irá verificar na saida o email cadastrado.
Testar o envio de email:
echo teste | mail seuemaildestinoteste@provedor.com.br
Importante enviar um email pelo root pois diariamente o freebsd envoi relatorio sobre o sistema de email do root. Digite o comando:
sendmail -bv root
Posteriormente deve-se receber um email do sistema neste gmail cadastrado.

Instalando áudio em pt_br asterisk
CDR Asterisk no MySql
Crie um arquivo cdr.sql com o seguinte conteúdo:
create database asteriskcdrdb;
use asteriskcdrdb;
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=’NO_AUTO_VALUE_ON_ZERO’ /;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `cdr`;
CREATE TABLE `cdr` (
`calldate` datetime NOT NULL default ‘0000-00-00 00:00:00’,
`clid` varchar(80) NOT NULL default ”,
`src` varchar(80) NOT NULL default ”,
`dst` varchar(80) NOT NULL default ”,
`dcontext` varchar(80) NOT NULL default ”,
`channel` varchar(80) NOT NULL default ”,
`dstchannel` varchar(80) NOT NULL default ”,
`lastapp` varchar(80) NOT NULL default ”,
`lastdata` varchar(80) NOT NULL default ”,
`duration` int(11) NOT NULL default ‘0’,
`billsec` int(11) NOT NULL default ‘0’,
`disposition` varchar(45) NOT NULL default ”,
`amaflags` int(11) NOT NULL default ‘0’,
`accountcode` varchar(20) NOT NULL default ”,
`uniqueid` varchar(32) NOT NULL default ”,
`userfield` varchar(255) NOT NULL default ”,
KEY `calldate` (`calldate`),
KEY `dst` (`dst`),
KEY `accountcode` (`accountcode`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
Salve o arquivo e execute:
mysql -p < cdr.sql (entre com a senha) A tabela para armazenagem do cdr já criada. Agora, vamos configurar o asterisk para isso. cd /usr/local/etc/asterisk e editar o aquivo cdr_mysql.conf [global] hostname = localhost dbname = asteriskcdrdb user = root password = 123 port = 3306 Restar o asterisk com: core restart now (na CLI) Entre novamente, e verifique: asterisk*CLI> cdr mysql status
Connected to asteriskcdrdb@localhost, port 3306 using table cdr for 8 seconds.
Wrote 0 records since last restart.
asterisk*CLI>
Se ocorrer a mensagem o asterisk esta gravando no mysql com sucesso.
Modificando a tela de Boas Vindas ao logar:
1 – Editar o arquivo /etc/motd
2 – Criar um nome ascii para http://ascii.mastervb.net/ e colar no motd salvando.
Acertando o horário automaticamente (utilizando a internet para saída – lembrar de liberar no fire a porta udp 123 para o dominio a.ntp.br)
1 – Editar o arquivo /etc/rc.conf adicionando o conteúdo:
ntpdate_enable=”YES”
ntpdate_flags=”-b”
ntpdate_hosts=”a.ntp.br”
Instalação do Cacti para monitorização
pkg_add -rv cacti
Criando o banco a tabela cacti:
mysqladmin –user=root create cacti -p
Criando usuário cacti:
echo “GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘cactiuser’; FLUSH PRIVILEGES;”
mysql -uu root -p
Importando as tabelas cacti:
mysql -u root cacti < /usr/local/share/cacti/cacti.sql -p Edite o db-settings.php e troque as configurações do seu mysql: vim /usr/local/share/cacti/include/db-settings.php Edite seu /etc/crontab adicione: */5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1
Adicione um Alias no seu apache, no httpd.conf
Alias /cacti “/usr/local/share/cacti/”

Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all

Abra o cacti em seu navegador, no endereço:
http://ipdoservidor/cacti/
Usuário: admin
Senha: admin
Este usuário e senha serão válidos apenas para o primeiro login.

Deixe um comentário