Esses dias bati cabeça para tentar instalar o LAMP + WordPress aqui no meu Arch Linux. Apanhei um bocado… mas enfim, estou aqui para compartilhar com vocês o resultado disso.
Primeiramente o LAMP é um conjunto de programas muito usado por servidores web e por curiosos (como eu), e significa: Linux, Apache, MySQL e PHP. E serão esses os programas que iremos instalar, com o acréscimo do WordPress para concluir.
Vou mostrar de maneira beeem objetiva como instalar e configurar de maneira básica o LAMP e o WordPress.
Vamos a instalação
Apache
Para instalar o Apache faça:
# pacman -S apache
Depois de instalar o Apache verifique se há o arquivo “/etc/hosts
” (se não existir, crie um) e adicione as seguintes linhas no arquivo:
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost.localdomain localhost hostname // Onde 'hostname' é o nome da sua maquina no rc.conf
Agora, com o seu editor de texto favorito, edite o arquivo “/etc/httpd/conf/httpd.conf
” e descomente a linha:
LoadModule unique_id_module modules/mod_unique_id.so
Rode o Apache com o seguinte comando:
# rc.d start httpd
Pronto.
Agora Ponha o programa httpd
no DEAMONS
do seu rc.conf.
E então é só acessar o seu localhost -> http://localhost
Nota: Se você verificar, vai ver que em “/srv/
” foi criado o diretório “http/
” é lá onde será hospedado o WordPress. 😉
Configurando Virtual Host
Para que o WordPress possa mais tarde funcionar no nosso localhost, é necessário criar um Virtual Host, para que possam ser direcionado, os diretórios e os arquivos do mesmo.
Então vamos às configurações.
Primeiramente em “/etc/httpd/conf/httpd.conf
“, descomente a linha:
Include conf/extra/httpd-vhosts.conf
E edite o seguinte arquivo “/etc/httpd/conf/extra/httpd-vhosts.conf
“. Nele contem o seguinte conteúdo:
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
#
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not # match a ServerName or ServerAlias in any block.
#
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/etc/httpd/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "/var/log/httpd/dummy-host.example.com-error_log"
CustomLog "/var/log/httpd/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/etc/httpd/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
</VirtualHost>
Acrescente esse conteúdo:
<VirtualHost *:80>
DocumentRoot "/srv/http/wordpress/"
ServerAdmin root@localhost
ErrorLog "/var/log/httpd/127.0.0.1-error_log"
CustomLog "/var/log/httpd/127.0.0.1-access_log" common
<Directory /srv/http/wordpress/>
DirectoryIndex index.php index.htm index.html index.phtml
AddHandler cgi-script .cgi .pl
Options ExecCGI Indexes FollowSymLinks MultiViews +Includes
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Nota: Veja que em ‘DocumentRoot
‘ e em ‘Directory
‘ o diretório setado é o “/srv/http/wordpress/
” certo? Então, quando você for reiniciar o Apache, ele dará um certo erro, dizendo que não existe tal diretório, fique tranquilo quanto a isso, resolveremos em alguns passos mais a frente. 😉
Ah, e mais um detalhe, comente a outra parte do conteúdo deste arquivo, deixe descomentada só a que acrescentamos e ‘NameVirtualHost *:80
‘. deixando assim:
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
#
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
# NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any block.
#
<VirtualHost *:80>
DocumentRoot "/srv/http/wordpress/"
ServerAdmin root@localhost
ErrorLog "/var/log/httpd/127.0.0.1-error_log"
CustomLog "/var/log/httpd/127.0.0.1-access_log" common
<Directory /srv/http/wordpress/>
DirectoryIndex index.php index.htm index.html index.phtml
AddHandler cgi-script .cgi .pl
Options ExecCGI Indexes FollowSymLinks MultiViews +Includes
AllowOverride None Order allow,deny
allow from all
</Directory>
</VirtualHost>
#<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot "/etc/httpd/docs/dummy-host.example.com"
# ServerName dummy-host.example.com
# ServerAlias www.dummy-host.example.com
# ErrorLog "/var/log/httpd/dummy-host.example.com-error_log"
# CustomLog "/var/log/httpd/dummy-host.example.com-access_log" common
#</VirtualHost>
#<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host2.example.com
# DocumentRoot "/etc/httpd/docs/dummy-host2.example.com"
# ServerName dummy-host2.example.com
# ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
# CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
#</VirtualHost>
Pronto.
PHP
Para instalar o PHP, faça:
# pacman -S php php-apache libmcrypt
Configurando o PHP
No arquivo “/etc/httpd/conf/httpd.conf
” crie a seguinte linha depois do mudulo ‘LoadModule dir_module modules/mod_dir.so
‘:
LoadModule php5_module modules/libphp5.so
Ainda no mesmo arquivo, no final do arquivo para ser mais preciso, existe a parte dos “Includes
“, adicione o seguinte:
Include conf/extra/php5_module.conf
Verifique se na sessão a linha ‘TypesConfig conf/mime.types
‘ está descomentada. Se não estiver, descomente. E adicione as linhas:
AddHandler application/x-httpd-php .php AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
Descomente a seguinte linha (ainda no mesmo arquivo):
MIMEMagicFile conf/magic
Agora, no arquivo ‘/etc/httpd/conf/mime.types
‘ adicione a linha:
application/x-httpd-php php php5
No arquivo ‘/etc/httpd/conf/extra/php5_module.conf
‘, na linha ‘DirectoryIndex index.html
‘, adicione o seguinte item (antes de index.html:
index.php index.phtml
Agora teremos que instalar o pacotes para auxiliar o PHP. Faça:
# pacman -S libpng libjpeg
E no arquivo ‘/etc/php/php.ini
‘ descomente o seguintes modulos:
;extension=gd.so ;extension=mcrypt.so ;extension=mysql.so ;extension=mysqli.so
Para descomentar basta retirar o ‘;‘, deixando assim:
extension=gd.so extension=mcrypt.so extension=mysql.so extension=mysqli.so
E ainda no mesmo arquivo, procure pela linha “display_errors=Off
” e no lugar de ‘Off
‘ coloque “On
”
Reinicie o httpd:
# rc.d start httpd
E pronto.
MySQL
Para instalar o MySQL, faça:
# pacman -S mysql
Vá no arquivo “/etc/mysql/my.cnf
” e no bloco [mysqld]
, adicione a linha:
bind-address=127.0.0.1
Rode o MySQL com o seguinte comando:
# rc.d start mysqld
Depois:
# rc.d start httpd
E coloque o programa “mysqld
” no DEAMONS
do seu rc.conf
Depois disso, a primeira coisa que você deve fazer, é mudar a senha do dono do banco de dados. Rode o seguinte comando:
# mysqladmin -u root password seupassword
Agora, criaremos um DB com o seguinte comando:
# mysql -u root -p
Aparecerá na tela do terminal como aparece na imagem
Rode o seguinte comando
mysql> create database nome-do-db; // não esqueça de colocar o ';'
Em seguida, rode o comando:
mysql> grant all on nome-do-db.* to 'nome-de-user' identified by 'senha';
Saia do mysql:
mysql> quit (ou exit)
Pronto. MySQL configurado.
WordPress
Essa é a parte mais fácil…
Rode o comando:
#pacman -S wordpress // Isso vai baixar e instalar o wordpress direto na sua máquina.
Depois, resete o httpd
e o mysqld
:
# rc.d restart mysqld # rc.d start httpd
Agora abra seu navegador e digite http://localhost
Se correr tudo certo, aparecerá uma tela assim:
Siga os procedimentos de configuração
Em seguida
Nessa parte, tome cuidado para não colocar o nome do DB, o usuário e senha que você criou a uns passos atrás no MySQL, errados.
Envie os dados
Depois dos dados enviado aparecerá isso:
Coloque o titulo do site, senha e seu email, como diz aí.
Agora aparecerá uma tela, mais ou menos, assim:
Nesse ponto, você terá que alterar o nome do arquivo ‘wp-config.sample.php
‘ no diretório ‘/srv/http/wordpres/
‘ para ‘wp-config.php
‘… então faça:
$ cd /srv/http/wordpress/
Em seguida:
# mv wp-config.sample.php wp-config.php
Agora copie todo aquele conteúdo que mostra na tela, abra o seu editor
# geany wp-config.php // E sobrescreva todo o conteúdo existente.
Feito isso, é só clicar em instalar.
Dai aparecerá uma tela assim:
Dai é só fazer seu login e pronto.
Se vire no que quiser fazer e divirta-se!
Por hoje é só.
fui-me
PS: Desculpem-me qualquer erro ortográfico. Se houver algum erro peço que me informem, por comentário mesmo. Fiz esse tutorial em altas horas da noite (noite não, são mais de 4:00 da manhã), e meio que fiz rápido de mais.