Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

NaviServer is a scalable, multithreaded web server / multi-protocol server written in C and Tcl. It can be easily extended in either language to create interesting web sites and services.

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
license.terms
NotificationsYou must be signed in to change notification settings

naviserver-project/naviserver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8,878 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is the source distribution ofNaviServer, a versatilemultiprotocol (HTTP(S), etc.) server written in C/Tcl. It is designedto be easily extended in either language, allowing you to buildinnovative and scalable websites and services.

Contents

  1. Introduction
  2. Documentation
  3. Versioning and Release Policy
  4. Compiling and Installing
  5. Install NSF/XOTcl
  6. Mailing Lists

1. Introduction

NaviServer is maintained, enhanced, and distributed freely by the opensource community. Download NaviServer or browse its bug/patch databaseon theSourceForge site.

The source code is hosted onGitHub andadditional information can be found on theTcl Wiki.

NaviServer is released as free and open source software. For fulllicensing details, please refer to thelicense.terms file includedin this distribution.


2. Documentation

Documentation is located in thedoc subdirectory. Although it isstill a work in progress, it will eventually be available in both Unixnroff format (ideal for viewing with theman command) and HTMLformat (compatible with any modern web browser).

The latest development documentation is available online at:
https://naviserver.sourceforge.io/n/toc.html

3. Versioning and Release Policy

NaviServer uses athree-digit version scheme:

  • MAJOR.MINOR.PATCH (for example,5.0.1)
  • ThePATCH level isstrictly for fixes — no new functionality or behavior changes.
  • New features and API changes appear only inMINOR orMAJOR releases.

Active Branches

  • release/4.99 - legacy maintenance
  • release/5.0 - current stable line
  • main - active development

Tagging

  • Each release is marked by anannotated Git tag in the form
    naviserver-MAJOR.MINOR.PATCH, for example:

    git checkout release/5.0# ...git tag -a naviserver-5.0.1 -m naviserver-5.0.1git push --follow-tags

    Tags always correspond to versions in arelease/* branch.

Development work happens onmain; bug fixes may be cherry-pickedinto the relevantrelease/* branch before tagging.


4. Compiling and Installing

NaviServer compiles and runs on various platforms, including FreeBSD,Linux, Solaris, macOS 10.2+, and Windows.

An install script for Unix platforms (including macOS) with extensiveconfiguration options is available from:
https://github.com/gustafn/install-ns

This script installs NaviServer with optionally extra NaviServermodules, it support different compile options such as choice the themalloc library, etc.

The following sections describe, in detail, how to compile and installNaviServer along with NSF.

4a. Download, Configure, Build and Install Tcl 8.5 or Better

If you already have Tcl installed and it was built with threadsenabled, you can use it. Otherwise, download the latest Tcl releasefromtcl-lang.org and follow the includedREADME instructions. You may install Tcl in the same directory whereyou plan to install NaviServer (e.g.,/usr/local/ns, recommended toavoid version mismatches) or in a separate location.

Note: NaviServer 4.99.* requires Tcl 8.5 or Tcl 8.6, while NaviServer 5 support Tcl 9.

On a Unix-like system, run:

gunzip< tcl8.6.17-src.tar.gz| tar xvf -cd tcl8.6.17/unix./configure --prefix=/usr/local/ns --enable-threads --enable-symbolsmake install

4b. Install GNU Make

The NaviServer makefiles require GNU Make. Verify your installationwith:

make -v

If necessary, install GNU Make fromgnu.org orget if via the package manager of your operating system.

4c. Download, Configure, Build, and Install NaviServer

One has two options to obtain the NaviServer source code: you caneither download tar releases from SourceForge, or obtain the sourcesfrom GitHub:

Tar releases:
https://sourceforge.net/projects/naviserver/files/

Latest development source code (Git repository):
https://github.com/naviserver-project/naviserver/

Compile from Tar Releases

To compile from a tar releases, execute:

gunzip< naviserver-5.0.0.tar.gz| tar xvf -cd naviserver-5.0.0./configure --prefix=/usr/local/ns --with-tcl=/usr/local/ns/lib --enable-symbolsmakesu -c'make install'

Configure Script Options:

  • --with-tcl=/usr/local/ns/lib
    LocatetclConfig.sh in the specified directory.

  • --with-zlib=/usr
    Specify the location of the zlib headers (e.g., install viayum install zlib-devel on Fedora).

  • --enable-symbols
    Build with debug symbols enabled (recommended).

  • --prefix=/usr/local/ns
    Set the installation directory for programs, man pages, and runtimefiles. If you compile Tcl, use also for Tcl the same--prefix location.

To compile with the Purify tool, run:

make PURIFY="purify -cache-dir=/home/joe/my-cache-dir" install

Seemake help for the provided options for testing etc.

Compile from Versions from GitHub

If you clone NaviServer from the GitHub repository, run./autogen.shwith the configure options (instead of./configure) to generate themakefiles. You will need recent versions of autoconf, automake, andthedtplite package fromtcllib to build the documentation.

Tip: Usemake build-doc to generate documentation; otherwise,make install may complain.

The other steps are identical to compilation from tar releases.

4d. Create and Edit a NaviServer Configuration File

By convention, NaviServer uses a configuration file namednsd.tcl.

cd /usr/local/nscp sample-config.tcl nsd.tclvi nsd.tcl

Sample files are provided:

  • nsd-config.tcl Simple configuration file, suitable for simple applications
  • sample-config.tcl includes every configuration option and its default value (remove unused options).
  • openacs-config.tcl NaviServer configuration file forOpenACS

Find the documentation for configuring NaviServer inadmin-config.

4e. Run the Server in a Shell

Test NaviServer by running:

cd /usr/local/ns./bin/nsd -f -t conf/nsd.tcl

The-f option runs the server in the foreground with important log messages directed to your terminal.

4f. Install Additional Modules

For tarball releases, compatible modules are provided viaSourceForge. For example, to install a module namednsfoo:

gunzip< naviserver-5.0.0-modules.tar.gz| tar xvf -cd modules/nsfoomake install NAVISERVER=/usr/local/ns

Alternatively, clone modules from GitHub:

git clone https://github.com/naviserver-project/nsfoo.gitcd nsfoomake install NAVISERVER=/usr/local/ns

For a complete list of modules, visitGitHub repositories.

4g. Compile for Windows with Msys + Mingw

Download the minimal environment fromhttps://sourceforge.net/projects/mingw/files/.

  1. Download the minimal Msys + Mingw environment fromSourceForge.

  2. Extract the zip file and follow the instructions inREADME.TXT to launch the msys shell.

  3. In the msys shell, run:

    cd /c/naviserver-5.0.0./configure --prefix=c:/naviserver --with-tcl=c:/naviserver/libmake install

Note: This example assumes Tcl is built with Mingw using the prefixc:/naviserver.

4h. Compile for Windows with MSVC

Update thetcl_64 andtcllib_64 variables inMakefile.win32 (in the NaviServer root directory) and check settings ininclude/Makefile.win32 (such asHAVE_OPENSSL_EVP_H andopenssl_64).

Run the appropriate Microsoft build environment script, for example:

  • "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
  • "%ProgramFiles%\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Debug /x64 /win7

Then execute:

nmake -f Makefile.win32

4i. Cross-Compiling for Windows 64-bit (using gcc/mingw)

Some Mingw settings may not be auto-detected. Specify them explicitly:

./configure --host=x86_64-w64-mingw32 --enable-64-bit \      --prefix=<path> --with-zlib=<path> --with-openssl=<path> --with-tcl=<path>/libCFLAGS="-DHAVE_INET_PTON -DHAVE_INET_NTON -DHAVE_GETADDRINFO -D_WIN32_WINNT=0x600" \      LDFLAGS="-static-libgcc" \      make LIBLIBS="-Wl,-Bstatic -lpthread -Wl,-Bdynamic"

Since the installation script does not expect the.exe extension, copy the executables without the extension as a workaround:

cp nsthread/nsthreadtest.exe nsthread/nsthreadtestcp nsd/nsd.exe nsd/nsdcp nsproxy/nsproxy.exe nsproxy/nsproxymake install

4j. (Optional) To Compile for Windows with Cygwin

(Instructions for compiling with Cygwin will be provided if available.)


5. Install NSF/XOTcl

NSF/XOTcl provides essential functions (e.g., cryptographic andreverse proxy capabilities) that enhance NaviServer’sfeatures. Although optional for users of Tcl 8.5, these components arerecommended for all installations.

Download NSF/XOTcl from eitherSourceForge orGitHub, and install it into theNaviServer source tree using the same--prefix as NaviServer:

git clone https://github.com/nm-wu/nsfcd nsf./configure --prefix=/usr/local/nsmakesudo make install

6. Mailing Lists

Join the NaviServer mailing lists to discuss user questions,configuration, development, and future directions. Visit:
https://sourceforge.net/p/naviserver/mailman/

Thank you for your interest in NaviServer. We hope you find itvaluable and look forward to your contributions on our mailing lists.


About

NaviServer is a scalable, multithreaded web server / multi-protocol server written in C and Tcl. It can be easily extended in either language to create interesting web sites and services.

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE
Unknown
license.terms

Stars

Watchers

Forks

Packages

No packages published

Contributors7


[8]ページ先頭

©2009-2026 Movatter.jp