Neste tutorial mostro como configurar um ambiente composto por Apache, MySQL, PHP, phpMyAdmin e Mambo Open Source (MOS). Uma estrutura completa para o usuário criar seu próprio site usando o excelente gerenciador de conteúdo MOS.
Mambo Open Source & Friends
Autor:
Hélder Garcia
Email: hlbog<NFSPAM>sounerd.com
Maio
de 2004
Esse tutorial descreve os procedimentos para a criação de um ambiente composto por Apache, MySQL, PHP, phpMyAdmin, e Mambo Open Source. É destinado aqueles que desejam utilizar o Mambo Open Source como plataforma de Gerenciamento de Conteúdo para sites Internet ou Intranet.
Mostrando não só como instalar o MOS (Mambo Open Source), mas também todas as ferramentas e serviços necessários para compôr uma estrutura completa, espero facilitar o processo para quem quer experimentar o MOS, e contribuir para difundir este produto que acho excelente.
Sugiro que o usuário mantenha um ambiente local para desenvolvimento e testes, antes de realizar qualquer alteração em seu site de produção.
O documento é composto dos seguintes ítens:
Parte I | – | Pacotes Necessários |
Parte II | – | Instalação do Apache |
Parte III | – | Instalação do MySQL |
Parte IV | – | Instalação do PHP |
Parte V | – | Instalação do MOS |
Parte VI | – | Instalação do phpMyAdmin |
Parte I – Pacotes Necessários
Esta seção apenas reúne os links utilizados para realizar o download dos pacotes de todos os produtos mostrados neste tutorial. Se você achar melhor, pode baixar previamente todos os pacotes antes de iniciar o acompanhamento do tutorial.
Parte II – Instalação do Apache
Nesta primeira parte veremos como realizar uma instalação básica do Apache. Os procedimentos aqui mostrados foram realizados com sucesso em um sistema Red Hat 9 e um sistema Mandrake 9.1.
Primeiro baixe o tarball do site do Apache em algum diretorio, por exemplo, /usr/src/softwares.
Em seguida, voce deve descompactá-lo.
# cd /usr/src/softwares
# tar xzvf httpd-2.0.49.tar.gz
# cd httpd-2.0.49
Rode o script configure para gerar as opções de compilação para o seu sistema.
# ./configure -prefix=/usr/local/apache2 -enable-mods-shared=most
A opção -prefix informa o diretório de instalação do Apache, e a segunda opção indica a criação da maioria dos módulos disponíveis, o que torna esta instalação funcional para a maioria dos casos.
Faça a compilação:
# make
E a instalação:
# su
# make install
ou
# sudo make install
Edite o arquivo /usr/local/apache2/conf/httpd.conf.
# vi /usr/local/apache2/conf/httpd.conf
Certifique-se de que existem as linhas abaixo neste arquivo.
DirectoryIndex index.html index.html.var index.php
AddType application/x-httpd-php .php
Configure para que o Apache inicie automaticamente, como mostrado a seguir.
Copie /usr/local/apache2/bin/apachectl para /etc/init.d/httpd.
Edite o arquivo /etc/init.d/httpd e acrescente as linhas abaixo após a linha #!/bin/sh.
# chkconfig: 345 20 80
# description: Apache Web server
Salve e execute os comandos abaixo (como root).
# cd /etc/init.d
# chkconfig –add httpd
Crie o diretório /usr/local/www, vamos precisar dele mais tarde. Embaixo dele iremos colocar o conteúdo do site.
# mkdir -p /usr/local/www
Parte III – Instalação do MySQL
Baixe o tarball e descompacte no diretório /usr/src/softwares.
# cd /usr/src/softwares
# tar xzvf myqsl-4.0.18.tar.gz
# cd myqsl-4.0.18
Rode o script configure para gerar as opções de compilação para o seu sistema.
#./configure –prefix=/usr/local/mysql –localstatedir=/usr/local/mysql/data –disable-maintainer-mode –with-mysqld-user=mysql –enable-large-files-without-debug
Faça a compilação:
# make
E a instalação:
# su
# make install
ou
# sudo make install
Crie um grupo e um usuário mysql.
# groupadd mysql
# useradd -g mysql mysql
Em seguida, instale os databases.
# ./scripts/mysql_install_db
Configure o MySql para iniciar no boot automaticamente. Copie o arquivo /usr/src/softwares/myqsl-4.0.18/support-files/mysql.server para /etc/init.d/mysqld e inclua o serviço com o comando chkconfig.
# cd /etc/init.d
# cp usr/src/softwares/myqsl-4.0.18/support-files/mysql.server mysqld
# chmod 755 mysqld
# chkconfig –add mysqld
# ./mysqld start
# ./mysqld stop
Ajuste os ownership dos diretórios abaixo.
# cd /usr/local
# chown -R root:mysql mysql
# chown -R mysql:mysql mysql/data
Adicione a linha abaixo no arquivo /etc/ld.so.conf.
/usr/local/mysql/lib/mysql
Altere o script /etc/init.d/mysqld. Altere a linha que contém o trecho abaixo,
$bindir/mysqld_safe –datadir=$datadir –pid-file=$pid_file >/dev/null 2>&1 &
para
$bindir/mysqld_safe –user=mysql –datadir=$datadir –pid-file=$pid_file >/dev/null 2>&1 &
Inicie o servidor.
# /etc/init.d/mysqld start
Altere a senha do usuário root do MySql.
# /usr/local/mysql/bin/mysqladmin -u root password new_password
Crie um usuário chamado mysql com poderes de superuser.
# /usr/local/mysql/bin/mysql –user=root -p mysql
No prompt do MySql, digite os comandos abaixo.
mysql> GRANT ALL PRIVILEGES ON *.* TO mysql@localhost
IDENTIFIED BY ‘alguma_senha’ WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO mysql@’<hostname completo>’
IDENTIFIED BY ‘alguma_senha’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> quit
Parte IV – Instalação do PHP
Baixe o tarball e descompacte no diretório /usr/src/softwares.
# cd /usr/src/softwares
# tar xzvf php-4.3.6.tar.gz
# cd php-4.3.6
Rode o script configure para gerar as opções de compilação para o seu sistema.
# ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache2/bin/apxs –with-mysql=/usr/local/mysql –with-zlib –with-bz2
Talvez você tenha que reinstalar o pacote do BZip2 para que o script aceite sua configuração.
Faça a compilação:
# make
E a instalação:
# su
# make install
ou
# sudo make install
Copie o arquivo de configuração de exemplo para o diretório correto.
# cp php.ini-recommended /usr/local/php/lib/php.ini
Edite este arquivo (/usr/local/php/lib/php.ini), altere o valor de doc_root para /usr/local/www e esteja certo de que o valor de file_uploads seja On. Na linha do include_path remova o símbolo de comentário e coloque os caminhos abaixo de /usr/local/php. As três linhas deverão ficar assim:
doc_root=”/usr/local/www/”
file_uploads=On
include_path = ".:/usr/local/php/lib/php:/usr/local/php/include"
Edite o arquivo /usr/local/apache2/httpd.conf.
# vi /usr/local/apache2/conf/httpd.conf
Verifique se existe e inclua, se for o caso, a linha abaixo neste arquivo, na seção de Dynamic Shared Object.
LoadModule php4_module modules/libphp4.so
E altere o valor de DocumentRoot conforme a linha abaixo.
DocumentRoot "/usr/local/www"
E também do seguinte trecho.
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/usr/local/www">
Os comandos a seguir são apenas para realizar alguns testes do ambiente.
Reinicie o Apache.
# /etc/init.d/httpd restart
Faça os seguintes testes, onde você deve obter respostas semelhantes às mostradas aqui.
# /usr/local/apache2/bin/httpd -t
[Fri Apr 30 17:35:11 2004] [warn] module php4_module is already loaded, skipping
Syntax OK# /usr/local/apache2/bin/httpd -v
Server version: Apache/2.0.49
Server built: Apr 28 2004 07:54:19# /usr/local/apache2/bin/httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c# /usr/local/apache2/bin/httpd -V
Server version: Apache/2.0.49
Server built: Apr 28 2004 07:54:19
Server’s Module Magic Number: 20020903:7
Architecture: 32-bit
Server compiled with….
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT="/usr/local/apache2"
-D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Estando tudo certo, podemos criar um exemplo de index.php.
# cd /usr/local/www
# vi index.php<html>
<head>
<title>PHP Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<h1>PHP Test</h1>
<p>
<b>An Example of PHP in Action</b><br />
<?php echo "The Current Date and Time is: <br>";
echo date("g:i A l, F j Y.");?>
</p><h2>PHP Information</h2>
<p>
<?php phpinfo(); ?>
</p>
</body>
</html>
Abra o seu browser em http://localhost e veja se apareceu uma tabela com dados de configuração do PHP.
Ok? Neste ponto você já tem a infra-estrutura necessária para a instalação do Mambo Open Source e a criação de seu site local. Vamos em frente…
Parte V – Instalação do Mambo Open Source
Baixe a última versão do MOS e copie em /usr/local/www. Descompacte neste diretório.
# cd /usr/local/www
# rm index.php
# cp /usr/src/softwares/mos45s107.tar.gz .
# tar xzvf mos45s107.tar.gz
# cd ..
# chown -R nobody www
# cd www
Abra o seu browser em http://localhost. Deverá aparecer a primeira página de instalação do Mambo Open Source. Veja abaixo na figura como deve estar o status dos ítens verificados nesta página.
Clique em Continue.
Na página seguinte, preencha os campos, informando seu hostname (localhost), usuário e senha MySQL (utilize o usuário mysql que criamos anteriormente ou o root mesmo), e o nome que você quer dar ao database deste site.
Clique em Next.
Forneça um nome para o seu site. Isto não é a URL, apenas uma descrição breve do site.
Clique em Next.
Confirme a URL e path e informe seu email. Configure também nesta página uma senha para o usuário Admin do MOS.
Clique em Next.
Pronto, aparece a última página lembrando você de apagar o diretório de instalação.
Clique em Run!
Faça o que ele manda e apague o diretório installation.
# cd /usr/local/www
# rm -rf installation
Seu site está no ar! Veja em http://localhost.
A tentação de começar a criar alguma coisa é grande, mas vamos instalar mais uma ferramenta que vai lhe ajudar muito na gerência do seu ambiente.
Parte VI – Instalação do phpMyAdmin
O phpMyAdmin permite que você gerencie os seus bancos de dados MySQL através de uma console Web. Muito útil mesmo para quem já domina o MySQL.
Baixe a última versão para o seu diretório de pacotes, no meu exemplo /usr/src/softwares.
Copie o tarball que você baixou para dentro da sua árvore root do servidor Web, neste exemplo, /usr/local/www.
# su -
# cd /usr/local/www
# cp /usr/src/softwares/phpMyAdmin-2.5.6.tar.gz .
Descompacte o pacote.
# tar xzvf phpMyAdmin-2.5.6.tar.gz
Vamos configurá-lo. Primeiro mude o nome do diretório para tornar mais fácil a digitação de seu nome na URL.
# mv phpMyAdmin-2.5.6 phpmyadmin
Vamos criar um usuário no MySql chamado control. Este usuário o phpMyAdmin exige para que usemos modos de autenticação HTTP ou cookie. É claro que o nome do usuário pode ser outro.
# /usr/local/mysql/bin/mysql –user=root -p mysql
No prompt do MySql, digite os comandos abaixo. Aqui estamos tratando com localhost, mas se você for acessar via browser usando o hostname ao invés de localhost, você deve substituir nos comandos abaixo localhost pelo hostname completo do servidor.
mysql> GRANT USAGE ON mysql.* TO ‘control’@'localhost’ IDENTIFIED BY ‘<senha>’;
mysql> GRANT SELECT (
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
Execute_priv, Repl_slave_priv, Repl_client_priv
) ON mysql.user TO ‘control’@'localhost’;
mysql> GRANT SELECT ON mysql.db TO ‘control’@'localhost’;
mysql> GRANT SELECT ON mysql.host TO ‘control’@'localhost’;
mysql> GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
ON mysql.tables_priv TO ‘control’@'localhost’;
mysql> FLUSH PRIVILEGES;
mysql> quit
Agora iremos alterar o arquivo de configuração do phpMyAdmin.
# cd phpmyadmin
Abra o arquivo config.inc.php.
No campo $cfg['PmaAbsoluteUri'] informe a URL completa para acessar o phpMyAdmin. Por exemplo:
$cfg['PmaAbsoluteUri'] = ‘http://localhost/phpmyadmin’;
Configure os campos abaixo, relativos à autenticação.
$cfg['blowfish_secret'] = ‘<passphrase de sua escolha>’;
$cfg['Servers'][$i]['host'] = ‘localhost’;
$cfg['Servers'][$i]['controluser'] = ‘control’;
$cfg['Servers'][$i]['controlpass'] = ‘<senha>’;
$cfg['Servers'][$i]['auth_type'] = ‘cookie’;
$cfg['Servers'][$i]['user'] = ”;
$cfg['Servers'][$i]['password'] = ”;
Acesse o phpMyAdmin através do seu browser digitando a URL http://localhost/phpmyadmin.
Vou finalizando por aqui. Você tem muito trabalho a fazer no seu site agora…
Espero ter ajudado,
– hlbog