资讯专栏INFORMATION COLUMN

在OpenSUSE下编译安装Nginx

Soarkey / 1854人阅读

摘要:准备工作进入继续操作编译安装库下载安装高版本会出现错误,建议选择版本低一些,因为暂不支持,可以使用版本。编译错误解决输入命令,然后重新编译。安装库下载安装安装解压即可编译安装常用编译选项说明指定的安装目录。默认情况下,该模块没有被构建。

原文来自http://www.hoohack.me/2016/01/27/compile-install-nginx-in-opensuse/

下载源码

在nginx官网上选择稳定的版本Nginx。解压到/usr/local/src/目录。

笔者使用的是nginx-1.9.9。

准备工作

进入/usr/local/src继续操作)

编译安装pcre库

下载:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

安装:

.configure
make && make install

高版本会出现No rule to make target "libpcre.la错误,建议选择版本低一些,因为nginx暂不支持,可以使用8.37版本。

编译错误:"aclocal-1.14" is missing on your system.

解决:输入命令touch configure.ac aclocal.m4 configure Makefile.am Makefile.in,然后重新编译。

安装zlib库

下载:http://zlib.net

安装:

.configure
make && make install
安装ssl

http://www.openssl.org/source/

解压即可

编译安装 常用编译选项说明

--prefix=PATH: 指定nginx的安装目录。默认/usr/local/nginx

--conf-path=PATH : 设置nginx.conf配置文件的路径。nginx允许通过命令行中的-c选项使用不同的配置文件启动。默认为prefix/conf/nginx.conf

--with-pcre : 设置PCRE库的源码路径

--with-zlib=PATH : 指定 zlib的安装目录。

--with-http_ssl_module : 使用https协议模块。默认情况下,该模块没有被构建。前提是openssl与openssl-devel已安装

--with-openssl :openssl解压目录

--pid-path:nginx运行时的进程ID保存目录

编译方案
./configure
--sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-http_ssl_module
--with-pcre=/usr/local/src/pcre-8.37
--with-zlib=/usr/local/src/zlib-1.2.8
--with-openssl=/usr/local/src/openssl-1.0.1c
编译安装
make && make install
测试安装结果

通过命令/usr/local/nginx/nginx运行nginx

在命令行下输入 netstat -ptnl | grep "nginx" 查看nginx是否启动成功

打开浏览器,输入localhost,如果看到下面的Welcome nginx页面说明安装成功了

添加启动脚本

安装完成后,如果需要在命令行下启动和停止nginx,或者添加开机启动任务,需要添加脚本到/etc/init.d/目录。

脚本文件:

#! /bin/sh

# Description: Startup script for nginx on CentOS、SuSE、redhat. cp it in /etc/init.d and
# chkconfig --add nginx && chkconfig nginx on
# then you can use server command control nginx
#
# chkconfig: 2345 08 99
# description: Starts, stops nginx

set -e

PATH=$PATH:/usr/local/nginx/sbin/
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/nginx.conf
PIDFILE=/usr/local/nginx/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

d_start() {
    $DAEMON -c $CONFIGFILE || echo -n " already running"
}

d_stop() {
    kill -QUIT `cat $PIDFILE` || echo -n " not running"
}

d_reload() {
    kill -HUP `cat $PIDFILE` || echo -n " can"t reload"
}

case "$1" in
    start)
        echo -n "Starting $DESC: $NAME"
        d_start
        echo "."
        ;;
    stop)
        echo -n "Stopping $DESC: $NAME"
        d_stop
        echo "."
        ;;
    reload)
        echo -n "Reloading $DESC configuration..."
        d_reload
        echo "reloaded."
        ;;
    restart)
        echo -n "Restarting $DESC: $NAME"
        d_stop
        sleep 1
        d_start
        echo "."
        ;;
    *)
    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
    exit 3
    ;;
esac

exit 0

使用方法:

vim /etc/init.d/nginx
chmod +x /etc/init.d/nginx
chkconfig nginx on
chkconfig --level 2345 nginx on

启动方法:

service nginx xxx
/etc/init.d/nginx xxx

参考文章:openSUSE Nginx 启动脚本

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39228.html

相关文章

  • 安装PHP】如何openSUSE42.1下编安装PHP7

    摘要:下载源码并解压进入正题,要编译安装首先当然要下载的源码。启动服务通过查看是否启动成功至此,就安装成功了,你也开始使用吧 首先推荐一篇文章PHP 7 Release Date Arrived: Will Developers Adopt PHP 7? - PHP Classes blog。 里面说到是否会去使用PHP7,就个人而言,我是毫不犹豫地使用的,但是生产环境就不是我说了算,所以只...

    Cheriselalala 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<