GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare Apache 2.4.2 da Source su CentOS 6.2 con SSL

Se provi a seguire l'articolo su come installare Apache con SSL di cui abbiamo discusso tempo fa, incontrerai un problema durante "make" a causa della compatibilità della versione tra Apache 2.4.4 e le utility APR (Apache Portable Runtime Library) che arriva con CentOS 6.

In questo articolo abbiamo spiegato come risolvere il problema per far funzionare l'ultimo Apache su CentOS o RedHat.

Assicurati di avere installato gcc e openssl-devel.

# yum install gcc
# yum install openssl-devel

Hai anche bisogno dell'APR "Apache Portable Runtime Library" per installare Apache dal sorgente.

Avrai già installato il pacchetto "apr" e "apr-util". Installa i pacchetti apr-devel e apr-util-devel.

# yum install apr-devel
# yum install apr-util-devel

Nota:nel nostro caso (a causa dei problemi di compatibilità delle versioni), li scaricheremo e li installeremo manualmente in un secondo momento. Ma per ora seguiamo il flusso e vediamo cosa succede quando provi a farlo in questo modo.

Scarica Apache

Scarica Apache da httpd.apache.org. L'attuale versione stabile è la 2.4.2.

Una volta ottenuto l'URL diretto per scaricare l'ultima versione stabile di Apache, usa wget come mostrato di seguito per scaricarlo direttamente sul tuo server.

cd /usr/src
wget http://mirror.nyi.net/apache//httpd/httpd-2.4.2.tar.gz
tar xvfz httpd-2.4.2.tar.gz

Installa Apache con SSL/TLS

Visualizza tutte le opzioni di installazione e configurazione disponibili di Apache come mostrato di seguito.

cd httpd-2.4.2
./configure --help

Per installare un modulo Apache, in genere diresti –enable-{module-name}. Ad esempio, per installare SSL con Apache, è –enable-ssl. Per installare il modulo ldap, è –enable-ldap.

Per disinstallare qualsiasi modulo predefinito fornito con Apache, in genere dovresti dire –disable-{module-name}. Ad esempio, per disabilitare l'autenticazione di base in Apache, è –disable-auth-basic

In questo esempio, installeremo Apache con tutti i moduli predefiniti, con l'aggiunta di –enable-ssl (per installare mod_ssl per il supporto SSL) e –enable-so, che aiuta a caricare i moduli in Apache durante il runtime tramite Dynamic Shared Meccanismo dell'oggetto (DSO), piuttosto che richiedere una ricompilazione.

./configure --enable-ssl --enable-so
make
make install

Nota:per impostazione predefinita quanto sopra installa Apache in /usr/local/apache2. Se desideri modificare questa posizione, usa l'opzione –prefix in ./configure.

Correzione dei messaggi di errore dell'utility APR

Potresti non aver riscontrato questo problema durante l'installazione della versione precedente di Apache, come abbiamo discusso tempo fa.

Quando esegui "make", potresti ottenere "rotatelogs.c:(.text+0x5ed):riferimento non definito a `apr_file_link' " messaggio di errore se lo stai facendo su CentOS 6.2 come mostrato di seguito.

# make
rotatelogs.c:298: warning: implicit declaration of function âapr_file_linkâ
/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -std=gnu99 -pthread
-o rotatelogs  rotatelogs.lo /usr/lib64/libaprutil-1.la -ldb-4.7 -lexpat -ldb-4.7 /usr/lib64/libapr-1.la -lpthread
rotatelogs.o: In function `post_rotate':
rotatelogs.c:(.text+0x5ed): undefined reference to `apr_file_link'
collect2: ld returned 1 exit status
make[2]: *** [rotatelogs] Error 1
make[2]: Leaving directory `/usr/src/httpd-2.4.2/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src/httpd-2.4.2/support'
make: *** [all-recursive] Error 1

Questo perché su CentOS 6, l'ultima versione APR disponibile tramite l'installazione di yum è 1.3.9 come mostrato di seguito.

# rpm -qa apr*
apr-1.3.9-3.el6_1.2.x86_64
apr-util-1.3.9-3.el6_0.1.x86_64

Tuttavia, Apache 2.4.2 necessita dell'ultima versione di APR (che attualmente è la 1.4.6).

Quindi, vai alla pagina di download di APR e scarica sia apr che apr-util.

cd /usr/src
wget http://mirror.atlanticmetro.net/apache//apr/apr-1.4.6.tar.gz
wget http://mirror.atlanticmetro.net/apache//apr/apr-util-1.4.1.tar.gz
tar xvfz apr-1.4.6.tar.gz
tar xvfz apr-util-1.4.1.tar.gz

Ora, dovresti posizionare questa nuova versione delle directory apr e apr-util (senza il nome della versione nella directory) nella directory "srclib" situata nella directory httpd-2.4.2 creata quando hai decompresso il software apache scaricato.

Nel mio esempio, ho scaricato httpd-2.4.2.tar.gz e l'ho decompresso in /usr/src. Quindi, ho bisogno di inserire l'ultimo apr e apr-util in questa directory.

mv apr-1.4.6 /usr/src/httpd-2.4.2/srclib/apr
mv apr-util-1.4.1 /usr/src/httpd-2.4.2/srclib/apr-util

Al termine, è necessario configurarlo e farlo di nuovo. Se esegui ./configure –help, vedrai le seguenti opzioni relative ad APR

# cd /usr/src/httpd-2.4.2
# ./configure --help
  --with-included-apr     Use bundled copies of APR/APR-Util
  --with-apr=PATH         prefix for installed APR or the full path to apr-config
  --with-apr-util=PATH    prefix for installed APU or the full path to apu-config

Se decidi di installare apr-1.4.6 e apr-util-1.4.1 sul tuo sistema, devi usare “–with-apr” e “–with-apr-util” e fornire il percorso in cui li hai installati utilità.

In questo esempio, non l'abbiamo fatto. cioè non abbiamo installato apr e apr-util che abbiamo scaricato. Invece li abbiamo inseriti in httpd-2.4.2/srclib/apr-util. Quindi, dovremmo usare "–with-included-apr" in ./configure che utilizzerà questi apr e apr-util solo per la compilazione e l'installazione di apache.

Quindi, rifacciamo ./configure (usando –with-included-apr), eseguiamo e facciamo l'installazione come mostrato di seguito.

./configure --enable-ssl --enable-so --with-included-apr
make
make install

Ora, make non darà più il messaggio di errore "rotatelogs.c:(.text+0x5ed):undefined reference to `apr_file_link".

Abilita SSL in httpd.conf

Il file di configurazione di Apache httpd.conf si trova in /usr/local/apache2/conf.

Decommentare la riga httpd-ssl.conf Include e la riga LoadModule ssl_module nel file /usr/local/apache2/conf/httpd.conf.

# vi /usr/local/apache2/conf/httpd.conf
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf

Visualizza httpd-ssl.conf per rivedere tutte le configurazioni SSL predefinite. Nella maggior parte dei casi, non è necessario modificare nulla in questo file.

# vi /usr/local/apache2/conf/extra/httpd-ssl.conf

Il certificato SSL e la chiave sono necessari prima di avviare Apache. I file server.crt e server.key menzionati in httpd-ssl.conf devono essere creati prima di andare avanti.

# cd /usr/local/apache2/conf/extra
# egrep 'server.crt|server.key' httpd-ssl.conf
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"

Crea il file server.crt e server.key

Innanzitutto, genera il server.key utilizzando openssl.

# cd /usr/src
# openssl genrsa -des3 -out server.key 1024

Il comando precedente chiederà la password. Assicurati di ricordare questa password. Ne hai bisogno per avviare il tuo Apache in un secondo momento.

Quindi, genera un file di richiesta di certificato (server.csr) utilizzando il file server.key sopra.

# openssl req -new -key server.key -out server.csr

Infine, genera un certificato SSL autofirmato (server.crt) utilizzando il file server.key e server.csr sopra.

# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Dopo aver completato i passaggi precedenti, vedrai i seguenti tre file in /usr/src

# ls server*
server.crt  server.csr  server.key

Copia il file server.key e server.crt nella posizione della directory di configurazione di Apache appropriata.

cp server.key /usr/local/apache2/conf/
cp server.crt /usr/local/apache2/conf/

Avvia l'Apache

Se ricevi il seguente messaggio di errore, assicurati di decommentare la riga mostrata di seguito in httpd.conf

# /usr/local/apache2/bin/apachectl start
AH00526: Syntax error on line 51 of /usr/local/apache2/conf/extra/httpd-ssl.conf:
Invalid command 'SSLCipherSuite', perhaps misspelled or defined by a module not included in the server configuration

# vi /usr/local/apache2/conf/httpd.conf
LoadModule ssl_module modules/mod_ssl.so

Se ricevi il seguente messaggio di errore, assicurati di decommentare la riga mostrata di seguito in httpd.conf

# /usr/local/apache2/bin/apachectl start
AH00526: Syntax error on line 76 of /usr/local/apache2/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).

# vi /usr/local/apache2/conf/httpd.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

Infine, questo ti chiederà di inserire la password per la tua chiave privata prima di avviare l'Apache.

# /usr/local/apache2/bin/apachectl start
Apache/2.4.2 mod_ssl (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server www.example.com:443 (RSA)
Enter pass phrase:

OK: Pass Phrase Dialog successful.

Verifica che il processo httpd di Apache sia in esecuzione in background

# ps -ef | grep http
root   29529     1  0 13:08 ?     00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 29530 29529  0 13:08 ?     00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 29531 29529  0 13:08 ?     00:00:00 /usr/local/apache2/bin/httpd -k start
daemon 29532 29529  0 13:08 ?     00:00:00 /usr/local/apache2/bin/httpd -k start
root   29616 18260  0 13:09 pts/0 00:00:00 grep http

Per fermare apache usa apachectl stop.

# /usr/local/apache2/bin/apachectl stop

Usa httpd -l per visualizzare tutti i moduli che sono compilati all'interno del demone httpd di Apache.

# /usr/local/apache2/bin/httpd -l
Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  event.c

Per impostazione predefinita Apache SSL viene eseguito sulla porta 443. Apri un browser web e verifica di poter accedere al tuo Apache utilizzando https://{your-ip-address}


Linux
  1. Come installare la sicurezza mod su Centos 7.x con apache?

  2. Come installare Let's Encrypt SSL con Apache su Debian 11

  3. Installa Apache 2 da Source su Linux

  4. Come installare Apache 2 con SSL su Linux (con mod_ssl, openssl)

  5. Come installare Apache CouchDB su CentOS 6 (da Source ed EPEL)

Come installare Apache con Virtual Host su CentOS 8

Come installare Apache Tomcat 9 su CentOS 7

Come installare Apache in CentOS 8

Come installare Drupal su CentOS 7 con Apache

Come installare WordPress su CentOS 7.1 con Apache

Come installare Apache con PHP-FPM su CentOS 8