2013-11-21 14 views
14

OS: Red Hat Enterprise Linux Server Release 6.4 (Santiago)Apache 2.4.x Manuale installare su RHEL 6.4 - Non ci sono moduli di Apache verranno caricati all'avvio

L'installazione yum corrente di Apache su questo sistema operativo è 2.2.15. Ho bisogno dell'ultimo ramo 2.4.x, quindi ho provveduto a installarlo manualmente. Ho notato la procedura completa ho intrapreso, compreso il disimballaggio apr e apr-util fonti nelle fonti apache in anticipo, ma credo che ciò che segue è la parte più importante della procedura:

GATHER LATEST APACHE AND APR 
$ cd ~ 
$ mkdir apache-src 
$ cd apache-src 
$ wget http://apache.insync.za.net//httpd/httpd-2.4.6.tar.gz 
$ tar xvf httpd-2.4.6.tar.gz 
$ cd httpd-2.4.6 
$ cd srclib 
$ wget http://apache.insync.za.net//apr/apr-1.5.0.tar.gz 
$ tar -xvzf apr-1.5.0.tar.gz 
$ mv apr-1.5.0 apr 
$ rm -f apr-1.5.0.tar.gz 
$ wget http://apache.insync.za.net//apr/apr-util-1.5.3.tar.gz 
$ tar -xvzf apr-util-1.5.3.tar.gz 
$ mv apr-util-1.5.3 apr-util 

INSTALL DEVEL PACKAGES 
yum update --skip-broken (There is a dependency issue with the latest Chrome needing the latest libstdc++, which is not available for RHEL and CentOS) 
yum install apr-devel 
yum install apr-util-devel 
yum install pcre-devel 

INSTALL 
$ cd ~/apache-src/httpd-2.4.6 
$ ./configure --prefix=/etc/httpd --enable-mods-shared="all" --enable-rewrite --with-included-apr 
$ make 
$ make install 

NOTA: Al momento della eseguendo quanto sopra, /etc/http è vuoto.

Questo sembra essere andato bene fino a quando non tento di avviare il servizio httpd. Sembra che ogni modulo comprendono in httpd.conf fallisce con un messaggio simile a questo per mod_rewrite:

httpd: Syntax error on line 148 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_rewrite.so into server: /etc/httpd/modules/mod_rewrite.so: undefined symbol: ap_global_mutex_create 

Ho passato a destra attraverso la lista dei moduli abilitati nel httpd.conf e commentato fuori uno alla volta. Tutti generano un errore come sopra, tuttavia il "simbolo non definito: valore" è spesso diverso (quindi non sempre ap_global_mutex_create).

Mi manca un passaggio? Anche se trovo una parte dell'errore su Google, la maggior parte delle soluzioni si concentra sui file .so non raggiungibili. Questo non sembra essere un problema qui e i moduli sono presenti in /etc/http/modules.

NOTA: al momento dell'esecuzione di quanto sopra, /etc/http è vuoto.

risposta

23

Avete la procedura corretta ma è incompleta.

Dopo l'installazione è necessario abilitare SSL in httpd.conf. e generare server.crt e server.key file. Di seguito la procedura completa:

1. Scaricare Apache

cd /usr/src 
wget http://www.apache.org/dist/httpd/httpd-2.4.23.tar.gz 
tar xvf httpd-2.4.23.tar.gz 

2. Scaricare aprile e APR-Util

cd /usr/src 
wget -c http://mirror.cogentco.com/pub/apache/apr/apr-1.5.2.tar.gz 
wget -c http://mirror.cogentco.com/pub/apache/apr/apr-util-1.5.4.tar.gz 
tar xvf apr-1.5.2.tar.gz 
tar xvf apr-util-1.5.4.tar.gz 

Ora mettete APR e APR-Util scaricato nei tuoi file sorgente apache.

mv apr-1.5.2 /usr/src/httpd-2.4.23/srclib/apr 
mv apr-util-1.5.4 /usr/src/httpd-2.4.23/srclib/apr-util 

3.Compile

cd /usr/src/httpd-2.4.23 
./configure --enable-so --enable-ssl --with-mpm=prefork --with-included-apr --with-included-apr-util 
make 
make install 

Come si può vedere nel comando ./configure specifichiamo le opzioni della riga di comando per includere aprile e apr-utils.

4. Abilitare SSL in httpd.conf

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

nano /usr/local/apache2/conf/httpd.conf 

Rimuovere il commento httpd-ssl.conf Includere linea e la linea LoadModule ssl_module nel /usr/local/apache2/conf/httpd.conf di file:

# LoadModule ssl_module modules/mod_ssl.so 
# Include conf/extra/httpd-ssl.conf 

Vedere le httpd-ssl.conf per rivedere tutte le configurazioni di default SSL.
Per la maggior parte dei casi, non è necessario modificare nulla in questo file.

nano /usr/local/apache2/conf/extra/httpd-ssl.conf 

Il certificato SSL e la chiave sono necessari prima di avviare Apache.
Il server server.crt e server.key file menzionato nello httpd-ssl.conf deve essere creato 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" 

5. Generare server.crt e server.key file di

In primo luogo, Generare 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 mentre avvii il tuo Apache in seguito.

successivo, generare un file di richiesta di certificato (server.csr) utilizzando il sopra server.key file di .

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

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

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

Copiare il file server.key e server.crt di appropriarsi di Apache posizione della directory di configurazione.

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

6. Avviare Apache

/usr/local/apache2/bin/apachectl start 

Se hai trovato il seguente messaggio di errore:

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 

Assicurarsi di togliere il commento alla linea qui sotto nel httpd.conf:

vi /usr/local/apache2/conf/httpd.conf 

# LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 

Infine, questo vi verrà chiesto di inserire la password per la chiave privata prima di avviare l'apache. Verificare che il processo httpd di Apache sia in esecuzione in background.

ps -ef | grep http 

Si dovrebbe vedere qualcosa di simile:

root 29529 1  0 13:08 ? 00:00:00 /usr/local/apache2/bin/httpd -k start 
antoine 29530 29529 0 13:08 ? 00:00:00 /usr/local/apache2/bin/httpd -k start 
antoine 29531 29529 0 13:08 ? 00:00:00 /usr/local/apache2/bin/httpd -k start 
antoine 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 impostazione predefinita Apache SSL viene eseguito su 443 porta. Aprire un browser Web e verificare che sia possibile accedere alla Apache utilizzando https: // {your-ip-address}

Spero che questo aiuto, altrimenti vi consiglio di andare a vedere: http://jasonpowell42.wordpress.com/2013/04/05/install-apache-2-4-4-on-centos-6-4/

+0

come farlo avviarsi automaticamente con il server? – vee

+0

Per auto strat vedere questo link: http://serverfault.com/a/202886 –

+1

@AntoineSubit Ottimo post. L'ho seguito per RedHat e funziona bene. Solo una piccola correzione nel passaggio 3. Compila './configure --enable-so --enable-ssl --with-mpm = prefork --with-included-apr --with-included-apr-util' – Capricorn

2
baprutil-1.la /usr/src/httpd-2.4.27/srclib/apr/libapr-1.la -lrt -lcrypt -lpthread -ldl -lcrypt 
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_GetErrorCode' 
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_SetEntityDeclHandler' 
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_ParserCreate' 
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_SetCharacterDataHandler' 
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_ParserFree' 
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_SetUserData' 
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_StopParser' 
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_Parse' 
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_ErrorString' 
/usr/src/httpd-2.4.27/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `XML_SetElementHandler' 
collect2: error: ld returned 1 exit status 
make[2]: *** [htpasswd] Error 1 
make[2]: Leaving directory `/usr/src/httpd-2.4.27/support' 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory `/usr/src/httpd-2.4.27/support' 
make: *** [all-recursive] Error 1 

Questo errore viene ricevuto nel passaggio make se --with-included-apr-util non è specificato in ./configure