Instalando LAMP + WordPress no Arch Linux

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.