apache / vhosts como especificar qual projeto é carregado em 127.0.0.1

1

Eu executo o MAMP no meu livro mac e tenho muitos projetos. Eu uso um único httpd-vhosts.conf para todas as minhas configurações de vhost. Em um dos meus apps, eu preciso ter um redirecionamento de API de terceiros para meu aplicativo em 127.0.0.1/[route] . Meu arquivo vhosts está mapeando o primeiro projeto para 127.0.0.1 , que não é necessariamente o projeto para o qual eu quero redirecionar.

Eu gostaria de poder acessar qualquer projeto de localhost ou 127.0.0.1 com sufixo de um nome de projeto, mas ele só é mapeado para o primeiro projeto no arquivo vhost. Então, a solução temporária é comentar todos os projetos, exceto o que eu quero usar no momento atual e reiniciar o apache; não é uma ótima solução.

Então, acho que minha pergunta é como habilitar vários projetos a usar 127.0.0.1/project_name ou similar.

    
por Jared Eitnier 06.02.2014 / 17:40

1 resposta

1

Você tem algumas opções aqui:

Opção 1) Configure uma única raiz do documento vhost com todos os seus projetos abaixo. Então você poderia configurar / Users / jared / projects / e então ter um diretório sob isso para cada um dos seus projetos (/ Users / jared / projects / project-a, / Usuários / jared / projects / project-b, etc). Então no apache você criaria um vhost assim:

<VirtualHost 127.0.0.1:80>
    ServerName localhost
    DocumentRoot /Users/jared/projects
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /Users/jared/projects/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

Quaisquer configurações específicas do projeto teriam que ser feitas via arquivos .htaccess em cada diretório do projeto. Este é o tipo de manutenção menos permanente, mas pode ter desvantagens.

Opção 2) Configure diferentes vhosts por projeto e use seu arquivo / etc / hosts para definir nomes de domínio. Para isso, você teria uma estrutura de arquivos que se parece com o exemplo acima e, em seu arquivo / etc / hosts, você adicionaria essas linhas:

127.0.0.1 project-a
127.0.0.1 project-b

Então, na sua configuração vhost você teria isso:

<VirtualHost 127.0.0.1:80>
    ServerName project-a
    DocumentRoot /Users/jared/projects/project-a
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /Users/jared/projects/project-a/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

<VirtualHost 127.0.0.1:80>
    ServerName project-b
    DocumentRoot /Users/jared/projects/project-b
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /Users/jared/projects/project-b/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

Esta configuração permitiria que você tivesse várias configurações em cada bloco vhost, bem como adicionasse logging exclusivo por vhost também. A desvantagem disso é que para cada novo projeto você precisará fazer a configuração em / etc / hosts e na configuração do vhost.

    
por 06.02.2014 / 23:11