作者:我是来工作的程_586 | 来源:互联网 | 2014-05-28 09:40
I’verecentlybeendoingsometestinginlua,andhavebeencomparingtheresultstotheEdgeLinkConsultingCMSthatwe’vedesignedinPHP.Sofarthissolutionisabletoservesubstantially
I’ve recently been doing some testing in lua, and have been
comparing the results to the EdgeLink Consulting CMS that we’ve
designed in PHP. So far this solution is able to serve
substantially more requests per second than our current CMS.
However, we haven’t really spent much time optimizing the CMS. The
goal is to have a working copy first before any optimizations are
done. We’ve also been working on some eCommerce modules for the
platform.
With all that being said, I’d like to post a quick tutorial on
how I got this setup. It was quite the task. Although there was
a tutorial I
found to do the same task, it was a little bit confusing. My
tutorial will have a lot of the same steps, with some minor
adjustments. This tutorial is written at an intermediate level.
Some trivial steps have been omitted.
NOTE: This has been tested with Debian 5.0.4
(Stable)
Install nginx
apt-get install nginx
We’ll have to do some modifications later on to add the FastCGI
handler. For simplicity we will keep the web path to
“/var/www/nginx-default” and listen on port 8081 in case you have
another webserver running on port 80.
Install lua 5.1 (and WSAPI libraries)
apt-get install lua5.1 liblua5.1-wsapi-fcgi-0
liblua5.1-coxpcall0 liblua5.1-filesystem0
apt-get install liblua5.1-wsapi-doc
Can’t do much testing without this. Note: The second line is not
necessary if you are running Debian testing, and get
the
liblua5.1-wsapi-fcgi-1instead.
EDIT: You’ll notice that I added in
liblua5.1-filesystem0. Steve pointed out that there is a bug in
liblua5.1-wsapi-fcgi-0.
It doesn’t include it as a dependency. He reported this as a bug here,
and it was fixed in
liblua5.1-wsapi-fcgi-1.
Install spawn-fcgi
If you’re running Debian testing you may be able to get
spawn-fcgi through the distribution, however, I just downloaded it
and compiled from source.
wget
http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
tar -xzvf spawn-fcgi-1.6.3.tar.gz
cd spawn-fcgi-1.6.3.tar.gz
./configure
make
make install
Create a FastCGI Socket
spawn-fcgi -F 4 -u www-data -s /var/run/nginx-fcgi.sock -P
/var/run/nginx-fcgi.pid — /usr/bin/wsapi.fcgi
For the sake of simplicity, we will just spawn it manually for
now. If you’re feeling crafty you can add the above line to the
start condition in
/etc/init.d/nginx, and the line below to
the stop condition. You can add both of them to restart.
cat /var/run/nginx-fcgi.pid | xargs -n 1 kill
Create a lua file in
/var/www/nginx-default/
In this tutorial, use
hello.lua. You can
change this to whatever, you want but just make sure you make the
modification in the nginx configuration below as well.
Edit
/etc/nginx/sites-available/default
Now let’s add the code that will point nginx to the correct
file. For simplicity, we will simply point it to hello.lua. You can
change this to anything, or simply modify the code to accept any
*.lua file, as seen in the tutorial listed above. Here is the top
of my default file:
listen 8081 default;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
fastcgi_pass
unix:/var/run/nginx-fcgi.sock;
fastcgi_param SCRIPT_FILENAME
“/var/www/nginx-default/hello.lua”;
fastcgi_param PATH_INFO
$request_uri;
fastcgi_param QUERY_STRING
$query_string;
fastcgi_param REQUEST_METHOD
$request_method;
fastcgi_param CONTENT_TYPE
$content_type;
fastcgi_param CONTENT_LENGTH
$content_length;
}
Restart nginx
/etc/init.d/nginx restart
Visit http://localhost:8081/
Congratulations! You should now see hello.lua.
If you have any problems, post in the comments. Stay tuned
for