impostare apache per multi-site

Installazione, configurazione e uso di Ubuntu come server: web, ftp, mail, news, proxy, dns, ecc.

impostare apache per multi-site

Messaggioda _natty_ » mercoledì 28 novembre 2018, 17:18

Vorrei configurare una macchina ovh su cui è montato apache2 su una distro ubuntu 18 server.

Attualmente il server nn ha un dominio, ma vi si accede tramite ip, se visito l'ip viene servito la homepage del sito contenuto in
Codice: Seleziona tutto
 /var/www/html/sito1

Vorrei invece ora spostare di livello il sito, in modo da avere più siti disponibili, accedendo comes
Codice: Seleziona tutto
ip/sito1 ip/sito2....ip/sitoN


su sites aviable ho un file che si chiama site1.conf che contiene:

Codice: Seleziona tutto
<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/site1/public

    <Directory /var/www/html/site1>
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>



[public folder di site1 contiene index.php, .htaccess per il site1]

dove devo mettere mano?

grazie
_natty_
Prode Principiante
 
Messaggi: 63
Iscrizione: giugno 2010

Re: impostare apache per multi-site

Messaggioda Sam9999 » mercoledì 28 novembre 2018, 18:01

Codice: Seleziona tutto
<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/site1/public

    <Directory /var/www/html/site1>
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


Qui basta che al posto /var/www/html/site1 metti la cartella dove ' il sito che ti interessa.
Di solito meglio sulal cartella superiore che sotto la html... /var/www/miosito1 /var/www/miosito2 e cos' per ogni sito web e poi li abiliti con "sudo a2ensite nomesito" e riavvi apache "sudo service apache 2 reload"

Un file di configurazione per ogni sito web... ma anche ci vuole un domino o sotto dominio e i dns puntati al tuo ip....

Oltre al fatto che dalla tua richiesta basta che crei le varie cartelle in /var/www/sito1/altro sito /var/www/html/sito1/nuovosito ecc..
-------------
S. @-M.
-------------
Avatar utente
Sam9999
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1598
Iscrizione: giugno 2014
Località: BO
Desktop: Studio Xfce
Distribuzione: Ubuntu 19.04 (Disco Dingo)

Re: impostare apache per multi-site

Messaggioda _natty_ » mercoledì 28 novembre 2018, 18:21

Se ho capito bene devo e replicare site1.conf e abilitarlo... ho capito anche suggerimento su eliminare la sottocartella html, ma in questo caso devo definirlo in apache2.conf?


Inoltre nn ho capito bene questo commento:
ma anche ci vuole un domino o sotto dominio e i dns puntati al tuo ip....


Io nn ho un dominio, attualmente accedo tramite ip, attualmente se accedo all'ip mi viene mostrato site1, dopo vorrei accederci con ip/siteN

Grazie
_natty_
Prode Principiante
 
Messaggi: 63
Iscrizione: giugno 2010

Re: impostare apache per multi-site

Messaggioda Sam9999 » mercoledì 28 novembre 2018, 18:28

_natty_ Immagine ha scritto:Se ho capito bene devo e replicare site1.conf e abilitarlo... ho capito anche suggerimento su eliminare la sottocartella html, ma in questo caso devo definirlo in apache2.conf?


Inoltre nn ho capito bene questo commento:
ma anche ci vuole un domino o sotto dominio e i dns puntati al tuo ip....


Io nn ho un dominio, attualmente accedo tramite ip, attualmente se accedo all'ip mi viene mostrato site1, dopo vorrei accederci con ip/siteN

Grazie


Visto che accedi tramite ip unico, allora fai così, cambia /var/www/html/site1 in site1.conf in /var/www/html
Dopo nella cartella /var/www/html alla quale accederai di default, crei le varie sotto cartelle per i vari siti sito1 sito2 sito3 e quindi vi accederai da http://mioip/sito1 http://mioip//sito2 ecc...

Ha devi sempre ricaricare apache "sudo service apache2 reload"
-------------
S. @-M.
-------------
Avatar utente
Sam9999
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1598
Iscrizione: giugno 2014
Località: BO
Desktop: Studio Xfce
Distribuzione: Ubuntu 19.04 (Disco Dingo)

Re: impostare apache per multi-site

Messaggioda Hosting80 » giovedì 29 novembre 2018, 12:22

ciao natty_ io possego diversi server......diciamo che da quello che ho letto ci sono moltissime cose che non stai valutando.

La configurazione del server web che sia apache o iis o apache windows poco cambia non e proprio una passeggiata.

Un configurazione multi utenza per il SOLO server web nel tuo caso dovrebbe averne una simile abbastanza semplificata per chi e agli inizi.
Codice: Seleziona tutto
#
# www.store.com
#

<VirtualHost *:80>
        ServerAdmin mystore@xxx.com
        ServerName  www.mystore.com
        ServerAlias mystore.com

        # Indexes + Directory Root.
        DirectoryIndex index.php
        DocumentRoot /var/www/ps17/www/
       
       
   
        <Directory /var/www/ps17/www/>
      Options Indexes FollowSymLinks MultiViews

                Options FollowSymLinks
                AllowOverride all
        </Directory>

        <Directory /var/www/ps17/>
               
                AllowOverride All
                Order allow,deny
                Allow from all
             
   </Directory>


        # CGI Directory
        ScriptAlias /cgi-bin/ /var/www/ps17/cgi-bin/
        <Location /cgi-bin>
                Options +ExecCGI
        </Location>

        # Logfiles
        ErrorLog  /var/log/apache2/Prestashop1.7.xx/error.log
        CustomLog /var/log/apache2/Prestashop1.7.xx/access.log combined

</VirtualHost>



Questa e una corretta configurazione per un singolo dominio dove hosti per esempio un prestashop.

Quindi dovresti configurare anzi e indispensabile farlo, il php.ini per far siche non si abbiano problemi con prestashop, e alquanto cappricioso e smarty non funziona bene se il server non e configurato a dovere.
Lascia perdere quello che ti scrivono nel development document, una rapida occhiata a smarty ti dice tutt'altra cosa.

Ora il problema nasce proprio da qui.
Se vuoi hostare più domini non dovrai fare altro che replicare lo stesso file.

Ricorda inoltre per prima cosa ti serve la riscrittura degli url sempre su apache e linux abiliti da terminale con
Codice: Seleziona tutto
a2enmod rewerite


I cms sono pretenziosi e se non configuri bene adesso il server preparati ad avere gente che ogni giorno ti contatta con problemi vari.

inoltre devi fornire, un accesso ftp e mysql, dare la possibilità di utilizzare le funzioni corn e dirottare ogni utente verso la specifica cartella facendo in modo che non se ne vadano in giro per il server a livello ftp 2 strade sicure posso essere
1. VSFTPD con gestione utenti locali
2. VSFTD con l'aggiunta del componente mysql dove gli utente sono virtuali a mezzo di database.

Altro problema e il php.ini.....in un sistema fatto bene sarebbe il caso di avere un server web apposito per i siti web php generici, uno per i principali cms utilizzati e-commerce e così via......
La prima strada e la migliore e la più costosa e avere più server appunto.
La seconda quale molti hoster utilizzano diciamo di classe B e quella di avere un grosso server con delle VM dove al loro interno e installato un server web per le diverse esigenze.
La terza e quella più economica e la condivisione delle risorse e la più instabile per quanto mi riguarda e avere tutto nello stesso server.
a tal punto ti consiglio un php.ini per ogni host non visibile dall'utente se non e che realizzi un php.ini virtuale dove concedi solo alcune configurazioni sempre limitate.

Inserisci dunque in ogni virtual host la seguente riga.

Codice: Seleziona tutto
PHPINIDir /var/www/html/miosito


Questo se vuoi iniziare ad offrire un servizio professionale.

Ha dimenticavo, l'https....be quello e indispensabile soprattutto per gli e-commerce, un servizio di base gratuito lo puoi usare con certbot

Per concludere tornando al discorso di prestashop teoricamente dovresti avere un server per la chache e uno per il media.
Fino a quando si tratta di ospitare 2-3 cms ps con 5-10.000 articoli in totale il problema non si pone, ma immagina 5 cms con 40.000 articoli con diverse tematiche, li il server inizia a soffrire e non poco......

Spero di esserti stato utile e non scoraggiante, vorrei solo evitarti utenti scorretti che ti minacciano denuncia al primo problema e diveti schiavo delle loro pretese e richiesta di risorse che nemmeno utilizzano spesso.

E un po come il notebook con la webcam che la vogliono perchè " potrebbe servire" e poi ci mettono il nastro isolante sopra per "non essere spiati"!..
Hosting80
Prode Principiante
 
Messaggi: 71
Iscrizione: agosto 2016
Sesso: Maschile

Re: impostare apache per multi-site

Messaggioda Sam9999 » giovedì 29 novembre 2018, 15:56

Io queste ozioni le ho in apache.conf on nei file di configuarzione del dominio così sono meno incasinati. Inoltre sono possibili metterle in .htaccess (specie il secondo gruppo di opzioni) sempre se il server apache accetta al sovrascrittura di queste opzioni, quindi non sono necessari al funzionamento della configurazione del dominio stesso.

Codice: Seleziona tutto
Options Indexes FollowSymLinks MultiViews

                Options FollowSymLinks
                AllowOverride all
        </Directory>

        <Directory /var/www/ps17/>
               
                AllowOverride All
                Order allow,deny
                Allow from all


pare che ci stiamo complicando la vita.. :birra:
-------------
S. @-M.
-------------
Avatar utente
Sam9999
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1598
Iscrizione: giugno 2014
Località: BO
Desktop: Studio Xfce
Distribuzione: Ubuntu 19.04 (Disco Dingo)

Re: impostare apache per multi-site

Messaggioda _natty_ » giovedì 29 novembre 2018, 17:41

Hosting80 Immagine ha scritto:ciao natty_ io possego diversi server......diciamo che da quello che ho letto ci sono moltissime cose che non stai valutando.

La configurazione del server web che sia apache o iis o apache windows poco cambia non e proprio una passeggiata.

Un configurazione multi utenza per il SOLO server web nel tuo caso dovrebbe averne una simile abbastanza semplificata per chi e agli inizi.
Codice: Seleziona tutto
#
# www.store.com
#

<VirtualHost *:80>
        ServerAdmin mystore@xxx.com
        ServerName  www.mystore.com
        ServerAlias mystore.com

        # Indexes + Directory Root.
        DirectoryIndex index.php
        DocumentRoot /var/www/ps17/www/
       
       
   
        <Directory /var/www/ps17/www/>
      Options Indexes FollowSymLinks MultiViews

                Options FollowSymLinks
                AllowOverride all
        </Directory>

        <Directory /var/www/ps17/>
               
                AllowOverride All
                Order allow,deny
                Allow from all
             
   </Directory>


        # CGI Directory
        ScriptAlias /cgi-bin/ /var/www/ps17/cgi-bin/
        <Location /cgi-bin>
                Options +ExecCGI
        </Location>

        # Logfiles
        ErrorLog  /var/log/apache2/Prestashop1.7.xx/error.log
        CustomLog /var/log/apache2/Prestashop1.7.xx/access.log combined

</VirtualHost>



Questa e una corretta configurazione per un singolo dominio dove hosti per esempio un prestashop.

Quindi dovresti configurare anzi e indispensabile farlo, il php.ini per far siche non si abbiano problemi con prestashop, e alquanto cappricioso e smarty non funziona bene se il server non e configurato a dovere.
Lascia perdere quello che ti scrivono nel development document, una rapida occhiata a smarty ti dice tutt'altra cosa.

Ora il problema nasce proprio da qui.
Se vuoi hostare più domini non dovrai fare altro che replicare lo stesso file.

Ricorda inoltre per prima cosa ti serve la riscrittura degli url sempre su apache e linux abiliti da terminale con
Codice: Seleziona tutto
a2enmod rewerite


I cms sono pretenziosi e se non configuri bene adesso il server preparati ad avere gente che ogni giorno ti contatta con problemi vari.

inoltre devi fornire, un accesso ftp e mysql, dare la possibilità di utilizzare le funzioni corn e dirottare ogni utente verso la specifica cartella facendo in modo che non se ne vadano in giro per il server a livello ftp 2 strade sicure posso essere
1. VSFTPD con gestione utenti locali
2. VSFTD con l'aggiunta del componente mysql dove gli utente sono virtuali a mezzo di database.

Altro problema e il php.ini.....in un sistema fatto bene sarebbe il caso di avere un server web apposito per i siti web php generici, uno per i principali cms utilizzati e-commerce e così via......
La prima strada e la migliore e la più costosa e avere più server appunto.
La seconda quale molti hoster utilizzano diciamo di classe B e quella di avere un grosso server con delle VM dove al loro interno e installato un server web per le diverse esigenze.
La terza e quella più economica e la condivisione delle risorse e la più instabile per quanto mi riguarda e avere tutto nello stesso server.
a tal punto ti consiglio un php.ini per ogni host non visibile dall'utente se non e che realizzi un php.ini virtuale dove concedi solo alcune configurazioni sempre limitate.

Inserisci dunque in ogni virtual host la seguente riga.

Codice: Seleziona tutto
PHPINIDir /var/www/html/miosito


Questo se vuoi iniziare ad offrire un servizio professionale.

Ha dimenticavo, l'https....be quello e indispensabile soprattutto per gli e-commerce, un servizio di base gratuito lo puoi usare con certbot

Per concludere tornando al discorso di prestashop teoricamente dovresti avere un server per la chache e uno per il media.
Fino a quando si tratta di ospitare 2-3 cms ps con 5-10.000 articoli in totale il problema non si pone, ma immagina 5 cms con 40.000 articoli con diverse tematiche, li il server inizia a soffrire e non poco......

Spero di esserti stato utile e non scoraggiante, vorrei solo evitarti utenti scorretti che ti minacciano denuncia al primo problema e diveti schiavo delle loro pretese e richiesta di risorse che nemmeno utilizzano spesso.

E un po come il notebook con la webcam che la vogliono perchè " potrebbe servire" e poi ci mettono il nastro isolante sopra per "non essere spiati"!..



Ciao, grazie dei tanti consigli, faccio un pò di ordine...
nn ho a che fare con cms commerciali, ma con un framework php -principalmente- Laravel.

questa che sto configurando è una macchina di test, nn andrà mai in produzione, al massimo ci accederanno pochi e affidabili utenti per ragioni di testing.
Essendo però la macchina su internet, mi pare cmq indispensabile fare le cose come devono essere fatte!

Ho un indirizzo ip e non un dominio vero e proprio per questa macchina, e un alias di default dato da chi mi vende il servizio -nn ho acquistato un dominio insomma-.

Non credo nemmeno che avrò "accessi contemporanei" quindi spero che il php nn impazzisca, ti ringrazio per i commenti "professionali" per come suddividere eventualmente media, cache etc. ne terrò di conto!
_natty_
Prode Principiante
 
Messaggi: 63
Iscrizione: giugno 2010

Re: impostare apache per multi-site

Messaggioda sat.paolo » sabato 8 dicembre 2018, 11:34

Mi permetto di dare il mio piccolo e sicuramente non professionale contributo in quanto novizio
Ti linko un articolo che personalmente mi è stato molto utili solla conf dei virtual hosts

https://www.digitalocean.com/community/ ... untu-16-04
(Chiedo ammenda ai mod se ho infranto qualche regola nll' inserire un link esterno)

Anch' io come te ho un server dedicato che faticosamente e pian piano stò configurando
Ciauu
sat.paolo
Prode Principiante
 
Messaggi: 117
Iscrizione: marzo 2009

Re: impostare apache per multi-site

Messaggioda Sam9999 » sabato 8 dicembre 2018, 13:58

A lui alla fine serviva un multi sito non multi dominio...
-------------
S. @-M.
-------------
Avatar utente
Sam9999
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1598
Iscrizione: giugno 2014
Località: BO
Desktop: Studio Xfce
Distribuzione: Ubuntu 19.04 (Disco Dingo)


Torna a Ubuntu su server

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 2 ospiti