Cài đặt các công cụ biên dịch
# yum groupinstall " Development Tools" -y # yum install expat-devel pcre pcre-devel openssl-devel -y
Chọn phiên bản Apache từ nguồn https://github.com/apache/httpd/releases
Ví dụ chọn 2.4.37
lấy được link tải tag.gz
là: https://github.com/apache/httpd/archive/2.4.37.tar.gz
Tải về máy lưu tại file: httpd-2.4.37.tar.gz
bằng tool wget, nếu chưa có wget thì cài vào bằng lệnh yum install wget -y
# wget https://github.com/apache/httpd/archive/2.4.37.tar.gz -O httpd-2.4.37.tar.gz
Chọn phiên bản Apache Portable Runtime tại https://github.com/apache/apr
Ví dụ chọn 1.6.5
với link tải là: https://github.com/apache/apr/archive/1.6.5.tar.gz, tải về lưu với tên ví dụ là apr-1.6.5.tar.gz
# wget https://github.com/apache/apr/archive/1.6.5.tar.gz -O apr-1.6.5.tar.gz
Chọn phiên bản Apache Portable Runtime util tại https://github.com/apache/apr-util/releases
Ví dụ chọn bản 1.6.1
với link tải là: https://github.com/apache/apr-util/archive/1.6.1.tar.gz
tải về lưu với tên đặt là apr-util-1.6.1.tar.gz
# wget https://github.com/apache/apr-util/archive/1.6.1.tar.gz -O apr-util-1.6.1.tar.gz
Build Apache
Giải nén tất cả 3 file vừa tải về ở trên
# tar -xzf httpd-2.4.37.tar.gz # tar -xzf apr-1.6.5.tar.gz # tar -xzf apr-util-1.6.1.tar.gz
Có 3 thư mục tương ứng giải nén ra, bạn kiểm tra bằng lệnh apr-1.6.5
, apr-util-1.6.1
, httpd-2.4.37
(kiểm tra bằng ls
)
Cần di chuyển thư mục apr-1.6.5
vào httpd-2.4.37/srclib/apr
Cần di chuyển thư mục apr-util-1.6.1
vào httpd-2.4.37/srclib/apr-util
# mv apr-1.6.5 httpd-2.4.37/srclib/apr # mv apr-util-1.6.1 httpd-2.4.37/srclib/apr-util
Như vậy thư mục httpd-2.4.37
đã chứa mã nguồn để sẵn sàng biên dịch thành mã máy.
Di chuyển vào thư mục httpd-2.4.37
và chạy tạo thiết lập bằng script ./buildconf
# cd httpd-2.4.37 # ./buildconf
Tiếp theo chạy configure
, thiết lập tham số xem tại configure
Muốn kích hoạt module, tính năng nào dùng thiết lập --enable-FEATURE
, --enable-MODULE=shared, --enable-MODULE=static
Chọn MPM cho Apache: --with-mpm=event
hoặc --with-mpm=MPM
hoặc --with-mpm=worker
Chọn thư mục cài đặt ví dụ chọn /etc/httpd
thêm vào --prefix=/etc/httpd
# --prefix=/etc/httpd --exec-prefix=/etc/httpd --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc/httpd/conf --includedir=/usr/include/apache --libexecdir=/usr/lib/apache --libdir=/usr/lib/apache --mandir=/usr/share/man --datadir=/var/www --localstatedir=/var --with-included-apr --with-mpm=event --with-ssl=/usr --enable-ssl
Sau khi chạy nó sẽ chuẩn bị các thiết lập, các module để tiến hành biên dịch thành mã máy. Nếu các tham số tùy chọn nhập vào dòng lệnh ./configure
quá nhiều (ví dụ bạn tùy biến cao, lựa chọn disable/enable nhiều loại module) thì bạn tạo ra một file chạy ví dụ file configure.custome
bằng lệnh touch configure.custome
, chmod nó chạy được bằng lệnh chmod +x configure.custome
, mở file đó ra thêm nội dung dạng sau:
#!/bin/sh "./configure" \ "--prefix=/etc/httpd" \ "--exec-prefix=/etc/httpd" \ "--bindir=/usr/bin" \ "--sbindir=/usr/sbin" \ "--sysconfdir=/etc/httpd/conf" \ "--with-pcre=/usr/local" \ "--includedir=/usr/include/apache" \ "--libexecdir=/usr/lib/apache" \ "--libdir=/usr/lib/apache" \ "--mandir=/usr/share/man" \ "--datadir=/var/www" \ "--localstatedir=/var" \ "--with-included-apr" \ "--with-mpm=event" \ "--with-ssl=/usr" \ "--enable-ssl"
Sau đó lưu lại, lúc này thay vì chạy ./configure
bạn chạy ./configure.custome
Thi hành lệnh
# make
Thi hành biên dịch và cài đặt
# make install
Tạo User/Group mặc định chạy Apache
Tạo gropup và user tên: apache
/ apache
# sudo groupadd apache # sudo useradd apache -g apache --no-create-home --shell /sbin/nologin
Sửa file httpd.conf
, tìm tơi dùng User, Group và cập nhật user/group mới
User apache Group apache
Thiết lập dịch vụ Apache với CentOS 6
Tạo file dịch vụ
# vim /etc/init.d/httpd
#!/bin/sh # # Startup script for the Apache Web Server # # chkconfig: 345 85 15 # description: Apache is a World Wide Web server. It is used to serve \ # HTML files and CGI. # processname: httpd # pidfile: /var/run/httpd.pid # config: /etc/httpd/conf/httpd.conf # Source function library. . /etc/rc.d/init.d/functions # See how we were called. case "$1" in start) echo -n "Starting httpd: " daemon httpd -DSSL echo touch /var/lock/subsys/httpd ;; stop) echo -n "Shutting down http: " killproc httpd echo rm -f /var/lock/subsys/httpd rm -f /var/run/httpd.pid ;; status) status httpd ;; restart) $0 stop $0 start ;; reload) echo -n "Reloading httpd: " killproc httpd -HUP echo ;; *) echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 esac exit 0
Sau đó chmod
cho phép chạy, và thiết lập tự động chạy
chmod +x /etc/init.d/httpd service httpd start chkconfig httpd on
Thiết lập dịch vụ Apache với CentOS 7
Tạo Unit dịch vụ với file httpd.service
và biên tập nội dung như sau
# vi /etc/systemd/system/httpd.service
[Unit] Description=The Apache HTTP Server After=network.target [Service] Type=forking ExecStart=/usr/sbin/httpd -k start ExecReload=/usr/sbin/httpd -k graceful ExecStop=/usr/sbin/httpd -k graceful-stop PIDFile=/var/logs/httpd.pid KillSignal=SIGCONT PrivateTmp=true [Install] WantedBy=multi-user.target
Thiết lập chạy cùng hệ thống
# systemctl daemon-reload # systemctl start httpd # systemctl enable httpd
Firewall
# firewall-cmd --add-service=http --permanent # firewall-cmd --add-service=https --permanent
Sau đó khởi động lại Firewall
# firewall-cmd --reload
Truy cập địa chỉ host để kiểm tra