Come impostare un server Web dedicato gratuitamente

Tutti i grandi siti Web hanno un ottimo server dietro di loro. In questo tutorial, ti mostrerò come configurare un server web dedicato (con Apache, MySQL e PHP) usando quel vecchio computer che hai in giro per casa e un po 'di software libero.


1. Una panoramica rapida

In questo tutorial, miriamo a realizzare diverse cose:

  • Installeremo il sistema operativo Ubuntu Server. Io di solito uso Ubuntu per la sua facilità d'uso e
    amministrazione semplice. Ha anche una comunità piuttosto grande ed estremamente attiva dietro di esso, che rende ottenere
    sostenere un gioco da ragazzi.
  • Installeremo un server OpenSSH. Ciò consente di amministrare il server da computer remoti.
  • Verrà installato uno stack LAMP (Linux, Apache, MySQL e PHP). Questo fornisce il backbone che verrà eseguito
    il tuo sito web. Apache è il server Web standard del settore su sistemi operativi basati su Unix; è ciò che la maggior parte degli host web
    usa (NETTUTS lo sta usando proprio ora!) ed è quello che useremo.
  • Installeremo un firewall per proteggere il tuo server da accessi non autorizzati.

Per seguire questo tutorial, avrai bisogno di alcuni elementi:

  • Un computer da utilizzare come server. Non ha bisogno di essere potente; finché non è antico, funzionerà bene. per favore
    non farlo sul tuo PC desktop; Ubuntu cancellerà completamente il tuo computer.
  • Un masterizzatore CD e un CD vuoto. Questi sono così che puoi masterizzare Ubuntu su un disco per installarlo.
  • Tempo. Seriamente, questo processo richiede molto tempo, soprattutto se si incontrano problemi. Prova a mettere da parte un pomeriggio
    per seguire questo tutorial.

Potresti chiederti perché vorresti avere il tuo server web. Ci sono diversi motivi, alcuni dei quali sono: puoi avere i tuoi test
terreno per i tuoi siti web; con una piccola modifica, potresti ospitare il tuo sito; e imparerai molto su Linux / Unix man mano che vai.
Detto ciò, iniziamo!


2. Scarica Ubuntu Server

Prima di tutto, avremo bisogno di un CD con Ubuntu. Indirizza il tuo browser web su http://www.ubuntu.com/,
e fai clic su download dal menu a sinistra. Verrà ora presentato un box con due schede: "Desktop Edition" e
"Server Edition". Fare clic sulla scheda "Server Edition" e selezionare "Ubuntu 8.04 LTS". Quindi, selezionare una posizione di download dal
casella a discesa. Infine, premi il pulsante "Inizia download".

Ora è necessario masterizzare l'ISO (il file scaricato) su un CD vuoto. Se non sai come fare, c'è un
guida eccellente su https://help.ubuntu.com/community/BurningIsoHowto


3. Installa il server Ubuntu

Ora che hai scaricato e masterizzato l'ISO, installiamo Ubuntu sul tuo server. Inserire il disco nell'unità e avviare dal CD. Nella maggior parte dei computer moderni, questo avverrà per impostazione predefinita se un disco si trova nell'unità quando viene acceso. In caso contrario, è necessario premere un tasto sulla tastiera quando lo si accende. Per il mio portatile, è F12 e per il mio server è F2. Dipende solo dal tuo computer. Puoi trovarlo guardando il testo sullo schermo quando accendi il computer durante il BIOS. Vedrai qualcosa come "Premi [KEY] per cambiare l'ordine di avvio". Premere quel tasto e selezionare l'unità CD.

Ancora con me? Buono. Ora che hai avviato Ubuntu, dovresti vedere la seguente schermata:

Seleziona la tua lingua e premi invio. Ora vedrai questa schermata:

Seleziona "Installa server Ubuntu" e via!

L'installer ora ti chiederà se vuoi che rilevi il layout della tua tastiera. Personalmente, scelgo sempre no, perché
è più veloce selezionare una tastiera americana standard dalla lista piuttosto che farla rilevare all'installatore. Qualsiasi opzione va bene,
basta seguire le istruzioni sullo schermo.

Dopo averlo fatto, ora vedrai un mucchio di schermate di caricamento che dicono cose come "Rilevamento di unità CD-ROM" e simili.
Questi dovrebbero passare velocemente e senza problemi. Tuttavia, durante queste schermate, il programma di installazione proverà a configurare automaticamente il tuo
impostazioni di rete. Per la maggior parte dei casi, questo funzionerà senza lamentarsi. Tuttavia, se non funziona per te, basta seguire il
istruzioni sullo schermo per farlo funzionare.

Dopo averlo fatto, ti chiederà un nome host. Di solito è possibile impostare questo a qualsiasi cosa; Ho sempre impostato
mia su "web-server".

Il sistema ora vorrai impostare il fuso orario per il tuo orologio. Per me, è Pacifico. Scegli quello che si applica a
tu.

Ora il sistema rileverà più hardware e ti verrà richiesto di "partion i dischi". Seleziona "Guidato - usa intero
disco".

Ora dovrai selezionare il disco che desideri partizionare. Per la maggior parte delle configurazioni, sarà disponibile solo un disco; però,
per i sistemi più specializzati, più opzioni saranno disponibili qui. Scegli quello che si applica a te.

Ti verrà chiesto se vuoi scrivere le modifiche sul disco. Seleziona "Sì" e premi invio. L'installer procederà ora
per formattare l'unità e configurare le partizioni.

Ora la magia accade. Il sistema inizierà l'installazione. Mentre succede, vai a prendere una tazza di caffè. Questo può portare ovunque
da 10 minuti a un'ora. Dipende solo dal tuo sistema. Ci possono essere momenti in cui sembra che sia congelato; non ti preoccupare,
non lo è. Lascia che faccia sia la cosa. Tuttavia, se è bloccato su una cosa per oltre un'ora, allora sì, è congelato.

Ora che il sistema è installato, è necessario configurare l'account con cui si effettuerà l'accesso. In primo luogo, dargli il massimo
nome e premi "Continua".

Ora dai il tuo nome utente. Normalmente lo si imposta come il tuo nome,
ma puoi cambiarlo. Un nome che non puoi usare è "root".

Ti verrà chiesto di fornire una password. È ESSENZIALE scegliere una password complessa, altrimenti il ​​tuo server no
essere sicuro a tutti Raccomando almeno una combinazione di numeri, lettere minuscole e lettere maiuscole. Tuttavia, per i miei server
Io uso simboli, oltre a una miscela di quanto sopra. NON usare una password più breve di 7 caratteri.

Quindi, reinserire la password per verificare di averlo digitato correttamente.

Il sistema ora tenterà di configurare il "Gestore pacchetti" (arriveremo a ciò che è a breve). Forniscilo con il tuo
informazioni proxy o lasciarlo vuoto se non si utilizza un proxy e selezionare "Continua".

Il sistema eseguirà la scansione di diversi server alla ricerca di aggiornamenti e impostazioni di configurazione.

Dopo che questo è stato completato, ti verranno presentate diverse opzioni per installare il software del server. Ora, ascolta MOLTO attentamente.
Selezionare il server OpenSSH e premere SPAZIO, NON INVIO. Se premi Invio, l'installazione procederà senza installare il server OpenSSH.

Potresti installare anche "server LAMP", ma non ho esperienza con questa opzione, quindi installeremo tutto con un altro
comando più tardi.

Il sistema ora installerà il software selezionato, così come altri componenti di sistema.

Finalmente, l'installazione finirà. Rimuovi il CD e premi invio. Il computer verrà riavviato. Se tutto va bene, lo sarai
presentato con una schermata simile alla seguente:

Congratulazioni! Hai appena finito la parte più difficile. Ubuntu è ora installato ed è ora di trasformare questo computer in
un server web.


4. Aggiorna il tuo nuovo server

Prima di andare oltre, dobbiamo assicurarci che il tuo server sia aggiornato. Per fare questo, è necessario effettuare il login. Innanzitutto, digita il tuo nome utente
(quello che hai scelto in precedenza), premi invio, quindi digita la password. Mentre stai digitando la tua password, noterai che niente
sembra stia accadendo. Non preoccuparti, è così che è stato progettato per funzionare. Dopo aver digitato la password, premi invio,
e il tuo schermo dovrebbe apparire simile a quello qui sotto se tutto è andato bene:

Ora, digita:

sudo aptitude update && sudo aptitude dist-upgrade

Ti chiederà la password e, di nuovo, non vedrai nulla mentre lo stai digitando. Dopo averlo fatto, ti chiederà se
vuoi continuare. Digitare "y" e premere Invio. Lo schermo sarà simile al seguente:

Il sistema ora scaricherà e installerà tutti gli ultimi aggiornamenti. Questo richiederà un po 'di tempo a seconda della tua connessione internet. Dopo
è finito, il tuo computer dovrà essere riavviato. Per fare ciò, digitare:

sudo shutdown -r ora

E lascia che si riavvii. Il tuo server è ora completamente aggiornato.


Una breve nota su "Sudo"

A questo punto, potresti aver notato che tutti i comandi che hai digitato sono iniziati con "sudo". Questo perché richiedono
i privilegi di amministratore, ed è ciò che fa "sudo". Esegue il comando (cioè "shutdown") come amministratore, permettendogli di funzionare
propriamente. Questo è anche il motivo per cui ti chiede la tua password. Tuttavia, dopo aver digitato "sudo" una volta e inserito la password,
non è necessario inserire nuovamente la password per cinque minuti. Non tutti i comandi richiedono sudo, solo quelli che modificano parti del sistema.
Hai capito tutto? Buono.


5. Installa Apache, MySQL e PHP

È giunto il momento di installare alcuni programmi. Per accedere ai tuoi siti da internet, avremo bisogno di installare un server web (Apache). In aggiunta al server web, lo faremo
voglio anche un server di database (MySQL) e un linguaggio lato server (PHP) in modo che possiamo eseguire applicazioni popolari come WordPress. Così,
Andiamo ad esso!

Installare programmi su Ubuntu è molto diverso dall'installare programmi su Windows o
OS X, in quanto Ubuntu scaricherà e installerà i programmi per te con un semplice comando. Questo perché Ubuntu ha qualcosa chiamato
un Gestore pacchetti, che gestisce quasi tutti i programmi sul tuo sistema. Tutto quello che dobbiamo fare è dire al manager del pacchetto
(chiamato "aptitude") che vogliamo installare Apache, MySQL e PHP. Per fare ciò, digitare il seguente comando:

sudo aptitude install apache2 php5-mysql libapache2-mod-php5 server mysql

E premi Invio. Aptitude scaricherà e installerà i programmi che hai specificato. Inoltre, scaricherà e installerà qualsiasi
dipendenze.

Durante il processo di installazione, MySQL ti chiederà una password di root. Puoi impostarlo su qualsiasi cosa, ma assicurati di farlo in modo sicuro.
Qualunque cosa tu faccia, NON lasciare questo vuoto.

Dopo che tutto è finito, ora hai un server web pienamente funzionante. Per testarlo, prima trova l'IP del tuo server digitando:

ifconfig | grep inet

Di solito è il primo IP restituito. Nel mio caso, è 192.168.177.129. Ora che conosci l'IP, apri il browser web e puntalo
al tuo server IP. Se vedi "Funziona!" messaggio, quindi congratulazioni, funziona.

Tuttavia, non abbiamo ancora finito. Non vogliamo che Apache o PHP divulgino informazioni su se stessi, in quanto tali informazioni non sono necessarie
dai tuoi utenti e potrebbe rappresentare un rischio per la sicurezza. Per prima cosa, esegui il backup del file di configurazione originale di Apache:

sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak

Ora apri il file di configurazione:

sudo nano /etc/apache2/apache2.conf

Scorri verso il basso (freccia giù) dove dice "ServerTokens Full" e cambialo per leggere "ServerTokens Prod"

Ora scorri un po 'più in basso e cambia "ServerSignature On" su "ServerSignature Off"

Infine, premi Control-O seguito da Control-X. Ciò salverà il file e uscirà dall'editor di testo.

Ora, dobbiamo fare la stessa cosa per PHP. Per prima cosa, esegui il backup del file di configurazione originale di PHP:

sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bak

Apri il file di configurazione:

sudo nano /etc/php5/apache2/php.ini

Cambia "expose_php = On" in "expose_php = Off"

Di nuovo, premi Control-O seguito da Control-X. Ora che i file di configurazione sono aggiornati, riavvia Apache:

sudo /etc/init.d/apache2 restart

Hai finito di configurare Apache, MySQL e PHP.


6. Installare un firewall

Ora stiamo andando a bloccare un po 'il nostro server installando Shorewall, un firewall a riga di comando. Per installarlo:

sudo aptitude install shorewall

Per impostazione predefinita, Shorewall viene installato senza regole, consentendo l'accesso completo. Tuttavia, questo non è il comportamento che vogliamo.
Invece, stiamo andando a bloccare tutte le connessioni a qualsiasi cosa diversa dalla porta 80 (HTTP) e dalla porta 22 (SSH). Innanzitutto, copia la configurazione
file nella directory Shorewall:

sudo cp / usr / share / doc / shorewall-common / esempi / one-interface / * / etc / shorewall /

Ora apri il file "rules":

sudo nano / etc / shorewall / rules

Aggiungi queste righe sopra dove dice "LINEA LAST"

HTTP / ACCEPT netto $ FW SSH / ACCEPT netto $ FW

Quindi premi Control-O e Control-X. Il tuo firewall è ora configurato per accettare solo il traffico HTTP e SSH. L'ultima cosa di cui abbiamo bisogno
fai dire a Shorewall di iniziare al boot. Quindi, apri il file di configurazione principale di Shorewall:

sudo nano /etc/shorewall/shorewall.conf

Scorri verso il basso fino a "STARTUP_ENABLED = No" e impostalo su "STARTUP_ENABLED = Sì"

Premi Control-O e Control-X. Ora, apri il file di configurazione di Shorewall predefinito:

sudo nano / etc / default / shorewall

E cambia "startup = 0" in "startup = 1". Premi Control-O e Control-X. Infine, avvia il tuo firewall:

sudo /etc/init.d/shorewall start

Congratulazioni! Il tuo firewall è ora configurato e protegge il tuo server.


7. Aggiungi il tuo sito Web al tuo server web

Ora che hai tutto pronto, probabilmente ti piacerebbe aggiungere un sito web ad esso. Per impostazione predefinita, tutti i file utilizzati da Apache
fino a Internet si trovano in "/ var / www /". Tuttavia, non è possibile scrivere in questa cartella. Facciamo in modo che tu possa:

sudo usermod -g www-data [IL TUO NOME UTENTE] sudo chown -R www-data: www-data / var / www sudo chmod -R 775 / var / www

Quello che è successo è che ti sei aggiunto al gruppo "www-data" e hai reso la cartella del sito scrivibile per i membri del "www-data"
gruppo.

Ora accederai al tuo server usando SFTP (da non confondere con FTPS). Alcuni client che supportano SFTP sono:
WinSCP (Windows, gratuito), FileZilla (Windows, Linux, OS X, gratuito),
Cyberduck (OS X, gratuito) e, il mio preferito, Transmit
(OS X, $ 30)

Connettiti al tuo server usando il tuo nome utente e password e, se il tuo client lo supporta, un percorso predefinito di "/ var / www" (se non lo fa,
semplicemente vai su / var / www dopo aver effettuato l'accesso): (Trasmetti nella foto)

Ora puoi aggiungere i tuoi file a questa cartella (/ var / www) e questi verranno mostrati sul tuo server quando navighi con il tuo
programma di navigazione in rete.

Ora, potresti chiederti perché stiamo utilizzando SFTP anziché FTP. Principalmente, perché SFTP è già integrato in OpenSSH (che hai installato
in precedenza). Tuttavia, è anche molto più sicuro dell'FTP e rende difficile (se non impossibile) agli utenti malintenzionati di accedere
alle tue credenziali di accesso.


8. Rendi il tuo server accessibile a Internet

Oggigiorno la maggior parte delle reti domestiche moderne è dietro un router. Per questo motivo, il tuo server web non sarà visibile su Internet senza
un po 'di lavoro. Dato che non ho a disposizione tutti i router per testare, posso solo darti indicazioni generali in quest'area.

Ci sono due modi per aprire il tuo server a Internet: un DMZ o Port Forwarding. La differenza principale che noterai è che con una DMZ, il tuo server usa il
firewall che abbiamo installato in precedenza per proteggersi. Tuttavia, con Port Forwarding, il tuo server sarà protetto dal firewall del tuo router.

Tuttavia, prima di andare avanti, vorrete dare al vostro server un indirizzo LAN statico. Per farlo, accedi al tuo router e cerca qualcosa
sulla falsariga di "IP statici" o "Instradamento statico". Dopo aver assegnato al server un indirizzo LAN statico, è possibile eseguire queste parti successive. Ricorda,
Google è tuo amico.

Per port forward, c'è un sito eccellente, PortForward.com, che, anche se brutto, può
aiuta a portare a termine il lavoro per quasi tutti i router. Le porte che si desidera inoltrare sono 22 e 80.

Per creare una DMZ, è necessario accedere al router e cercare qualcosa come "Impostazioni DMZ". Una volta trovato, aggiungi il tuo server a
la DMZ e sarai impostato. Ancora una volta, Google è utile in situazioni come questa.

Ora trova il tuo IP pubblico e voilà! Puoi accedere al tuo server da qualsiasi posto purché lungo
come il tuo IP non cambia.


9. Gestione remota del server

Oltre a consentire il caricamento di file, OpenSSH consente di accedere al server da qualsiasi posizione purché si sappia che è IP. Per Windows, lo farai
bisogno di un client SSH. Raccomando Putty. Per OS X, SSH è
già installato. Basta aprire Terminale e digitare "ssh tu@youripPer Putty, scegli SSH e inserisci l'IP, il nome utente e la password
quando lo chiede. Noterai che, una volta effettuato il login, sembra esattamente lo stesso dello schermo sul server:

Puoi fare qualsiasi cosa da qui che faresti effettivamente seduto al server. Per uscire dal server, digita semplicemente "exit" e premi invio.


10. Questo è tutto!

Ora hai un server web completamente funzionante. Rappresenta un ottimo terreno di prova, e sarebbe anche adatto per ospitare siti web con traffico abbastanza basso. C'è ovviamente a lotto lasciato per essere appreso, ma si spera che tu abbia acquisito un po 'di informazioni su come funzionano i server web.

Se desideri leggere di più sugli argomenti trattati, ecco alcune ottime guide:

  • Installazione del software
  • Configurazione di Apache, MySQL e PHP
  • Guida alla configurazione di Shorewall
  • Come portare avanti

Inoltre, assicurati di controllare le migliaia di script PHP utili su Envato Market. Con tutto, dalle forme e carrelli della spesa alle astrazioni del database, ci sarà sicuramente qualcosa che ti aiuterà nella prossima fase del tuo lavoro come sviluppatore.

Script PHP su Envato Market