Servidor Web

1. Servidor Web

cleverson
cleversonmeurer

(usa Linux Mint)

Enviado em 13/10/2014 - 10:17h

Olá
Preciso montar um servidor para aplicações web e gostaria de ajuda na instalação, pois estou perdido.

Estou testando no computador que desenvolvo e tive verios problemas.
Vou precisar instalar: java, postgresql, nginx, php.

Quero instalar sem utilizar apt-get, no caso do java eu baixo o binário e postgresql, php e nginx instalo via ./configure / make / make install.
Um das duvidas que tenho é referente ao local de instalação e o usuário para estas aplicações.

É necessario criar um usuário para cada aplicação? Não pode ser o usuário que eu logo no sistema para iniciar / parar as aplicações?
Já fiz algumas instalações para testar, em uma maquina.
No caso do nginx, instalei, mas para iniciar preciso utilizar o root.
Nas configurações do nginx, apontei o diretório para as pastas e arquivos html para "/var/www", mas quando vou acessar diz que o acesso é proibido.

Eu não posso deixar estas aplicações rodando como "root"?

Outro dia tinha instalado o postgresql na pasta home do usuário (o mesmo que utilizo para login) tudo funcionou de forma correta, então resolvi mudar para "/opt", foi ai que tive varios problemas, porque para iniciar o banco e o serviço preciso utlizar, "root".

Qual a melhor fora para instalar estas aplicações (sem ser por apt-get)?

Obrigado


  


2. Re: Servidor Web

Buckminster
Buckminster

(usa Debian)

Enviado em 13/10/2014 - 16:30h

Se tu está usando o Linux Mint, instale qualquer programa manualmente sempre dentro de /usr/local ou /opt.

Indique o caminho no parâmetro prefix=/usr/local/pasta_do_meu_querido_programa ou /opt/pasta.

Tu já instalou o Apache?


3. Re: Servidor Web

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 14/10/2014 - 07:02h

cleversonmeurer escreveu:

Olá
Preciso montar um servidor para aplicações web e gostaria de ajuda na instalação, pois estou perdido.

Estou testando no computador que desenvolvo e tive verios problemas.
Vou precisar instalar: java, postgresql, nginx, php.

Quero instalar sem utilizar apt-get, no caso do java eu baixo o binário e postgresql, php e nginx instalo via ./configure / make / make install.
Um das duvidas que tenho é referente ao local de instalação e o usuário para estas aplicações.

É necessario criar um usuário para cada aplicação? Não pode ser o usuário que eu logo no sistema para iniciar / parar as aplicações?
Já fiz algumas instalações para testar, em uma maquina.
No caso do nginx, instalei, mas para iniciar preciso utilizar o root.
Nas configurações do nginx, apontei o diretório para as pastas e arquivos html para "/var/www", mas quando vou acessar diz que o acesso é proibido.

Eu não posso deixar estas aplicações rodando como "root"?

Outro dia tinha instalado o postgresql na pasta home do usuário (o mesmo que utilizo para login) tudo funcionou de forma correta, então resolvi mudar para "/opt", foi ai que tive varios problemas, porque para iniciar o banco e o serviço preciso utlizar, "root".

Qual a melhor fora para instalar estas aplicações (sem ser por apt-get)?

Obrigado


Não sei se é viável instalar sem apt-get, já que as coisas já estão prontas. A única forma alternativa é a instalação pelos sources.

Só pra citar um exemplo, a instalação do PHP requer um monte de dependências e, algumas delas não são instaladas pelo apt-get.

Para montar um servidor básico:

lighttpd (melhor, mais simples e mais rápido do que o nginx)
php5-cli
php5-cgi
php5-sqlite (ou php5-pgsql para o postgre)

Esses acima você pode muito bem instalar pelo apt sem medo de ser feliz.

Só o java que é melhor pelo .tar.gz, que você instala como já deve ter conhecimento.

Quanto a pasta /var/www você tem que dar permissão de acesso: sudo chmod 755 -R /var/www/


4. Re: Servidor Web

cleverson
cleversonmeurer

(usa Linux Mint)

Enviado em 14/10/2014 - 10:49h

Estou utilizando o LinuxMint para desenvolvimento, mas para o servidor provavelmente será uma versão sem interface gráfica, talvez o Debian.
Instalei o Apache e o Nginx, mas sempre tive problemas com as permissões da pasta.
Agora estou instalando em /opt/nginx e os arquivos e pastas das aplicações web estão em /var/www.
Ao instalar o nginx a pasta ficou com o proprietário root, mas dentro algumas estão com o usuário www-data, esta é uma duvida que tenho, qual usuário deve ser atribuido as pastas dos arquivos da aplicação web?
Este usuário www-data deve ser padrão do sistema ou o nginx criou automaticamente, eu não adicionei nenhum usuário.

Quanto ao postgresql, instalei por uma interface grafica que tem como opção de instalação, então ele criou automaticamente o usuário postgres, a pasta ficou como root:daemon,
mas para o servidor não posso utilizar a interface de instalação, pois no servidor não terá interface gráfica.


5. Re: Servidor Web

Buckminster
Buckminster

(usa Debian)

Enviado em 15/10/2014 - 13:15h

cleversonmeurer escreveu:

Estou utilizando o LinuxMint para desenvolvimento, mas para o servidor provavelmente será uma versão sem interface gráfica, talvez o Debian.
Instalei o Apache e o Nginx, mas sempre tive problemas com as permissões da pasta.
Agora estou instalando em /opt/nginx e os arquivos e pastas das aplicações web estão em /var/www.
Ao instalar o nginx a pasta ficou com o proprietário root, mas dentro algumas estão com o usuário www-data, esta é uma duvida que tenho, qual usuário deve ser atribuido as pastas dos arquivos da aplicação web?
Este usuário www-data deve ser padrão do sistema ou o nginx criou automaticamente, eu não adicionei nenhum usuário.

Quanto ao postgresql, instalei por uma interface grafica que tem como opção de instalação, então ele criou automaticamente o usuário postgres, a pasta ficou como root:daemon,
mas para o servidor não posso utilizar a interface de instalação, pois no servidor não terá interface gráfica.


Não te aconselho a fazer um servidor Web sem interface gráfica. Aliás, não aconselho a fazer qualquer tipo de servidor sem interface gráfica.

Instalar sem interface gráfica é útil para aprendizado (isso sim recomendo fortemente), mas colocar em produção sem interface gráfica é pedir para se incomodar.

Talvez você deva repensar essa decisão e instalar pelo menos uma interface gráfica mínima, ainda mais se você não tem muito conhecimento.


6. Re: Servidor Web

cleverson
cleversonmeurer

(usa Linux Mint)

Enviado em 15/10/2014 - 13:56h

Claro buckminster, vou seguir seu conselho, não tenho mesmo experiencia nisso, então para o servidor vou provavelmente utilizar o Debian com interface.
Alguem poderia me mostrar um passo a passo de isntalação por exemplo do nginx e postgresql?
Sei que sempre insisto em não utilizar apt-get, não sei se é a melhor opção não utilizar, mas um dos motivos por eu não querer utilizar é o seguinte:
Intalei o php via apt-get e me parece que ele instalou o apache junto, poque depois fui iniciar o nginx e retornava a mensagem que a porta 80 estava em uso, então verifiquei que tinha um apache instalado em /usr, removi o apache e o php.
Outro fato que não gosto do apt-get, é que ele separa as pastas do mesmo programa, por exemplo, tambem instalei para testar o nginx por apt-get, e ele instala separadamente em algumas pastas,
mas se for via make fica tudo em um lugar so, no meu caso em /opt/nginx.
E uma duvida minha referente a segunrança, independente da forma que eu instalo, sempre tenho que iniciar como root, isso não o torna mesnos seguro, pois se alguem conseguir controlar o processo do nginx, será como root, neste caso o root é o processo que inicia, mas o processo do servico esta com o usuario www-data.

Esta é a saida do comando ps aux | grep nginx:


root 3339 0.0 0.0 22424 548 ? Ss 10:02 0:00 nginx: master process /opt/nginx/sbin/nginx

www-data 3340 0.0 0.0 22868 1156 ? S 10:02 0:00 nginx: worker process




7. Re: Servidor Web

Buckminster
Buckminster

(usa Debian)

Enviado em 15/10/2014 - 23:26h

Instale nessa ordem:

Para o Apache2, última versão, faça o downolad no link abaixo:

http://httpd.apache.org/download.cgi#apache24

clique em •Source: httpd-2.4.10.tar.bz2

No Debian salve em /usr/src.

Entre nessa pasta, descompacte e execute:

# ./configure --help

e veja as opçoes de configuração, inclusive a pasta onde ele será instalado. Procure
o parâmetro --prefix.

Depois execute:

# ./configure
# make
# make install


Para o PHP siga as instruções do link abaixo, está em inglês, mas dá para entender:

http://www.thegeekstuff.com/2008/07/instruction-guide-to-install-php5-from-source-on-linux/

Baixe a versão 5.6, mais atual:

http://php.net/downloads.php

clique em php-5.6.1.tar.bz2 (sig)

e escolha o espelho do Brasil.
Salve em /usr/src.
Descompacte e execute:
# ./configure --help

Para o Postgresql:

# apt-get update
# aptitude safe-upgrade
# apt-get instal build-essential libaal-dev module-init-tools libncurses5 libncurses5-dev binutils

Faça o download da útima versão aqui:

http://www.postgresql.org/ftp/source/v9.3.5/
Salve em /usr/src.

Depois siga os procedimentos a partir daqui:

http://www.postgresql.org/docs/9.3/static/install-procedure.html


Antes de tudo verifique se a versão do teu sistema é 32 ou 64 bits e instale os pacotes de acordo.

Procure instalar dentro de /opt ou dentro de /usr/local. --prefix=/opt/pasta ou --prefix=/usr/local/pasta.
A pasta tu deverá criar vazia dentro de um desses diretórios (mkdir pasta).

Antes desisintale o Nginx.
Eu prefiro o Apache2, mas é uma questão de escolha.

Qualquer dúvida, posta aqui.


8. Re: Servidor Web

cleverson
cleversonmeurer

(usa Linux Mint)

Enviado em 16/10/2014 - 10:44h

Obrigado, estes procedimentos que voce passou funcionaram, eu consigo instalar pelos fontes,
php, apache, nginx, postgresql.
Agora a minha duvida é sobre permissões.
Para cada programa deste eu preciso criar um usuário específico?
Para instalar eu preciso utilizar o root, isto está correto?
E para iniciar o nginx e o php (o php precisa ser inciado o serviço php-fpm - FastCGI Process Manager), para ambos eu preciso inicia-los como root, minha duvida é se isso esta correto, se eu não precisaria de um usuário somente para os serviços e inicialos com este usuário.

Como um exemplo de aplicação tem a forma que eu instalei os navegadores, o Firefox baixei os binários e descompactei na pasta do usuário comum, e utiliza normalmente, entendo que desse modo o programa não tera acesso a nada fora da pasta deste usuário, mas para instalar o Google Chrome eu precisei dar permissão de root para o instalador, no meu entender, este programa ficou com permissão total ao meu computador, e isso que eu não gostaria de deixar.
No caso do nginx/apache, estando no servidor, se alguem conseguir acessar o processo, não poderá efetuar grandes alterações no servidor/configurações? Já que o processo foi iniciado pelo root?
Obrigado


9. Re: Servidor Web

Buckminster
Buckminster

(usa Debian)

Enviado em 16/10/2014 - 16:19h

Isso depende de cada programa.

Tu pode usar o comando chown para mudar o dono da pasta ou o comando chmod para dar permissões de acesso ao usuário. Mas como eu falei, tem programas que só aceitam serem iniciados pelo root.

Para instalar qualquer programa manualmente sempre deve ser como root.
Mas tu pode abrir o terminal como usuário e utilizar su ou sudo.

E o Google Chrome só ficou com permissões de root na hora da instalação.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts