Domanda

Sono stato colpito dai screencast per Rails che dimostrano il web server e il database integrati per consentire lo sviluppo e il test sul computer locale. Come posso ottenere un'istanza di Apache per eseguire una directory di progetto come DocumentRoot e forse servire i file sulla porta 8080 (o qualcosa di simile)?

Il motivo per cui lo sto chiedendo è perché proverò CodeIgniter e vorrei usarlo per più progetti. Preferirei non ingombrare DocumentRoot della mia macchina con ognuno. Sono anche benvenuti suggerimenti su come eseguire le migrazioni del database.


Grazie per le tue risposte finora. Dovrei chiarire che sono su Mac OS X. Sembra che WAMP sia solo per Windows. Inoltre, XAMPP sembra un ottimo modo per installare Apache e molti altri strumenti web, ma non vedo un modo per caricare un'istanza per servire una directory di progetto. In Mac OS X sono installati sia Apache che PHP: sto solo cercando un modo per farlo funzionare su un progetto su una porta non standard.

Ho appena trovato MAMP Pro che fa quello che voglio, ma un più minimalista l'approccio sarebbe migliore se possibile. Qualcuno ha un file httpd.conf che può essere modificato e rilasciato in una directory di progetto?

Inoltre, mi dispiace di aver appena lanciato la domanda sulla migrazione del database. Ciò che spero di trovare è qualcosa che mi consentirà di trasferire le modifiche dello schema su un server live senza perdere i dati esistenti. Sospetto che ciò sia difficile e fortemente dipendente da fattori ambientali.

È stato utile?

Soluzione

Il tuo Mac viene fornito con un Apache Web Server e una build di PHP. È uno dei grandi motivi per cui la piattaforma è molto amata dagli sviluppatori web.

Dato che stai usando Code Igniter, vorrai PHP 5, che è la versione predefinita di PHP fornita con 10.5. Se utilizzi una versione precedente del sistema operativo, vai su entropy.ch e installa il fornito pacchetto PHP5.

Successivamente, dovrai attivare Apache. Nel pannello delle preferenze di condivisione, attiva la condivisione web personale. Questo avvierà apache sul tuo computer locale.

Successivamente, ti consigliamo di impostare alcuni URL di sviluppo falsi da utilizzare per i tuoi siti. La tradizione di lunga data era che avremmo usato il falso TLD .dev per questo (es. Stackoverflow.dev). Tuttavia, .dev è ora un vero TLD, quindi probabilmente non vorrai farlo - .localhost sembra uno standard defacto emergente. Modifica il tuo file / etc / hosts e aggiungi le seguenti righe

127.0.0.1    www.example.localhost
127.0.0.1    example.localhost

Questo punta gli URL sopra sul tuo computer locale. L'ultimo passaggio è la configurazione di Apache. In particolare, abilitare l'hosting virtuale denominato, abilitare PHP e configurare alcuni host virtuali. Se hai utilizzato il pacchetto entropy PHP, l'abilitazione di PHP sarà già eseguita. In caso contrario, dovrai modificare il tuo file http.conf come descritto qui . Fondamentalmente, stai scommentando le righe che caricheranno il modulo PHP.

Ogni volta che apporti una modifica alla configurazione di apache, dovrai riavviare apache per rendere effettive le modifiche. Alla finestra di un terminale, digitare il seguente comando

sudo apachectl graceful

Questo riavvierà con grazia apache. Se hai fatto un errore di sintassi nel file di configurazione, apache non si riavvierà. Puoi evidenziare i problemi di configurazione con

sudo apachectl configtest

Quindi, con PHP abilitato, ti consigliamo di attivare NamedVirtualHosts. Ciò consentirà ad Apache di rispondere a più URL. Cerca la seguente (o simile) riga nel tuo file http.conf e decommentalo.

#NameVirtualHost *  

Infine, dovrai dire ad Apache dove dovrebbe cercare i file per i tuoi nuovi host virtuali. Puoi farlo aggiungendo quanto segue al tuo file http.conf. NOTA: trovo che sia una buona pratica suddividere le regole di configurazione come questa in un file separato e usare la direttiva include per includere le modifiche. Ciò impedirà a tutti gli aggiornamenti automatici di cancellare le modifiche.

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

Puoi specificare qualsiasi cartella come DocumentRoot, ma trovo conveniente usare la tua cartella Sites personale, poiché è già stata configurata con le autorizzazioni corrette per includere i file.

Altri suggerimenti

Scusa Kyle, non ho abbastanza credito per rispondere direttamente al tuo commento. Ma se vuoi che ogni progetto sia servito su una porta diversa, prova a configurare la configurazione dell'host virtuale esattamente come sopra di Kelly (meno le cose DNS) tranne che invece di 80, dai a ogni host virtuale il suo numero di porta, supponendo che tu abbia aggiunta questa porta al tuo file 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>

Spero che aiuti: /

Scarico anche i file binari più recenti per ciascuno e li configuro manualmente. L'ho trovato un processo indolore, purché tu sappia un po 'di configurazione di Apache.

Sulla mia macchina di sviluppo, ho una configurazione di apache con basato sul nome hosting virtuale . Ho anche un account dyndns.org che mappa il mio dominio di sviluppo sul mio computer locale. DynDNS fornisce un dominio jolly, e quindi utilizzando host virtuali basati sul nome posso facilmente creare tanti siti (con document root) per tutti i domini di sviluppo che desidero, tutti scappando dall'unica istanza di Apache.

es. La configurazione di Apache per gli host virtuali potrebbe essere qualcosa di simile

NameVirtualHost *:80

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

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

Questo è stato il modo più rapido e semplice per mantenere facilmente molti siti di sviluppo sul mio computer locale.

Spero che abbia un senso.

Saluti, Kelly.


Non uso Macos, ma utilizzo Apache. Nel mio file di configurazione di Apache (su Linux di solito è in /etc/apache2/apache2.conf), cercare un riferimento a un file chiamato ports.conf. Trova questo file e aggiungi la riga

Ascolta 8080

Quindi riavviare il processo apache. Dopodiché dovresti essere in affari. Mi scuso in anticipo se questo non funziona su un Mac :)

È possibile utilizzare un pacchetto di installazione anteriore basso come XAMPP ed eseguirlo come istanza separata. Ci sono anche molti altri progetti simili.

Per PHP hai diversi pacchetti di alta qualità per distribuire Apache + Mysql + PHP, come WAMP e XAMPP . Personalmente, scarico gli ultimi binari di ciascuno e installo manualmente per avere un controllo più preciso. Ci sono molti tutorial online su come gestirlo.

Le migrazioni del database dovrebbero essere semplici: scaricare il database sul server, dalla riga di comando o attraverso un'interfaccia come PHPMyAdmin ed esportalo di nuovo in modo simile (si consiglia PHPMyAdmin se non si ha esperienza con la riga di comando di Mysql).

Puoi usare MAMP pro ma anche la versione gratuita è un'ottima scelta. Scarica qui: http://www.mamp.info/en/mamp.html

Potrei raccomandare di usare un'appliance virtuale LAMP separata per ogni ambiente di sviluppo che si desidera sperimentare. Eseguili su VMware Server o VirtualBox.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top