linux

Tutoriais

Configuração de Servidor Web no Linux

19 fev , 2014  

Para iniciar o assunto de programação e boas práticas no desenvolvimento web, vamos começar pelo ponto inicial, pois para testar e publicar os projetos, você precisa de um servidor.

Além do Xamp, Wamp, Vertrigo e muitos outros programas que facilitam a vida do programador a gerar um servidor básico para testar e até mesmo publicar seus projetos aos clientes, há possibilidades de criar um servidor próprio para esse uso, levando em consideração que no futuro você deseje formar uma equipe e gostaria de que cada programador acesse os scripts para manutenção e implementação em um servidor central, que gerencia os acessos e também o backup diário. E muitas vezes sem um custo elevado nessa etapa inicial.

Escolhemos também um servidor Linux, por ser um sistema gratuito e que podemos explorar e muito os seus recursos.

Vamos apresentar para vocês a instalação e configuração de um servidor Linux, utilizando Apache, PHP, FTP, Phpmyadmin, Monit, IP fixo e acesso externo.

Bom, vamos começar!

Aposto que você esta pensando, devo baixar um sistema operacional Linux Server? Na realidade não precisa, mas já deixo claro que você pode não gostar muito da lentidão de utilizar um servidor Desktop, por ter muitos elementos gráficos pra ficar mais ‘enfeitado’.

Acesse o seguinte link e baixe a versão mais recente que encontrar na lista, vou utilizar a versão ‘Ubuntu 12.04 LTS’. Não esqueça de verificar se o sistema é 32 ou 64 bits.

No meu caso, vou utilizar uma maquina virtual para demonstrar os passos de configuração do servidor, também não vou entrar no mérito de detalhar como configurar a maquina virtual nesse post.

Após iniciar o sistema, abra o terminal para instalar os pacotes que vai precisar para o seu servidor.

O primeiro comando que vamos utilizar é o:

sudo su

Com este comando você realiza o login como root no Linux. Após esse comando o sistema pede sua senha e realiza o login.

Agora já podemos começar a instalar os pacotes, segue próximo comando:

apt-get install mysql-server mysql-client

O sistema pede para você confirmar se deseja continuar, apenas insira esse comando:

y

Após alguns ajustes automáticos o sistema apresenta essa tela abaixo, pedindo para você inserir uma senha para o usuário root do MySQL:

6

Após inserir sua senha, o sistema pede para você repetir:

7

Assim finaliza a instalação do MySQL, agora vamos instalar o Apache:

apt-get install apache2

O sistema pede para você confirmar se deseja continuar, apenas insira esse comando:

y

Agora vamos instalar o PHP:

apt-get install php5 libapache2-mod-php5

O sistema pede para você confirmar se deseja continuar, apenas insira esse comando:

y

Após terminar a instalação do PHP, vamos criar uma página de teste para ver se esta funcionando, com o seguinte comando:

gksu gedit /var/www/info.php

No arquivo que abriu, você insere o seguinte código PHP:

<?php 
     phpinfo();
?>

Salve o documento e já pode fechar.

Agora abra seu navegador e acesse o link:

http://localhost/info.php

Segue abaixo a página que deve ser carregada:

17

Agora vamos instalar mais alguns pacotes para o nosso servidor:

apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json

O sistema pede para você confirmar se deseja continuar, apenas insira esse comando:

y

Vamos reiniciar o nosso Apache:

/etc/init.d/apache2 restart

Bom, para facilitar o trabalho com o banco de dados MySQL, vamos instalar também o PhpMyAdmin, que traz todo o visual para alterações no banco de dados.

apt-get install phpmyadmin

O sistema pede para você confirmar se deseja continuar, apenas insira esse comando:

y

O sistema pede para você informar algumas configurações abaixo:

24

25

E para você incluir uma senha para os bancos de dados:

26

28

Mas quando você instala o PhpMyAdmin, o sistema coloca em uma pasta não acessível, então vamos mudar de pasta, mas antes vamos dar permissões para as pastas que vamos trabalhar:

sudo chown -R seuUsuario.seuUsuario /usr/share
sudo chown -R seuUsuario.seuUsuario /var/www

Agora podemos copiar a pasta do PhpMyAdmin:

30

Para:

33

Agora é só acessar no seu navegador:

http://localhost/phpmyadmin

O usuário, normalmente é ‘root’ e a senha é a que você criou:

34

Agora vamos deixar o nosso ip fixo, pois a ideia é utilizar esse servidor apenas para web, insira o seguinte comando no terminal:

gksu gedit /etc/network/interfaces

Você pode comentar todas as linhas desse documento, caso não consiga criar o ip fixo, você retorna as configurações padrões.
Vamos incluir as seguintes linhas nesse documento:

### LOOPBACK ###
auto lo
iface lo inet loopback

### PLUG ###
allow-hotplug eth0

###==========================###

auto eth0
iface eth0 inet static
address 192.168.0.100 
netmask 255.255.255.0
gateway 192.168.0.1
network 192.168.0.0

Não esqueça de verificar o padrão de sua rede, gateway, ip, mascara e porai vai.

Depois de salvar o documento alterado, você pode fechar e incluir o seguinte comando no terminal:

/etc/init.d/networking restart

Pronto, estamos com o ip fixo nessa maquina, agora vamos instalar o FTP, assim você pode acessar de outras maquinas através do FTP. Insira o comando no terminal:

apt-get install proftpd

Selecione a opção ‘standalone’ que aparece na configuração:

43

Após finalizar a instalação, vamos alterar alguns dados.. insira no terminal:

gksu gedit /etc/proftpd/proftpd.conf

Ao abrir o documento, vamos alterar algumas linhas:

1) Linha 15 – Alterar

"ServerName" = FTP_id3

2) Linha 16 – Manter

"ServerType" = standalone

3) Linha 34 – Incluir

"DefaultRoot" = "/var/www" ##manda usuario para o diretorio

4) Linha 35 – Descomentar

"DefaultRoot" = "~" ##limita o usuário em seu diretório Home.

5) Linha 41 – Manter

"Port" = 21

6) Linha 160 – Descomentar

"MaxClients" = 10

Salve e feche o documento.

Agora vamos reiniciar o nosso serviço de FTP, com o seguinte comando:

/etc/init.d/proftpd restart

Vamos instalar um serviço chamado Monit, ele serve para fazer o monitoramento no nosso servidor, enviar avisos e reiniciar o nosso servidor, caso ocorra aquecimento, erro de memória ou falta de armazenamento em disco.

apt-get install monit

No final da instalação, vamos modificar alguns itens do documento:

gksu gedit /etc/monit/monitrc

Nesse caso vou simplesmente colar as partes importantes do arquivo de configuração do Monit, você pode substituir completamente por este abaixo:

  set daemon 120            # check services at 2-minute intervals                    
  set logfile /var/log/monit.log
  set idfile /var/lib/monit/id
  set statefile /var/lib/monit/state
  set mailserver mail.seuDominio.com               # primary mailserver
  set eventqueue
      basedir /var/lib/monit/events # set the base directory where events will be stored
      slots 100                     # optionally limit the queue size
  set mmonit http://monit:monit@192.168.25.100:8080/collector
  set mail-format {
      from: monit@$HOST
   subject: monit alert --  $EVENT $SERVICE
   message: $EVENT Service $SERVICE
                 Date:        $DATE
                 Action:      $ACTION
                 Host:        $HOST
                 Description: $DESCRIPTION

            Your faithful employee,
            Monit
  }
  set alert seuEmail@seuDominio.com                       # receive all alerts
  set httpd port 2812 and
    use address 192.168.25.100
    allow admin:suaSenha      # require user 'admin' with password 'pa$$w0rd'
  check system 192.168.25.100
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 75% then alert
    if swap usage > 25% then alert
    if cpu usage (user) > 70% then alert
    if cpu usage (system) > 30% then alert
    if cpu usage (wait) > 20% then alert
  check filesystem rootfs with path /
    if space usage > 80% then alert
  group server

#mysql
  check process mysql with pidfile /var/run/mysqld/mysqld.pid
    group database
    start program = "/etc/init.d/mysql start" with timeout 60 seconds
    stop program = "/etc/init.d/mysql stop"
    if failed host 127.0.0.1 port 3306 then restart
    if 5 restarts within 5 cycles then timeout

#apache2
  check process apache2 with pidfile /var/run/apache2.pid
    start program = "/etc/init.d/apache2 start" with timeout 60 seconds
    stop program = "/etc/init.d/apache2 stop"
    if cpu > 60% for 2 cycles then alert
    if cpu > 80% for 5 cycles then restart
    if totalmem > 200.0 MB for 5 cycles then restart
    if children > 250 then restart
    if loadavg(5min) greater than 10 for 8 cycles then stop
    if 3 restarts within 5 cycles then timeout
    group server

#ftp
  check process proftpd with pidfile /var/run/proftpd.pid
    start program = "/etc/init.d/proftpd start" with timeout 60 seconds
    stop program = "/etc/init.d/proftpd stop"
    if failed port 21 protocol ftp then restart
    if 5 restarts within 5 cycles then timeout

Lembrando que nessa configuração acima, tem alguns ajustes de disparo de e-mails, mas nesse caso não vou instalar os pacotes de SMTP.

Vamos reiniciar o nosso serviço Monit:

service monit restart

Abra seu navegador e acesse esse link abaixo, para ver o status do seu servidor pelo Monit:

http://localhost:2812

Vai pedir o usuário e senha que você incluiu no documento de configuração:

71

Deve apresentar uma pagina como esta:

72

Agora vamos alterar a porta do Apache de 80 para 8080, pois para ter o acesso externo nesse servidor, as operadoras Brasileiras bloqueiam a porta 80, então para evitar esse problema, já vamos alterar, insira o comando abaixo:

gksu gedit /etc/apache2/ports.conf

Com o documento de configuração aberto, edite duas linhas, logo no inicio do documento:

NameVirtualHost *:8080
Listen 8080

Salve o documento e reinicie o Apache, com o comando abaixo:

/etc/init.d/apache2 restart

Agora vamos a parte mais importante, que é o acesso externo!

Vamos utilizar os serviços do No-Ip que é gratuito, no seguinte link

Crie uma conta para você e após essa conta pronta, crie um host para você configurar no seu modem.

82

81

No seu modem você faz a configuração da sua conta No-Ip.

Vou apresentar as telas de configuração do meu modem (SagemCom F@st 2764 GV), mas pode modificar conforme seu modem.

83

Agora só resta habilitar 3 portas no seu modem, para quando um usuário acessar o domínio que você criou no No-Ip, o modem redireciona para as portas corretas e para o servidor onde configuramos.

Segue uma tela de como ficou configurado no meu modem:

79

Agora para acessar as paginas no servidor, é pelos seguintes links:

http://localhost:8080/

http://localhost:8080/phpmyadmin

http://localhost:2812

ftp://localhost:21

Na rede você acessa com os links:

http://192.168.25.100:8080/

http://192.168.25.100:8080/phpmyadmin

http://192.168.25.100:2812

ftp://192.168.25.100:21

E externamente:

http://seuDominio.no-ip:8080/

http://seuDominio.no-ip:8080/phpmyadmin

http://seuDominio.no-ip:2812

ftp://seuDominio.no-ip:21

Bom, chegamos ao fim de nosso tutorial. Espero que tenha atendido a necessidade de vocês!

Fico no aguardo de um retorno de vocês, isso é muito importante para nós!

Deixo também alguns exercícios para vocês pesquisarem na internet e implementarem no seu servidor:

– Criar um usuário-cliente no ftp, para acessar somente uma determinada pasta ou projeto no servidor.

– Fazer as atualizações do Ubuntu através do terminal.

– Alterar data e hora do seu servidor, pois deve estar com a data errada.

– Habilitar o uso de HTACCESS, pois atualmente seu servidor não vai conseguir ler esse arquivo.

– Criar rotinas agendadas de backup no seu servidor, pois é extremamente importante para você não perder nenhum projeto. Lembrando que o correto é direcionar o backup para uma outra maquina, através da rede. Vou dar duas dicas de pesquisa: ‘Rsync’ e ‘Crontab’.

– Acessar o terminal do Ubuntu externamente com o programa PuTTy

Abraço pessoal e até a próxima!

, , , , , , , , , , , , , , , , , , ,


Comments are closed.