Système d'exploitation: Red Hat Enterprise Linux Server version 6.4 (Santiago)
L'installation yum actuelle d'Apache sur ce système d'exploitation est 2.2.15. J'ai besoin de la dernière branche 2.4.x, je l'ai donc installée manuellement. J'ai noté la procédure complète que j'ai entreprise, y compris le déballage apr
et apr-util
sources dans les sources Apache au préalable, mais je suppose que ce qui suit est la partie la plus importante de la procédure:
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
REMARQUE: au moment de l'exécution de ce qui précède,
/etc/http
est vide.
Cela semble avoir bien fonctionné jusqu'à ce que j'essaie de démarrer le service httpd. Il semble que chaque module inclut dans httpd.conf
échoue avec un message similaire à celui-ci pour 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
J'ai parcouru la liste des modules activés dans httpd.conf
et les a commentés un par un. Tous déclenchent une erreur comme ci-dessus, cependant le "symbole non défini: valeur" est souvent différent (donc pas toujours ap_global_mutex_create
).
Suis-je en train de manquer une étape? Bien que je trouve une partie de cette erreur sur Google, la plupart des solutions se concentrent sur le .so
les fichiers ne sont pas accessibles. Cela ne semble pas être un problème ici et les modules sont présents dans /etc/http/modules
.
REMARQUE: au moment de l'exécution de ce qui précède,
/etc/http
est vide.
Vous avez la bonne procédure mais elle est incomplète.
Après l'installation, vous devez activer SSL dans httpd.conf. et générer le fichier server.crt et server.key. Ci-dessous la procédure complète:
1. Télécharger 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. Télécharger APR et 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
Maintenant, mettez l'APR et l'APR-Util que vous avez téléchargés dans vos fichiers source 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.Compiler
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
Comme vous pouvez le voir dans le ./configure
commande nous spécifions les options de ligne de commande pour inclure apr et apr-utils.
4. Activer SSL dans httpd.conf
Le fichier de configuration Apache httpd.conf se trouve sous /usr/local/Apache2/conf.
nano /usr/local/Apache2/conf/httpd.conf
Décommentez la ligne httpd-ssl.conf Inclure et la ligne LoadModule ssl_module
ligne dans le fichier /usr/local/Apache2/conf/httpd.conf:
# LoadModule ssl_module modules/mod_ssl.so
# Include conf/extra/httpd-ssl.conf
Affichez le httpd-ssl.conf pour revoir toutes les configurations SSL par défaut.
Dans la plupart des cas, vous n'avez pas besoin de modifier quoi que ce soit dans ce fichier.
nano /usr/local/Apache2/conf/extra/httpd-ssl.conf
Le certificat SSL et la clé sont requis avant de démarrer Apache.
Le fichier server.crt et server.key mentionné dans les besoins httpd-ssl.conf à créer avant d'aller de l'avant.
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. Générez le fichier server.crt et server.key
Tout d'abord, générez le server.key en utilisant openssl.
cd /usr/src
openssl genrsa -des3 -out server.key 1024
La commande ci-dessus vous demandera le mot de passe. N'oubliez pas ce mot de passe. Vous en aurez besoin lors du démarrage ultérieur d'Apache.
Ensuite, générez un fichier de demande de certificat ( server.csr) à l'aide du fichier server.key ci-dessus.
openssl req -new -key server.key -out server.csr
Enfin, générez un certificat ssl auto-signé ( server.crt) en utilisant le server.key et server.csr ci-dessus fichier.
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Copiez le fichier server.key et server.crt vers l'emplacement approprié du répertoire de configuration Apache.
cp server.key /usr/local/Apache2/conf/
cp server.crt /usr/local/Apache2/conf/
6. Démarrez Apache
/usr/local/Apache2/bin/apachectl start
Si vous obtenez le message d'erreur ci-dessous:
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
Assurez-vous de décommenter la ligne ci-dessous dans httpd.conf:
vi /usr/local/Apache2/conf/httpd.conf
# LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Enfin, cela vous invitera à saisir le mot de passe de votre clé privée avant de démarrer Apache. Vérifiez que le processus Apache httpd s'exécute en arrière-plan.
ps -ef | grep http
Vous devriez voir quelque chose comme ça:
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
Par défaut, Apache SSL s'exécute sur le port 443. Ouvrez un navigateur Web et vérifiez que vous pouvez accéder à votre Apache en utilisant https: // {votre-adresse-ip}
J'espère que cette aide, sinon je vous conseille d'aller voir: http://jasonpowell42.wordpress.com/2013/04/05/install-Apache-2-4-4-on-centos-6-4 /
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
Cette erreur est reçue à l'étape make
si --with-included-apr-util
n'est pas spécifié dans ./configure