Erlang(1)Install and Introduction
Erlang(1)Install and Introduction
1. Install the latest Erlang based on Sources
>wget http://www.erlang.org/download/otp_src_R16B03-1.tar.gz
Unzip the file
>tar zxvf otp_src_R16B03-1.tar.gz
>cd otp_src_R16B03-1
>export LANG=C
>./configure --prefix=/Users/carl/tool/erlang-r16b03-1
>make
>sudo make install
Check the shell version
>bin/erl
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:2:2] [async-threads:10] [hipe] [kernel-poll:false] Eshell V5.10.4 (abort with ^G)
Soft link the tool directory
>sudo ln -s /Users/carl/tool/erlang-r16b03-1 /opt/erlang-5.10.4
>sudo ln -s /opt/erlang-5.10.4 /opt/erlang
>vi ~/.profile
export PATH=/opt/erlang/bin:$PATH
>. ~/.profile
Verify the Installation
>erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4
Or we can enter the erlang console
>erl
Use Control + G, q + Enter to exit the console mode.
2. Erlang Introduction
Concurrency Oriented, Message Oriented, Functional
OTP Open Telecom Platform
3. Build and Install Yaws
The Erlang Yaws web server performs the same basic tasks as Nginx and Apache.
Apache with mod_php, each request is handled by a process or thread. The classic Common Gateway Interface(CGI) would start a new process for every request.
These threads and processes are constructions of the OS and are relatively heavyweight objects.
In Erlang the processes are owned not by the OS, but by the language runtime.
Fetch the source codes
>git clone https://github.com/klacke/yaws.git
>cd yaws
>autoconf
-bash: autoconf: command not found
Solution:
Install autoconf
>wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
>tar xzvf autoconf-2.69.tar.gz
>cd autoconf-2.69
>./configure --prefix=/Users/carl/tool/autoconf-2.69
>make
>make install
>sudo ln -s /Users/carl/tool/autoconf-2.69 /opt/autoconf-2.69
>sudo ln -s /opt/autoconf-2.69 /opt/autoconf
Add to the PATH in .profile
Go on Install Yaws
>autoconf
But I do not know the version of the github source codes. I plan to do it from downloading the sources.
>wget http://yaws.hyber.org/download/yaws-1.98.tar.gz
>tar zxvf yaws-1.98.tar.gz
>cd yaws-1.98
>./configure --prefix=/Users/carl/tool/yaws-1.98
>make
Error Message:
gcc -c -fPIC -g -O2 -I/usr/include/security -m64 -DHAVE_SENDFILE -I"/Users/carl/tool/erlang-r16b03-1/lib/erlang/usr/include" setuid_drv.c gcc -m64 -bundle -fPIC -flat_namespace -undefined suppress -o ../priv/lib/setuid_drv.so setuid_drv.o gcc -c -g -O2 -I/usr/include/security -m64 -DHAVE_SENDFILE -I"/Users/carl/tool/erlang-r16b03-1/lib/erlang/usr/include" epam.c epam.c:2:10: fatal error: 'pam_appl.h' file not found #include <pam_appl.h>
Solution:
http://stackoverflow.com/questions/21149481/fails-to-build-yaws-on-mac-os-x-10-9
I begin to try with this command
>sudo xcode-select —install
This command will try to install Command Lne Tools. And it will place some files we need into this directory /usr/include/security
Go on with install Yaws.
>make
>make install
After the Installation, all the info will show as follow:
** etc files went into /Users/carl/tool/yaws-1.98/etc ** executables went into /Users/carl/tool/yaws-1.98/bin ** library files went into /Users/carl/tool/yaws-1.98/lib/yaws ** var files went into /Users/carl/tool/yaws-1.98/var ** default docroot went into /Users/carl/tool/yaws-1.98/var/yaws/www
>sudo ln -s /Users/carl/tool/yaws-1.98 /opt/yaws-1.98
>sudo ln -s /opt/yaws-1.98 /opt/yaws
Start the server
>yaws -i
or
>yaws —daemon
How to configure it
http://yaws.hyber.org/yman.yaws?page=yaws.conf
Comments out the yaws.conf
#<auth> # realm = foobar # dir = / # user = foo:bar # user = baz:bar #</auth>
Visit the Server again
>sudo bin/yaws -i
And you can visit the URL http://localhost/ to access your /tmp directory.
References:
http://blog.csdn.net/xushiweizh/article/details/3466739
http://www.erlang.org/
http://www.erlang.org/doc/installation_guide/INSTALL.html
Sillycat
http://sillycat.iteye.com/blog/1575002
http://sillycat.iteye.com/blog/1565771
http://sillycat.iteye.com/blog/2037218
https://github.com/ChicagoBoss/ChicagoBoss/wiki/Comparison-of-Erlang-Web-Frameworks
http://inaka.net/blog/2013/11/06/your-first-erlang-app-canillita/
http://www.infoq.com/cn/news/2008/06/vinoski-erlang-rest
http://wbj0110.iteye.com/blog/1984410
http://ninenines.eu/docs/en/cowboy/HEAD/guide/
http://yaws.hyber.org/
http://www.cnblogs.com/yourihua/category/329317.html
Install autoconf
http://jsdelfino.blogspot.com/2012/08/autoconf-and-automake-on-mac-os-x.html
http://www.gnu.org/software/autoconf/
http://stackoverflow.com/questions/21149481/fails-to-build-yaws-on-mac-os-x-10-9