GNU/Linux >> Linux Esercitazione >  >> Linux

Quanto di Linux dovrei imparare per implementare siti Web utilizzando LAMP?

In cima alla mia testa dovrai:

  1. Impara a orientarti nel file system.
  2. Scopri come avviare/arrestare i processi (servizi) che stai utilizzando.
  3. Trova o impara un editor di testo di base (Vim, JOE o Pico)
  4. Impara a controllare i processi per vedere se le cose sono in esecuzione (ps, in alto)
  5. Se stai gestendo il server, dovrai imparare come installare i pacchetti.

Queste sono solo le basi. Il passo successivo è rendersi conto di quando hai un problema e sapere dove puoi andare per trovare maggiori informazioni al riguardo. Anche con tutto questo, si sta solo grattando la superficie e molte cose potrebbero non avere senso. È comunque un buon inizio.


L'80% dei tuoi problemi saranno i permessi. Windows li fa in modo diverso; se accedi come root (o con privilegi simili a root) puoi bypassare i permessi. Apache non può e non lo farà.

  • Scopri come impostare correttamente la proprietà di file e directory. Qualsiasi libro su Unix lo tratterà:assicurati di capirlo davvero -- non è sicurezza di Windows scritta in modo diverso -- è un modello diverso per la sicurezza.

Dei restanti problemi, l'80% saranno problemi PATH. PHP non ha un problema PATH così grande come Java e Python, ma usano tutti un'impostazione PATH per trovare componenti e librerie. Sbaglierai quelli regolarmente. Windows ha un PERCORSO, ma ha anche un registro, che rende le cose super facili o super segrete. Unix non ha segreti.

  • Scopri quali variabili d'ambiente usano PHP e MySQL. Assicurati di sapere dove e come vengono impostati. Apache viene eseguito nel suo ambiente peculiare e dispone di comandi per fornire le impostazioni dell'ambiente di runtime tramite mod_php . Scrivi il breve echo $PATH script di shell per rivelare cosa sta succedendo.

Dei restanti problemi, l'80% riguarderà il database. Dopo aver risolto le autorizzazioni del database, dovrai comunque connetterti e le cose "named pipe" rispetto a "localhost" saranno sbagliate in modi oscuri e confusi. MySQL è molto indulgente, ma qui commetterai degli errori.

  • Prova ogni connessione alternativa, scopri come funzionano. Non sceglierne uno perché è simile a Windows o "più semplice". In realtà esercita ciascuno. Anche il modo in cui passi nomi utente e password dall'app Web al server di database è importante. Apache viene eseguito come "nessuno" e non vuoi concedere loro l'accesso predefinito a nulla. La tua app dovrebbe stabilire una connessione intenzionale al database senza utilizzare le impostazioni predefinite.

Dei restanti problemi, l'80% saranno configurazioni di Apache. Apache è davvero semplice, ma ha un milione di opzioni. Ci sono quattro modi per fare tutto, e ne proverai sempre due che non funzionano affatto, e ti accontenterai del terzo che sarà schifoso. Il quarto, che è molto più semplice, non ti verrà mai in mente.

  • Leggi MOLTO sulla configurazione di Apache. Il sito httpd.apache.org contiene molte informazioni. Impegnati per la semplicità. Copia gli esempi esistenti e usali. Non creare requisiti o implementazioni desiderate in base all'esperienza IIS o all'esperienza desktop Windows. Copia qualcosa che funzioni.

Dei restanti problemi, l'80% riguarderà l'utilizzo da parte dell'applicazione del file system. Se provi ad aprire, leggere o scrivere file locali, scoprirai che (a) i permessi non sono corretti sulla directory che stai cercando di usare [vedi sopra] e (b) i percorsi dei file Unix sono diversi. Non molto diverso, ma abbastanza diverso che qualcosa si romperà in modo oscuro.

  • Ogni libro di programmazione in Unix/Linux tratta questo argomento. Non è molto diverso da Windows, abbastanza diverso da farti inciampare la prima volta. Scrivi pagine PHP simili a "ciao mondo" per aumentare la versione più semplice possibile di caricamenti o download solo per essere sicuro di avere tutti i pezzi e le parti a posto. Quindi correggi la tua app completa per farlo correttamente.

Dei restanti problemi, l'80% riguarderà la creazione di sottoprocessi. Windows lo fa in modo diverso. Una delle cose più importanti in Unix è ricordare che il tuo sottoprocesso è tuo figlio e devi effettivamente attendere che finisca in modo che il sistema operativo possa ripulire. Se pensi a un sottoprocesso come a una cosa parallela "spara e dimentica", avrai processi zombi e sarai costretto a eseguire riavvii periodici.

  • Scrivi pagine PHP molto semplici per aumentare la gestione dei sottoprocessi. La regola d'oro è gestire i tuoi figli e ripulire dopo di loro. Quindi correggi la tua app completa per farlo correttamente.

I problemi rimanenti saranno la banale logica dell'applicazione, ma a causa delle differenze di piattaforma, darai la colpa a Unix prima di rintracciare il bug nell'applicazione PHP.

  • Ottieni i tuoi unit test e la tua registrazione in modo da poter eseguire il debug in modo efficace.

Linux
  1. Come eseguire il debug di programmi C in Linux usando gdb

  2. Come creare un utente Linux usando Ansible

  3. Come riavviare Linux utilizzando la riga di comando

  4. Come uccidere un processo su Linux usando il comando?

  5. Come imparare gli interni del sistema Linux

Quanto swap dovresti usare in Linux?

Come rinominare i file usando la riga di comando in Linux

Come scaricare e installare XAMPP su Linux

Come elencare i filesystem in Linux usando Lfs

Come installare il browser Web Falkon su Ubuntu Linux

Come installare o aggiornare LAMP:stack Linux, Apache, MySQL e PHP utilizzando Yum