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.