Servidor - Instalação João Medeiros (joao.fatern@gmail.com) 1 / 24
relendo 2 / 24
relendo Um dos servidores mais utilizados do mundo Desenvolvimento iniciado em 1995 pela NCSA (National Center for Computer Aplications) com a criação do NCSA Web Desenvolvedores da NCSA se desligaram e criaram a Fundação 3 / 24
relendo Suporte a HTTP 1.1 para criação de hosts virtuais baseados em DNS Suporte a Secure Socket Layer (SSL) para transações seguras Suporte a scripts CGIs, Perl, PHP, etc Suporte a autenticação baseada em HTTP Suporte a Servlets java Logs customizáveis rápida e simples É gratuito 4 / 24
Instalação em sistemas baseados em Debian apt-get install apache2 apache2-utils Caso não tenha acesso a internet, execute o comando apt-get -qq --print-uris install apache2 apache2-utils \ awk {print $1} sed "s/ //g" Instalação a partir dos fontes (o mais indicado é instalar pelos pacotes da distribuição em uso) Download: wget http://linorg.usp.br/apache/httpd/httpd-2.2.9.tar.gz tar xzf httpd-2.2.9.tar.gz cd httpd-2.2.9./configure make && make install Instalação em /usr/local/apache 5 / 24
Suporte as seguintes opções Páginas Web de usuários do provedor Páginas de Empresas com domínios próprios Hospedar banco de dados MySQL Páginas PHP, Java ou Perl Suporte a transações seguras (SSL) Autenticação de usuários relendo 6 / 24
Depende da distribuição e de como foi instalado No caso do Ubuntu os arquivos ficam no diretório /etc/apache2 -rw-r--r-- 1 root root 10384 2008-02-04 17:26 apache2.conf drwxr-xr-x 2 root root 4096 2008-08-11 21:56 conf.d -rw-r--r-- 1 root root 895 2008-02-04 17:26 envvars -rw-r--r-- 1 root root 0 2008-08-11 21:56 httpd.conf drwxr-xr-x 2 root root 4096 2008-08-11 21:56 mods-available drwxr-xr-x 2 root root 4096 2008-08-11 21:56 mods-enabled -rw-r--r-- 1 root root 59 2008-02-04 17:26 ports.conf drwxr-xr-x 2 root root 4096 2008-08-11 21:56 sites-available drwxr-xr-x 2 root root 4096 2008-08-11 21:56 sites-enabled 7 / 24
relendo 8 / 24
relendo A descrição completa está no arquivo /usr/share/doc/apache2/readme.debian O DocumentRoot está especificado no arquivo de configuração /etc/apache2/sites-available/default apache2.conf Arquivo de configuração principal conf.d Arquivos neste diretório são incluídos pelo apache2.conf. Bom lugar para incluir adicionais mods-available Contém uma série de arquivos.load e.conf. Os arquivos.load contém diretivas de necessárias para carregar os em questão. O respectivo.conf contém diretivas de configuração para utilizar o módulo correspondente mods-enable Contém os que estão ativos. Normalmente basta criar um link para o módulo disponível cgi.load -> /etc/apache2/mods-available/cgi.load 9 / 24
relendo ports.conf Informa quais portas TCP o apache irá utilizar sites-available Semelhante aos disponíveis, contém diretivas para diferentes hosts virtuais. sites-enabled Sites que estão habilitados. Normalmente basta criar um link para o site. Arquivos que: não começam com uma letra ou número, contém algum caracter que não seja letra, número ou_- conteham.dpkg são ignorados pelas diretivas de inclusão. 10 / 24
relendo a2enmod e a2dismod Habilitam e desabilitam. a2ensite e a2dissite Habilitam e desabilitam sites. 11 / 24
relendo Relendo os arquivos de sem parar o apache root@fatern-desktop1:~# /etc/init.d/apache2 reload Reiniciando o apache root@fatern-desktop1:~# /etc/init.d/apache2 restart Parando o apache root@fatern-desktop1:~# /etc/init.d/apache2 stop Para iniciar o apache, execute root@fatern-desktop1:~# /etc/init.d/apache2 start Verificando se o daemon está executando root@fatern-desktop1:~# ps -ef grep apache root 8226 1 1 00:31? 00:00:00 /usr/sbin/apache2 -k 12 / 24
relendo Linux MySQL PHP 13 / 24
relendo Softwares/Módulos Necessários Interpretador PHP Servidor MySQL Módulo mod php - conecta o ao interpretador PHP Módulo php5-mysql - Conecta o PHP ao MySQL 14 / 24
relendo No início da WEB existiam apenas páginas estáticas Scripts CGIs PERL Practical Extraction and Report Language PHP: Hypertext Preprocessor PHP é bem mais rápido que os scripts CGI CGI - carregado na memória, executado e descarregado a cada requisição PHP - O interpretador fica carregado e executa de forma contínua os comando recebidos dos scripts incluídos nas páginas Perl também pode ser usado como módulo do apache (mod-perl) 15 / 24
Instale o pacote php5 (ou php4) apt-get install php5 libapache2-mod-php5 Reinicie o apache com o comando /etc/init.d/apache2 restart Teste se o PHP está funcionando Crie o arquivo /var/www/teste.php com o conteúdo <?php phpinfo();?> Aponte seu navegador para o endereço http://localhost/teste.php 16 / 24
relendo Instale o módulo php5-mysql # apt-get install php5-mysql Renicie o servidor apache # /etc/init.d/apache2 restart Teste novamente o PHP e veja se o módulo do mysql está presente, acesse o endereço http://localhost/teste.php 17 / 24
do PHP - arquivo php.ini Ubuntu/Debian - /etc/php5/apache2/php.ini RedHat/CentOS - /etc/php.ini É recomendável desativar as funções show source, system, shell exec, passthru, exec, popen, proc open, symlink. Altere o arquivo php.ini e procure pela linha disable functions disable_functions = show_source, system, shell_exec, passthru, exec, popen, proc_open, symlink Outras opções que podem ser desativadas são expose_php = Off register_globals = Off allow_url_fopen = Off allow_url_include = Off 18 / 24
relendo Instalação do cliente e servidor no Ubuntu/Debian # apt-get install mysql-server Em algumas distribuições deve-se instalar o mysql e o mysql-server Após a instalação, execute o comando mysql install db para criar a base de dados mysql (usada para armazenar a configuração do servidor MySQL). # mysql install db Iniciando e parando o serviço mysql # /etc/init.d/mysql start # /etc/init.d/mysql stop Para trocar a senha do root, definida na instalação, utilize: # mysqladmin -u root -p password fatern01 19 / 24
Forma mais elementar de administrar o MySQL: linha de comandos # mysql -u root -p <enter> Enter password: <senha> Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 43 to server version: 4.0.15-log Type help; or \h for help. Type \c to clear the buffer. mysql> Para sair, pressione Ctrl+C ou execute o comando quit 20 / 24
Criar Banco de dados, utilize o comando CREATE DATABASE nomebanco. Todos comandos dentro do prompt do MySQL dever terminar com ;. Para ver os bancos existentes utilize SHOW DATABASES; mysql> CREATE DATABASE phpbb; Query OK, 1 row affected (0.00 sec) mysql> SHOW DATABASES; +--------------------+ Database +--------------------+ information_schema phpbb mysql +--------------------+ 3 rows in set (0.00 sec) 21 / 24
Permissões de acesso Usuário para cada base de dados Exemplo: Fórum phpbb e WordPress duas bases de dados: phpbb e wordpress dois usuários separados, cada um com permissão para acessar uma das duas bases Outra situação comum: Um servidor com vários virtual hosts O Webmaster de cada site vai precisar de uma ou mais base de dados. Para criar um usuário phpbb com senha phpbb00 e dar acesso à base de dados phpbb mysql> GRANT ALL ON phpbb.* TO phpbb IDENTIFIED BY phpbb00 ; mysql> FLUSH PRIVILEGES; (permita tudo na base phpbb para o usuário phpbb, identificado pela senha phpbb00) 22 / 24
Exercícios relendo 1 Faça uma instalação de um servidor LAMP 2 Após a instalação, teste o funcionamento do php criando alguma página de testes (sugestão: utilize a que vimos na aula) 3 Examine o arquivo de configuração do php (/etc/php5/apache2/php.ini) e ajuste alguns parâmetros que podem melhorar seu desempenho (Veja a referência [2]): max execution time - Quantos segundos um script pode consumir max input time - Quanto tempo um script pode aguardar por dados memory limit -Quando de memória um script pode consumir output buffering - Quantos bytes um script pode enviar para o buffer antes de enviar os dados para o cliente 4 Aproveite algum projeto em PHP que você tenha produzido em alguma outra disciplina e instale-o no servidor que você acabou de instalar. 23 / 24
Referências [1] http://www.gdhpress.com.br/servidores/leia/index.php?p=cap6-2 [2] http://www.ibm.com/developerworks/linux/library/l-tune-lamp-2.html 24 / 24