Pregunta

Me he quedado impresionado por la screencasts para Rieles que demuestran la incorporada en el servidor web y de base de datos para permitir el desarrollo y las pruebas a producirse en el equipo local.¿Cómo puedo obtener una instancia de Apache para ejecutar un proyecto en el directorio como su DocumentRoot, y tal vez servir de seguridad de los archivos en el puerto 8080 (o algo similar)?

La razón por la que me estoy preguntando es porque voy a estar tratando de salir de CodeIgniter, y me gustaría utilizarlo para múltiples proyectos.Prefiero no desordenar mi máquina del DocumentRoot con cada uno de ellos.Sugerencias sobre cómo hacer la base de datos de migraciones también son bienvenidos.


Gracias por sus respuestas hasta el momento.Debo aclarar que estoy en Mac OS X.Parece como WAMP es sólo para Windows.También, XAMPP parece una gran manera de instalar Apache y muchas otras herramientas de la web, pero no veo la forma de cargar una instancia para servir un directorio de proyecto.Mac OS X tiene tanto de Apache y PHP instalado - sólo estoy buscando una manera de conseguir que se sirven de un proyecto en un puerto no estándar.

Acabo de encontrar MAMP Pro el que hace lo que quiero, pero un enfoque minimalista sería mejor si es posible.¿Alguien tiene una httpd.conf archivo que puede ser editado y colocado en un directorio del proyecto?

También, siento que se me acaba de lanzar en que la migración de base de datos de la pregunta.Lo que estoy esperando encontrar algo que me permita empujar los cambios de esquema en un servidor en vivo sin perder los datos existentes.Sospecho que esto es difícil, y altamente dependiente de factores ambientales.

¿Fue útil?

Solución

El Mac viene con un Servidor Web Apache y una versión de PHP.Es una de las grandes razones por las que la plataforma es muy querida por los desarrolladores web.

Ya que usted está utilizando el Código de distribuidor de Encendido, usted querrá PHP 5, que es el valor predeterminado de la versión de PHP se entregan con 10.5.Si estás en una versión anterior del sistema operativo entro en la entropía.ch e instalar el paquete PHP5.

A continuación, se te desea activar Apache.En el panel de preferencias compartir, encienda personal de compartir en la web.Esto inicia apache en su máquina local.

A continuación, usted querrá para la instalación de algunos falsos desarrollo de la Url a usar para sus sitios.Larga tradición era que tendríamos que usar el falso TLD .dev para este (ex.stackoverflow.dev).Sin embargo, .dev ahora es una real TLD por lo que probablemente no quieres hacer esto ... .localhost parece una emergentes estándar de facto.Editar el archivo /etc/hosts y añadir las siguientes líneas

127.0.0.1    www.example.localhost
127.0.0.1    example.localhost

Esto apunta a la anterior Url en su máquina local.El último paso es la configuración de apache.Específicamente, permitiendo llamado hosting virtual, permitiendo PHP y la configuración de un par de hosts virtuales.Si usted utiliza la entropía paquete PHP, habilitar PHP ya estará hecho.Si no, tendrás que editar el http.conf archivo como se describe aquí.Básicamente, usted está descomentar las líneas que cargar el módulo de PHP.

Cada vez que realice un cambio en su configuración de apache, tendrás que reiniciar apache para que los cambios surtan efecto.En una ventana de terminal, escriba el comando siguiente

sudo apachectl graceful

Este elegantemente reiniciar apache.Si has cometido un error de sintaxis en el archivo de configuración de apache no se reinicie.Puede resaltar config problemas con

sudo apachectl configtest

Así que,con PHP habilitado, usted querrá a su vez en NamedVirtualHosts.Esto permitirá que el apache responder a varias direcciones Url.Busque la siguiente (o similar) de la línea en http.conf archivo y quita el comentario.

#NameVirtualHost *  

Por último, tendrás que decirle a apache donde se debe buscar los archivos para su nueva hosts virtuales.Usted puede hacerlo mediante la adición de la siguiente http.conf archivo.NOTA:Me parece que es una buena práctica recomendada para salir de configuración de reglas como esta en un archivo independiente y el uso de la directiva include para incluir los cambios.Esto impedirá que cualquiera de las actualizaciones automáticas de la aniquilación de los cambios.

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

Usted puede especificar cualquier carpeta como el DocumentRoot, pero creo que es conveniente el uso de sus Sitios personales carpeta, como ya se ha configurado con los permisos correctos para incluir archivos.

Otros consejos

Lo siento Kyle, yo no tengo la suficiente credibilidad para responder directamente a tu comentario.Pero si usted quiere tener cada proyecto será servido en un puerto diferente, intente configurar el virtual host de configuración exactamente igual a la de Kelly anteriormente (menos el dns cosas) excepto que en lugar de 80, dar a cada virtualhost su propio número de puerto, suponiendo que usted ha agregado a este puerto a sus puertos.conf archivo.

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 ayude :/

Yo también descargar los últimos archivos binarios para cada uno y ponerlos manualmente.He encontrado que es un proceso indoloro, siempre y cuando usted sabe un poco acerca de la configuración de Apache.

En mi máquina de desarrollo, he de configuración de apache con hosting virtual basado en nombres.También tengo un dyndns.org cuenta que los mapas de mi campo de desarrollo para mi máquina local. DynDNS proporciona un dominio comodín, y por lo tanto el uso de hosts virtuales basados en nombre puedo crear fácilmente como muchos sitios (con documento separado raíces) tantas desarrollo dominios como yo quiero, todos corriendo fuera de la instancia de Apache.

por ejemplo,Configuración de Apache para que los hosts virtuales podría 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 ha sido la forma más rápida y fácil para mí para mantener fácilmente muchos sitios de desarrollo en mi máquina local.

Espero que tenga sentido.

Saludos, Kelly.


Yo no uso Macos, pero hago uso de Apache.En mi archivo de configuración de apache (en linux usualmente en /etc/apache2/apache2.conf), busca una referencia a un archivo llamado puertos.conf.Encontrar este archivo y añadir la línea

Listen 8080

A continuación, reinicie el proceso de apache.Después de que usted debería estar en el negocio.Pido disculpas de antemano si este no funciona en mac :)

Usted podría utilizar una baja hasta el frente del paquete de instalación, tales como XAMPP y ejecutarlo como una instancia independiente.Hay muchos otros proyectos similares como bien.

PHP tiene varios envases de alta calidad para la implementación de Apache+Mysql+PHP, tales como WAMP y XAMPP.Personalmente, me descargue la última binarios de cada uno e instalar manualmente para tener más fino de control.Hay un montón de tutoriales en internet sobre cómo manejar eso.

Base de datos de las migraciones debe ser sencillo de volcado de la base de datos en el servidor, ya sea en la línea de comandos o a través de una interfaz, tales como PHPMyAdmin, y exportar de nuevo en formas similares (PHPMyAdmin es recomendado si usted no tiene experiencia con el Mysql por línea de comandos).

Usted puede utilizar MAMP pro, pero la versión gratuita es una muy buena opción también.Consíguelo aquí: http://www.mamp.info/en/mamp.html

Me podría recomendar el uso de una separada de la LÁMPARA virtual appliance para cada entorno de desarrollo que se desea experimentar.Ejecutar en el Servidor VMware o VirtualBox.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top