On this how to, we'll be using the simplest witty example: hello
I assumed you already had installed a CentOS 6.x minimal x86_64.
The Steps
- Login as a sudoer user.
- Append EPEL repository by creating the file /etc/yum.repos.d/epel.repo with the following content:
- Install required packages: nginx, witty and CentOS development kit:
- Go to Wt's examples directory and edit the CMakeLists.txt archive:
- Run CMake specifying FastCGI support & copy resulting binary to nginx document root:
- Create a new archive /etc/sysconfig/spawn-fcgi-hello.wt with the following content:
- Allow nginx to write at /var/spool/wt/run/:
- Launch hello app via spawn-fcgi:
- Create a new file /etc/nginx/conf.d/wt.conf w/ the following content:
- Restart nginx:
- Visit http://HOST:9091 and enjoy it!
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 gpgcheck=0
$ sudo yum install nginx $ sudo yum install wt $ sudo yum install fcgi $ sudo yum install spawn-fcgi $ sudo yum install wt-devel wt-examples # Only for development env $ sudo yum groupinstall "Development Tools" # Only for development env $ sudo yum install nano # Only for development env
$ cd /usr/lib64/Wt/examples/hello $ sudo nano CMakeLists.txtand replace
WT_ADD_EXAMPLE(hello.wt hello.C)by:
ADD_EXECUTABLE(hello.wt hello.C)
TARGET_LINK_LIBRARIES(hello.wt ${EXAMPLES_CONNECTOR})
$ sudo rm -rf target $ sudo mkdir -p target $ cd target $ sudo cmake ../ -DEXAMPLES_CONNECTOR=wtfcgi -DCONNECTOR_FCGI=yes -DCONNECTOR_HTTP=no $ sudo make $ sudo cp -a hello.wt /usr/share/nginx/html/
FCGI_SOCKET=/var/run/hello.wt.socket FCGI_PROGRAM=/usr/share/nginx/html/hello.wt FCGI_USER=nginx FCGI_GROUP=nginx FCGI_EXTRA_OPTIONS="-M 0700" OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/hello.wt.socket.pid -- $FCGI_PROGRAM"
$ sudo chgrp nginx /var/spool/wt/run/ $ sudo chmod g+w /var/spool/wt/run/
$ source /etc/sysconfig/spawn-fcgi-hello.wt $ spawn-fcgi $OPTIONSnow the FastCGI is running and waiting.
server {
listen 9091;
server_name _;
# by default relative to /usr/share/nginx/html
location / {
access_log /var/log/nginx/nginx-fastcgi-access.log;
gzip off;
# the full path /usr/share/nginx/html/hello.wt
if ($uri !~ "^/hello.wt/$") {
fastcgi_pass unix:/var/run/hello.wt.socket;
}
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
$ service ngnix restart
Thank-you for posting this!
ReplyDeleteWhen I do "sudo make" in step 5, the first of many errors is "/usr/include/Wt/WApplication:22:25: error: boost/any.hpp: No such file or directory", but when I do "yum install boost" I get "Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.mirror.freedomvoice.com
* epel: linux.mirrors.es.net
* extras: mirrors.easynews.com
* updates: centos.mirrors.hoobly.com
Setting up Install Process
Package boost-1.41.0-11.el6_1.2.x86_64 already installed and latest version
Nothing to do"
Do you know what to do? Thanks again!
The former package includes /usr/include/boost/any.hpp. I forgot to include it in the installation steps.
DeleteJust run:
$ yum install boost-devel
Thanks for the feedback!
I appreciate the detailed research and thoughtful presentation.azure devops course
ReplyDeleteAn IBM DataStage course provides comprehensive knowledge of enterprise ETL solutions and large-scale data integration. This ibm datastage course covers DataStage architecture, job design, data transformation, debugging, and deployment strategies. Learners gain practical exposure through live projects and coding exercises.
ReplyDeleteThanks for sharing this useful information about MuleSoft online training. A well-designed online course can help developers understand API development, data integration, and automation while building valuable skills for a career in enterprise integration.
ReplyDeletemulesoft online training