Apache trên repo mặc định của CentOS6.8 chỉ là Apache2.2.
Có nhiều cách để cài đặt Apache2.4 nhưng đơn giản nhất là cài từ repo SCL.
Dưới đây là memo lại các bước cài đặt.
Môi trường cài đặt:
Vagrant VirtualBox CentOS 6.8
Cài repo của Apache2.4
$ cd /etc/yum.repos.d
$ sudo curl -O https://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-httpd24.repo
Cài đặt Apache2.4
$ sudo yum install httpd24 httpd24-httpd-devel
Thư mục file thiết đặt của Apache2.4
Khác với Apache2.2 mặc định trong CentOS6, Apache2.4 được cài thông qua SCL được đặt trong thư mục /opt/rh/httpd24/
. Thư mục chứa file thiết đặt ở đường dẫn sau:
$ ll /opt/rh/httpd24/root/etc/httpd
total 12
drwxr-xr-x. 2 root root 4096 Aug 26 05:47 conf
drwxr-xr-x. 2 root root 4096 Aug 26 05:47 conf.d
drwxr-xr-x. 2 root root 4096 Aug 26 05:47 conf.modules.d
lrwxrwxrwx. 1 root root 34 Aug 26 05:47 logs -> /opt/rh/httpd24/root/var/log/httpd
lrwxrwxrwx. 1 root root 44 Aug 26 05:47 modules -> /opt/rh/httpd24/root/usr/lib64/httpd/modules
lrwxrwxrwx. 1 root root 34 Aug 26 05:47 run -> /opt/rh/httpd24/root/var/run/httpd
Có thể tạo symbolink /etc/httpd
trỏ tới thư mục chứa file thiết đặt ở trên để có thể thao tác giống với Apache2.2:
$ sudo ln -s /opt/rh/httpd24/root/etc/httpd /etc/httpd
Chỉ định ServerName mặc định
$ sudo vim /etc/httpd/conf/httpd.conf
# Tìm directive 'ServerName' và thay giá trị default bằng tên domain phù hợp
# Ví dụ:
ServerName example.com:80
Khởi động Apache2.4
$ sudo service httpd24-httpd start
Có thể tạo symbolink để tạo lệnh khởi động giống với Apache2.2:
$ sudo ln -s /etc/init.d/httpd24-httpd /etc/init.d/httpd
Sau khi tạo xong symbolic link, có thể khởi động Apache24 bằng lệnh giống với Apache2.2 như sau:
$ sudo service httpd start
Thêm đường dẫn file thực thi của httpd vào $PATH
Mặc định Apache2.4 được cài đặt theo cách trên không tự đưa đường dẫn file thực thi httpd
vào $PATH. Vấn đề này không ảnh hưởng đến việc sử dụng Apache. Tuy nhiên nhiều khi cần build các module cho Apache thì file thực thi httpd
này lại cần thiết.
Tạo symbolink trong /sbin
để trỏ đến file thực thi như sau:
$ sudo ln -s /opt/rh/httpd24/root/usr/sbin/httpd /sbin/httpd
Kiểm tra mọi thứ OK chưa bằng cách:
$ httpd -v
Server version: Apache/2.4.6 (Red Hat)
Server built: Sep 25 2013 05:25:46
Ngoài ra thay vì phải tạo symbolick link thủ công cho từng file như trên, có thể tự động thêm các đường dẫn tới các file cần thiết vào $PATH bằng lệnh sau:
$ scl enable httpd24 bash
Với lệnh trên, đường dẫn tới các file thực thi trong thư viện httpd-devel
cũng được tự động thêm vào $PATH.