Pergunta

Eu estive impressionado com os screencasts para Rails que demonstram o built-in servidor web e banco de dados para permitir o desenvolvimento e teste de ocorrer na máquina local. Como posso obter uma instância do Apache para executar um diretório do projeto como seu DocumentRoot, e talvez servir os arquivos na porta 8080 (ou algo similar)?

A razão pela qual eu estou pedindo é porque eu vou estar tentando CodeIgniter, e eu gostaria de usá-lo para vários projetos. Eu preferiria não fiquem amontoados DocumentRoot da minha máquina com cada um. Sugestões sobre como fazer migrações de banco de dados também são bem vindos.


Obrigado por suas respostas até agora. Devo esclarecer que eu estou no Mac OS X. Parece que WAMP é somente para Windows. Além disso, XAMPP parece uma ótima maneira de instalar o Apache e muitas outras ferramentas da web, mas não vejo uma maneira de carregar até uma instância para servir um diretório do projeto. Mac OS X tem tanto Apache e PHP instalado -. Eu estou apenas procurando uma maneira de obtê-lo para servir-se de um projeto em uma porta não-padrão

Eu só descobri MAMP Pro que faz o que eu quero, mas um mais minimalista abordagem seria melhor se isso é possível. Alguém tem um arquivo httpd.conf que pode ser editado e caiu em um diretório de projeto?

Além disso, pena que eu só joguei nessa questão da migração do banco de dados. O que eu estou esperando para encontrar é algo que vai permitir-me a empurrar as alterações de esquema em um servidor ao vivo sem perder os dados existentes. Eu suspeito que isso é difícil, e altamente dependente de fatores ambientais.

Foi útil?

Solução

Seu Mac vem com um Apache Web Server e uma compilação do PHP. É uma das grandes razões a plataforma é bem amado por desenvolvedores web.

Uma vez que você estiver usando o Code Igniter, você vai querer PHP 5, que é a versão padrão do PHP fornecido com 10,5. Se você estiver em uma versão anterior do hop OS sobre sobre a entropy.ch e instalar o pacote PHP5 fornecido.

Em seguida, você vai querer transformar o Apache no. No painel de preferências de compartilhamento, ativar o compartilhamento de web pessoal. Isto irá iniciar o Apache em sua máquina local.

Em seguida, você vai querer configurar alguns URLs de desenvolvimento falsa para usar em seus sites. De longa data tradição foi que usaria o .dev falso TLD para isso (ex. Stackoverflow.dev). No entanto, .dev é agora um TLD real para que você provavelmente não quer fazer isso - .localhost parece ser um padrão de fato emergente. Editar seu arquivo / etc / hosts e adicione as seguintes linhas

127.0.0.1    www.example.localhost
127.0.0.1    example.localhost

Isso aponta as URLs acima em sua máquina local. O último passo é configurar o Apache. Especificamente, permitindo chamado de hospedagem virtual, permitindo PHP e criação de alguns hosts virtuais. Se você usou o pacote PHP entropia, permitindo PHP já estará feito. Se não, você precisa editar o arquivo http.conf como descrito aqui . Basicamente, você está descomentando as linhas que irá carregar o módulo PHP.

Sempre que você fizer uma alteração em sua configuração do Apache, você precisa reiniciar o apache para que as alterações tenham efeito. Em uma janela de terminal, digite o seguinte comando

sudo apachectl graceful

Isto irá graciosamente reiniciar o apache. Se você cometeu um erro de sintaxe no apache arquivo de configuração não será reiniciado. Você pode destacar problemas de configuração com

sudo apachectl configtest

Assim, com PHP ativado, você vai querer ligar NamedVirtualHosts. Isso permitirá que apache responder a várias URLs. Procure o seguinte (ou similar) linha no seu arquivo http.conf e descomente-lo.

#NameVirtualHost *  

Finalmente, você precisa dizer apache onde ele deve procurar os arquivos para seus novos hosts virtuais. Você pode fazê-lo adicionando o seguinte ao seu arquivo http.conf. NOTA: Eu acho que é uma boa prática recomendada para quebrar as regras de configuração como esta em um arquivo separado e usar a diretiva include para incluir as alterações. Isto irá parar as atualizações automáticas de aniquilar as alterações.

<VirtualHost *>
    DocumentRoot /Users/username/Sites/example.localhost
    ServerName example.localhost
    ServerAlias www.example.localhost
</VirtualHost>

Você pode especificar qualquer pasta como o DocumentRoot, mas acho que é conveniente usar sua pasta Sites pessoais, como já foi configurado com as permissões corretas para incluir arquivos.

Outras dicas

Desculpe Kyle, eu não tenho o suficiente Cred para responder diretamente para o seu comentário. Mas se você quer ter cada projeto ser servido em uma porta diferente, tente configurar sua configuração do host virtual exatamente como Kelly acima (menos o material dns), exceto em vez de 80, dar a cada virtualhost seu próprio número de porta, assumindo que você tem acrescentou esta porta para seu arquivo ports.conf.

NameVirtualHost *

<virtualhost *:80>
DocumentRoot /site1/documentroot
</virtualhost>

<virtualhost *:81>
DocumentRoot /site2/documentroot
</virtualhost>

<virtualhost *:82>
DocumentRoot /site3/documentroot
</virtualhost>

<virtualhost *:83>
DocumentRoot /site4/documentroot
</virtualhost>

Espero que ajude: /

Eu também baixar os últimos binários para cada e configurá-los manualmente. Eu achei que fosse um processo indolor, desde que você sabe um pouco sobre a configuração do Apache.

Na minha máquina de desenvolvimento, tenho apache configuração com -nome baseado hospedagem virtual. Eu também tenho um href="http://www.dyndns.com/" rel="nofollow noreferrer"> conta que mapeia o meu domínio de desenvolvimento para minha máquina local. DynDNS fornece um domínio curinga e, portanto, usando o nome hosts virtuais baseados eu posso facilmente criar tantos locais (com separado raízes do documento) para o maior número de domínios de desenvolvimento como eu quero, todos correndo para fora da uma instância Apache.

por exemplo. Apache configuração para os hosts virtuais pode ser algo como

NameVirtualHost *:80

<virtualhost *:80>
ServerName site1.mydyndns.dyndns.org
DocumentRoot /site1/documentroot
</virtualhost>

<virtualhost *:80>
ServerName site2.mydyndns.dyndns.org
DocumentRoot /site2/documentroot
</virtualhost>

Esta tem sido a forma mais rápida e fácil para mim manter facilmente muitos sites de desenvolvimento na minha máquina local.

Espero que sentido marcas.

Cheers, Kelly.


Não uso MacOS, mas eu usar o Apache. No meu arquivo de configuração do Apache (em linux sua geralmente em /etc/apache2/apache2.conf), olhar para uma referência a um arquivo chamado ports.conf. Encontrar esse arquivo e adicione a linha

Ouça 8080

Em seguida, reinicie o processo de apache. Depois que você deve estar no negócio. Peço desculpas antecipadamente se isso não funcionar em um Mac:)

Você pode usar um baixo para cima pacote de configuração frente, como XAMPP e executá-lo como uma instância separada. Há muitos outros projetos semelhantes também.

Para PHP você tem vários pacotes de alta qualidade para a implantação do Apache + MySQL + PHP, como WAMP e XAMPP . Pessoalmente, eu baixar os últimos binários de cada um e instalar manualmente a ter mais grão fino controle. Há uma abundância de tutoriais on-line sobre como lidar com isso.

migrações de banco de dados deve ser simples - despejar o banco de dados no servidor, tanto na linha de comando ou através de uma interface como PHPMyAdmin , e exportá-lo para trás de forma semelhante (PHPMyAdmin é recomendado se você não tem experiência com a linha de comando do MySQL).

Você pode usar MAMP Pro, mas a versão gratuita é uma escolha muito boa também. Obtê-lo aqui: http://www.mamp.info/en/mamp.html

Eu poderia recomendar usando um dispositivo virtual LAMP separado para cada ambiente de desenvolvimento que você deseja experimentar. Executá-los em VMware Server ou VirtualBox.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top