安装编译需要的gcc gcc-c++ 和rpmbuild
[root@LookBack-Node ~]# yum install gcc gcc-c++ rpm-build
添加个普通用户
[root@LookBack-Node ~]# name=rpmbuild
[root@LookBack-Node ~]# useradd $name
设定普通用户的rpmbuild根目录
[root@LookBack-Node ~]# echo "%_topdir /home/$name/rpmbuild" >> /home/$name/.rpmmacros
[root@LookBack-Node ~]# chown $name.$name /home/$name/.rpmmacros
添加sudo权限
[root@LookBack-Node ~]# echo "$name ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
[root@LookBack-Node ~]# su - $name
创建必要的目录
[rpmbuild@LookBack-Node ~]$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
[rpmbuild@LookBack-Node ~]$ rpmbuild --showrc | grep _topdir
-14: _builddir %{_topdir}/BUILD
-14: _buildrootdir %{_topdir}/BUILDROOT
-14: _rpmdir %{_topdir}/RPMS
-14: _sourcedir %{_topdir}/SOURCES
-14: _specdir %{_topdir}/SPECS
-14: _srcrpmdir %{_topdir}/SRPMS
-14: _topdir /home/rpmbuild/rpmbuild
[rpmbuild@LookBack-Node ~]$ cd rpmbuild/SOURCES/
下载Nginx的src rpm包
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ wget http://nginx.org/packages/mainline/centos/7/SRPMS/nginx-1.9.9-1.el7.ngx.src.rpm
解包
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ rpm2cpio nginx-1.9.9-1.el7.ngx.src.rpm |cpio -dvi
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ ls
COPYRIGHT nginx-1.9.9-1.el7.ngx.src.rpm nginx.conf nginx-debug.sysconf nginx.service nginx.suse.logrotate nginx.upgrade.sh
logrotate nginx-1.9.9.tar.gz nginx-debug.service nginx.init.in nginx.spec nginx.sysconf nginx.vh.default.conf
给Nginx源码包添加自己需要的东西,这里我加了三个模块
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ tar xf nginx-1.9.9.tar.gz
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ cd nginx-1.9.9/
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES/nginx-1.9.9]$ git clone https://github.com/aperezdc/ngx-fancyindex.git
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES/nginx-1.9.9]$ git clone https://github.com/cuber/ngx_http_google_filter_module.git
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES/nginx-1.9.9]$ git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES/nginx-1.9.9]$ cd ..
将新的源码目录打包
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ tar zcf nginx-1.9.9.tar.gz nginx-1.9.9/
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ tar zcf nginx-1.9.9.tar.gz nginx-1.9.9
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ rm -rf nginx-1.9.9
备份原有的spec,下载新的spec,当然这里自己重新写也是可以的
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ mv nginx.spec{,_bak}
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ wget http://www.dwhd.org/wp-content/uploads/2015/12/nginx.spec
对必备文件做适量修改让其适配我们自己的spec文件
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ sed -i 's@/usr/sbin/nginx@/usr/local/nginx/sbin/nginx@' nginx-debug.service nginx-debug.sysconf nginx.service nginx.sysconf nginx.upgrade.sh
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ sed -i 's@/etc/nginx@/usr/local/nginx/conf@' nginx-debug.service nginx-debug.sysconf nginx.init.in nginx.service nginx.sysconf nginx.upgrade.sh nginx.conf
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ sed -i 's@/usr/share/nginx/html@/data/wwwroot/default@' nginx.vh.default.conf
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ sed -ri 's/^(user).*/1 www;/;s/^(worker_processes).*/1 auto;/' nginx.conf
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ sed -ri 's@^(s+include).*@1 vhost/*.conf;@' nginx.conf
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ sed -i 's@/usr/sbin/%PROVIDES%@/usr/local/nginx/sbin/%PROVIDES%@' nginx.init.in
开始构建rpm包,当系统环境缺少这些依赖的时候会做提示
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ rpmbuild -ba nginx.spec
错误:构建依赖失败:
openssl-devel >= 1.0.1 被 nginx-1:1.9.9-2.el7.centos.ngx.x86_64 需要
zlib-devel 被 nginx-1:1.9.9-2.el7.centos.ngx.x86_64 需要
pcre-devel 被 nginx-1:1.9.9-2.el7.centos.ngx.x86_64 需要
gd-devel 被 nginx-1:1.9.9-2.el7.centos.ngx.x86_64 需要
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ sudo yum install -y openssl-devel zlib-devel pcre-devel gd-devel
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ rpmbuild -ba nginx.spec
安装自己制作的rpm包
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ sudo yum install -y /home/rpmbuild/rpmbuild/RPMS/x86_64/nginx-1.9.9-2.el7.centos.ngx.x86_64.rpm
安装好之后来看看具体情况
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ . /etc/profile.d/nginx.sh
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ which nginx
/usr/local/nginx/sbin/nginx
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ yum list all |grep nginx.*@
nginx.x86_64 1:1.9.9-2.el7.centos.ngx @/nginx-1.9.9-2.el7.centos.ngx.x86_64
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ nginx -V
nginx version: nginx/1.9.9
built by gcc 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf
--error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid
--lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
--http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=www --group=www --with-http_ssl_module --with-http_realip_module
--with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module
--with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module
--with-http_stub_status_module --with-http_auth_request_module --with-http_image_filter_module --with-threads --with-stream
--with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6
--with-http_v2_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
--param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --add-module=ngx_http_substitutions_filter_module
--add-module=ngx_http_google_filter_module --add-module=ngx-fancyindex
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ rpm -qi nginx
Name : nginx
Epoch : 1
Version : 1.9.9
Release : 2.el7.centos.ngx
Architecture: x86_64
Install Date: 2015年12月11日 星期五 01时03分20秒
Group : System Environment/Daemons
Size : 2215625
License : 2-clause BSD-like license
Signature : (none)
Source RPM : nginx-1.9.9-2.el7.centos.ngx.src.rpm
Build Date : 2015年12月11日 星期五 00时59分25秒
Build Host : LookBack-Node.dwhd.org
Relocations : (not relocatable)
Vendor : nginx inc.
URL : http://nginx.org
Summary : High performance web server
Description :
nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server.
add : --with-http_v2_module
--with-http_image_filter_module
--add-module=ngx_http_google_filter_module
--add-module=ngx_http_substitutions_filter_module
--add-module=ngx-fancyindex
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ rpm -ql nginx
/data/wwwroot/default
/data/wwwroot/default/50x.html
/data/wwwroot/default/index.html
/etc/logrotate.d/nginx
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/local/nginx
/usr/local/nginx/conf
/usr/local/nginx/conf/fastcgi.conf.default
/usr/local/nginx/conf/fastcgi_params
/usr/local/nginx/conf/fastcgi_params.default
/usr/local/nginx/conf/koi-utf
/usr/local/nginx/conf/koi-win
/usr/local/nginx/conf/mime.types
/usr/local/nginx/conf/mime.types.default
/usr/local/nginx/conf/nginx.conf
/usr/local/nginx/conf/nginx.conf.default
/usr/local/nginx/conf/scgi_params
/usr/local/nginx/conf/scgi_params.default
/usr/local/nginx/conf/uwsgi_params
/usr/local/nginx/conf/uwsgi_params.default
/usr/local/nginx/conf/vhost
/usr/local/nginx/conf/vhost/default.conf
/usr/local/nginx/conf/win-utf
/usr/local/nginx/doc/nginx-1.9.9
/usr/local/nginx/doc/nginx-1.9.9/COPYRIGHT
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx-debug
/usr/local/sysconfig/nginx
/usr/local/sysconfig/nginx-debug
/var/cache/nginx
/var/log/nginx
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$
启动试试
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ sudo systemctl enable nginx.service
ln -s '/usr/lib/systemd/system/nginx.service' '/etc/systemd/system/multi-user.target.wants/nginx.service'
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ sudo systemctl start nginx.service
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ sudo systemctl status nginx.service
nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
Active: active (running) since 五 2015-12-11 01:41:27 CST; 5s ago
Docs: http://nginx.org/en/docs/
Process: 43638 ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
Process: 43636 ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 43640 (nginx)
CGroup: /system.slice/nginx.service
├─43640 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
├─43641 nginx: worker process
└─43642 nginx: worker process
12月 11 01:41:27 LookBack-Node.dwhd.org systemd[1]: Starting nginx - high performance web server...
12月 11 01:41:27 LookBack-Node.dwhd.org nginx[43636]: nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
12月 11 01:41:27 LookBack-Node.dwhd.org nginx[43636]: nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
12月 11 01:41:27 LookBack-Node.dwhd.org nginx[43636]: nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
12月 11 01:41:27 LookBack-Node.dwhd.org nginx[43638]: nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
12月 11 01:41:27 LookBack-Node.dwhd.org systemd[1]: Started nginx - high performance web server.
[rpmbuild@LookBack-Node ~/rpmbuild/SOURCES]$ curl localhost
If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.
For online documentation and support please refer to
nginx.org.
Commercial support is available at
nginx.com.
Thank you for using nginx.
add : --with-http_v2_module
--with-http_image_filter_module
--add-module=ngx_http_google_filter_module
--add-module=ngx_http_substitutions_filter_module
--add-module=ngx-fancyindex
[root@02748dd85f09 /]#
凡尔赛法环免广告版 最新版v1.69.1
下载天煞异种 安卓版v1.0.21
下载十三月 (Undecember)最新官方中文版v3.26.0200
下载我不是废柴无限99999钻999999金币游戏 不减反增版v1.2.16
下载我的女友是声优免广告 安卓版v1
我的女友是声优免广告是一款非常好玩的模拟经营类手游,玩家在游
石器帝国去广告版 v8
石器帝国免广告版是游戏的破解版本,在该版本中为玩家去除了广告
校园恋爱模拟器真人版去广告版 v0.0.7
校园恋爱模拟器真人版免广告版是游戏的破解版本,在该版本中为玩
教练我要开球馆内置菜单修改器 安卓版v1.5.4
教练我要开球馆内购版是一款模拟经营类游戏,玩家们将在游戏中创
我的游轮无限砖石 安卓版v1.7.0
我的游轮无限金币钻石版是一款模拟经营类游戏,你将成为一艘游轮