quarta-feira, 30 de janeiro de 2013

Ativando o UserDir do apache no Fedora 17

Olá meus caros, Um bem rápido pra vocês que vão mexer com PHP e querem um setup mais elegante que links simbólicos. Não vai ser útil pra todos, mas é rápido, prático e preserva quase toda a tralha de desenvolvimento toda no home do usuário.

Abaixo o ambiente que usaremos:

  • Fedora Linux 4 bits KDE spin

Haha, só isso mesmo dessa vez, o resto o yum fornece. Veja como é fácil, abra um terminal e:

[sombriks@f17x64kde ~]$ sudo yum install httpd php

O resultado deve ser uma tela mais ou menos assim:

Confirme o download e prossigamos no mesmo console, por praticidade. Assim que o download terminar, entre com o seguinte comando:

[sombriks@f17x64kde ~]$ sudo vi /etc/httpd/conf/httpd.conf

Isto vai abrir o glorioso editor de texto vi no arquivo de configuração relevante aqui.

Uma vez aberto o editor, ele estará no modo comando. Tiremos vantagem disso, aperte a barra ("/") e entre com o seguinte texto (que irá aparecer sendo digitado no rodape):

mod_useridr.c

Um simples enter e a busca será feita. A tela deverá se assemelhar a esta:

Uma vez posicionado, pressione o insert para que possamos editar o trecho e deixa-lo assim:

<IfModule mod_userdir.c>
    #
    # UserDir is disabled by default since it can confirm the presence
    # of a username on the system (depending on home directory
    # permissions).
    #
    # UserDir disabled

    #
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disabled" line above, and uncomment
    # the following line instead:
    #
    UserDir public_html

</IfModule>

Ative também a configuração de permissões, que fica logo abaixo dessa:

Agora corrija as permissões:


[sombriks@f17x64kde ~]$ chmod 755 ~
[sombriks@f17x64kde ~]$ mkdir public_html
[sombriks@f17x64kde ~]$ chmod 711 public_html

Caso você esteja com o SELinux ativado, a internet diz que este comando resolve:

[sombriks@f17x64kde ~]$ sudo setsebool -P httpd_enable_homedirs 1
[sudo] password for sombriks:
[sombriks@f17x64kde ~]$

Entretanto, pare de sofrer e desligue isso de SELinux, pelo menos na sua máquina de desenvolvimento:

[sombriks@f17x64kde ~]$ sudo su -c "echo 'SELINUX=disabled' > /etc/selinux/config"
[sombriks@f17x64kde ~]$ sudo su -c "echo 'SELINUXTYPE=targeted' >> /etc/selinux/config"
[sombriks@f17x64kde ~]$ sudo service selinux stop
Redirecting to /bin/systemctl stop selinux.service
[sombriks@f17x64kde ~]$

Fácil né? Faça o seguinte pra testar:

[sombriks@f17x64kde ~]$ echo "<?php phpinfo(); ?>" > ~/public_html/index.php
[sombriks@f17x64kde ~]$ sudo service httpd start

Veja no navegador o resultado, e note o detalhe de como fica a url:

E é isso, só isso por hora. Agora você pode deixar seu usuário rodando seus scripts em php sem nenhuma culpa.

Claro, o link simbólico pro /var/www/html e truques de permissões sempre funcionarão também, mas eu gosto desta abordagem de usuários em suas devidas pastas.

Até a próxima.

Nenhum comentário :

Postar um comentário