Domanda

Dopo essere diventato un po 'estraneo all'open source e aver trascorso alcuni anni a sviluppare applicazioni web in ASP.Net, inizierò a fare un sacco di sviluppo PHP / MySQL.

Ho installato abbastanza indolore WampServer per far funzionare un ambiente di sviluppo sul mio computer Windows, ma la piattaforma che prenderò di mira sarà molto probabilmente Linux. Quindi la mia domanda è: potrei incorrere in problemi dovuti allo sviluppo su Windows mentre ho come target Linux? È consigliabile investire per ottenere una configurazione dell'ambiente Linux in cui sviluppare le mie app LAMP?

È stato utile?

Soluzione

Se potessi, investirei in una sorta di ambiente di sviluppo Linux, o almeno * nix. Per applicazioni e siti Web semplici, la tua configurazione è corretta, ma alla fine ti imbatterai in sottili differenze durante la distribuzione.

Ecco alcune cose fuori dalla testa che dovresti fare attenzione se rimani con il tuo ambiente Windows.

  1. Percorsi dei file. Molte funzioni di PHP accettano percorsi di file come argomenti. NON utilizzare il separatore barra rovesciata () di Windows. Anche se sei su Windows, PHP ti permetterà di usare un separatore di barra. Idealmente, rimuovilo con la tua classe di percorso del file.

  2. Moduli Apache, estensioni PECL. Apache Windows e Apache Unix vengono spesso con un set diverso di moduli Apace installati per impostazione predefinita. Inoltre, la stessa versione di un modulo può funzionare in modo diverso su una piattaforma diversa. Se la tua applicazione si basa su qualsiasi modulo apache, assicurati che sia disponibile per entrambe le piattaforme. Lo stesso vale per le estensioni personalizzate PHP (PECL)

  3. Forking di processo. Usare exec, `, ecc. In un'app Web è una cattiva idea per cominciare, ma se stai usando queste funzioni si comporteranno in modo diverso tra windows e * nix

  4. La scrittura, il blocco dei file e così via funzionano in modo diverso

  5. La posta elettronica viene gestita in modo diverso su entrambe le piattaforme

  6. La parola in codice del gruppo PHP per Windows è " alcune piattaforme " ;. Puoi effettuare ulteriori ricerche da solo se desideri

In generale, più l'ambiente di sviluppo si avvicina al proprio ambiente di produzione, minori saranno i problemi relativi all'ambiente / alla distribuzione.

Spero che ti aiuti!

Altri suggerimenti

L'ho fatto negli ultimi due anni e non ho ancora riscontrato alcun problema, semmai ti dà un vantaggio costringendoti a scrivere più codice portatile.

Le autorizzazioni e il fatto che su Windows i nomi dei file non fanno distinzione tra maiuscole e minuscole sono le due cose a cui riesco a pensare che sono state una seccatura per me. Ma lo sono

  1. Risolvibile, nella peggiore delle ipotesi con un client ftp per modificare le autorizzazioni.
  2. Modi buoni e facili per renderti un programmatore migliore (in piccolo, sì).

No, lo sviluppo su wamp e il funzionamento su lampada dovrebbero andare bene, ma almeno fase sulla lampada. Ho fatto entrambe le cose senza molti problemi (ok, ci sono stati un sacco di problemi con l'implementazione di siti aziendali su WAMP (non tentare di usare il filtro ISAPI PHP) ma ora sono risolvibili (fastcgi)). Finché non si aggiungono moduli PECL che dichiarano che non sono supportati su Windows, non si dovrebbero avere problemi. Inoltre (poiché stai affermando che stai usando WAMP, suppongo che tu stia usando MySql), mssql e PHP hanno un sacco di problemi (l'antico driver che richiede limita seriamente la lunghezza della tua query).

In teoria, PHP e MySQL dovrebbero essere completamente indipendenti dalla piattaforma.

In pratica, se hai intenzione di avere una vera applicazione di produzione, ti suggerisco di avere un ambiente di test che rispecchi quello di produzione, per evitare sorprese.

Sì, consiglierei di sviluppare un ambiente il più vicino possibile al tuo ambiente di produzione. Ci sono differenze tra il modo in cui PHP funziona su Windows rispetto a Linux. E altre differenze come il modo in cui Linux gestisce le autorizzazioni dei file rispetto a Windows. Corro il server VMWare gratuito con una macchina virtuale Linux. Ho una condivisione Samba sulla VM Linux che monto come unità di rete in Windows. Quindi uso Eclipse su Windows come editor di codice.

No, perché praticamente l'unica cosa che non puoi fare su WAMP se scegli come target LAMP sta usando Sistema () / Exec Chiamate e di solito è una buona cosa perché dovrebbero essere usate molto scarsamente.

Vale la pena avere un sandbox LAMP in modo da poter sapere dove trovare - e come modificare - i file di configurazione, familiarizzare con il riavvio dei servizi, la gestione dei lavori pianificati, ecc. produzione.

No.
VirtualBox + Le cartelle condivise dovrebbero essere utili se hai circa 6-8 ore libere in un fine settimana per chiarire tutte le nozioni di base su VBox e risolvere le impostazioni. Se passi a Linux, il processo potrebbe richiedere fino a un mese e in quel momento sarai altamente poco produttivo, in termini di codice di produzione.
È una buona idea continuare a praticare Linux su VBox per Windows, in anticipo prima di passare, usando uno dei [PCLinuxOS, CentOS, OpenSuse, Ubuntu]. Preferisco CentOS, PCLinuxOS. C'è una gemma chiamata SLAMPP e un'altra bellezza chiamata XAMPP & Lt; - funziona su Linux e Windows.
IMO, come una stima approssimativa, se si prevede di codificare 2000-3000 righe di codice (che si scrive / aggiungi) per progetto, per 6mo-1yr, attenersi a Windows e master Linux nel frattempo usando VBox.
Se sopra, o se hai intenzione di creare un nuovo sito web LAMP, penso che dovresti prima passare a Linux. Prenditi un mese in più per abituarti a Linux. Puoi ancora spostarti con doppio avvio o VBox per tutto il tempo che desideri, iniziando il prima possibile - imparare Linux abbastanza per eseguire il debug di un'app LAMP richiede tempo.

Percorsi, attenzione ai percorsi. Puoi creare un intero cms e si incasinerebbe a causa dei percorsi.

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