一、編譯安裝
編譯環境準備
主機 | 系統 |
---|---|
A | centos6.10 |
編譯所需的httpd、apr、apr-util
apr-1.7.0.tar.gzapr-util-1.6.1.tar.gzhttpd-2.4.39.tar.gz
1.安裝編譯所需要的軟件
yum install gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree screen lsof tcpdump wget ntpdate net-tools iotop bc zip unzip nfs-utils expat-devel -y
2.解壓所有壓縮包
[root@CentOS6 ~]# tar -xf apr-util-1.6.1.tar.gz [root@CentOS6 ~]# tar -xf apr-1.7.0.tar.gz [root@CentOS6 ~]# tar -xf httpd-2.4.39.tar.gz
3.將apr及apr-util復制到httpd-2.4.39/srclib目錄中
[root@CentOS6 ~]# cp -a apr-1.7.0 httpd-2.4.39/srclib/apr[root@CentOS6 ~]# cp -a apr-util-1.6.1 httpd-2.4.39/srclib/apr-util
4.編譯httpd
[root@CentOS6 ~]# cd httpd-2.4.39[root@CentOS6 httpd-2.4.39]# ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr=/root/httpd-2.4.39/srclib/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
5.安裝
[root@CentOS6 ~]# make && make install
6.為httpd創建系統用戶
[root@CentOS6 ~]# useradd -r -s /sbin/nologin apache
7.修改配置文件,將httpd運行的用戶和組改為apache
[root@CentOS6 ~]# vim /app/httpd24/conf/httpd.conf User apacheGroup apache
8.配置環境變量
[root@CentOS6 ~]# echo "PATH=/app/httpd24/bin:$PATH" > /etc/profile.d/httpd24.sh
9.設置為開機啟動
[root@CentOS6 ~]# vim /etc/rc.d/rc.local /app/httpd24/bin/apachectl startansible-playbook編譯安裝httpd2.4
ansible 編譯安裝httpd
一、創建角色目錄結構
[root@localhost data]# mkdir -pv roles/httpd2.4/{tasks,files,vars,templates,handlers}mkdir: created directory ‘roles'mkdir: created directory ‘roles/httpd2.4'mkdir: created directory ‘roles/httpd2.4/tasks'mkdir: created directory ‘roles/httpd2.4/files'mkdir: created directory ‘roles/httpd2.4/vars'mkdir: created directory ‘roles/httpd2.4/templates'mkdir: created directory ‘roles/httpd2.4/handlers'
二、創建task
進入tasks目錄
[root@localhost ~]# cd /data/roles/httpd2.4/tasks/
1.為httpserver創建安裝目錄
[root@localhost tasks]# vim createdir.yaml - name: Create dir file: path=/app state=directory
2.解壓httpd,apr,apr-util到遠程主機
[root@localhost tasks]# vim ungzhttpd.yaml - name: ungz httpd24 unarchive: src=httpd.tar.gz dest=/app copy=yes- name: ungz apr to srclib unarchive: src=apr.tar.gz dest=/app/httpd-2.4.39/srclib copy=yes- name: ungz apr-util to srclib unarchive: src=apr-util.tar.gz dest=/app/httpd-2.4.39/srclib copy=yes
3.對解壓后的apr.tar.gz及apr-util.tar.gz做軟連接
[root@localhost tasks]# vim links.yaml- name: link apr-util file: src=/app/httpd-2.4.39/srclib/apr-util-1.6.1 dest=/app/httpd-2.4.39/srclib/apr-util state=link- name: link apr file: src=/app/httpd-2.4.39/srclib/apr-1.7.0 dest=/app/httpd-2.4.39/srclib/apr state=link
4.編譯httpd
[root@localhost tasks]# vim configure.yaml - name: configer httpd shell: /app/httpd-2.4.39/configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr=/root/httpd-2.4.39/srclib/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
5.make
[root@localhost tasks]# vim make.yaml - name: make shell: make
6.make install
[root@localhost tasks]# vim install.yaml - name: install shell: make install
7.設置開機自啟
[root@localhost tasks]# vim chkconf.yaml - name: chkconfig lineinfile: path=/etc/rc.d/rc.local insertafter="^touch.*" line="/app/httpd24/bin/apachectl start"
8.添加apache用戶
[root@localhost tasks]# vim useradd.yaml - name: add user user: name=apache system=yes shell=/sbin/nologin create_home=no
9.調用模板文件生成環境變量及httpd配置文件
[root@localhost tasks]# vim template.yaml- name: httpd config template: src=httpd.conf.j2 dest=/app/httpd24/conf/httpd.conf- name: Path template: src=httpd.sh.j2 dest=/etc/profile.d/httpd.sh
10.讀取環境變量
[root@localhost tasks]# vim source.yaml - name: source path shell: source /etc/profile.d/httpd.sh
11.啟動服務
[root@localhost tasks]# vim service.yaml - name: start service shell: apachectl start
12.創建main.yaml
[root@localhost tasks]# vim main.yaml - include: createdir.yaml- include: ungzhttpd.yaml- include: links.yaml- include: configure.yaml- include: make.yaml- include: install.yaml- include: chkconf.yaml- include: useradd.yaml- include: template.yaml- include: source.yaml- include: service.yaml
三、創建playbook
[root@localhost data]# vim role_httpd.yaml [root@localhost tasks]# cd /data[root@localhost data]# vim role_httpd.yaml ---- hosts: all roles: - role: httpd2.4
四、目錄結構
[root@localhost data]# tree /data/data├── role_httpd.yaml└── roles └── httpd2.4 ├── files #此目錄下存放所有需要解壓的包,注意去掉版本號 │ ├── apr.tar.gz │ ├── apr-util.tar.gz │ └── httpd.tar.gz ├── handlers ├── tasks │ ├── chkconf.yaml │ ├── configure.yaml │ ├── createdir.yaml │ ├── install.yaml │ ├── links.yaml │ ├── main.yaml │ ├── make.yaml │ ├── service.yaml │ ├── source.yaml │ ├── template.yaml │ ├── ungzhttpd.yaml │ └── useradd.yaml ├── templates #此目錄下存放配置文件和環境變量的模板文件 │ ├── httpd.conf.j2 │ └── httpd.sh.j2 └── vars
五、執行playbook
[root@localhost ansible]# ansible-playbook role_httpd.yaml
總結
以上所述是小編給大家介紹的CentOS 6.10源碼編譯及使用ansible編譯安裝httpd2.4.39,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
新聞熱點
疑難解答