Browse Source

Added Phalcon to the installer

Skamander 12 years ago
parent
commit
84b2a54d04
1 changed files with 96 additions and 68 deletions
  1. 96 68
      installer.py

+ 96 - 68
installer.py

@@ -21,10 +21,11 @@ class Installer:
     # Prerequisites
     #######################################
     self.__run_command("sudo apt-get update", True)
-    self.__run_command("sudo apt-get upgrade", True)    
-    self.__run_command("sudo apt-get install build-essential libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev python-software-properties unzip git-core libcurl4-openssl-dev libbz2-dev libmysqlclient-dev mongodb-clients libreadline6-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev libgdbm-dev ncurses-dev automake libffi-dev htop libtool bison libevent-dev libgstreamer-plugins-base0.10-0 libgstreamer0.10-0 liborc-0.4-0 libwxbase2.8-0 libwxgtk2.8-0 libgnutls-dev libjson0-dev", True)
+    self.__run_command("sudo apt-get upgrade", True)
+    self.__run_command("sudo apt-get install build-essential libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev python-software-properties unzip git-core libcurl4-openssl-dev libbz2-dev libmysqlclient-dev mongodb-clients libreadline6-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev libgdbm-dev ncurses-dev automake libffi-dev htop libtool bison libevent-dev libgstreamer-plugins-base0.10-0 libgstreamer0.10-0 liborc-0.4-0 libwxbase2.8-0 libwxgtk2.8-0 libgnutls-dev libjson0-dev libmcrypt-dev", True)
 
     self.__run_command("cp ../config/benchmark_profile ../../.bash_profile")
+    self.__run_command("sudo sh -c \"echo '* soft nofile 4096' >> /etc/security/limits.conf\"")
 
     #######################################
     # Languages
@@ -33,9 +34,11 @@ class Installer:
     #
     # Erlang
     #
-    self.__run_command("curl -klO https://elearning.erlang-solutions.com/couchdb//rbingen_adapter//package_R16B_precise64_1361901944/esl-erlang_16.b-1~ubuntu~precise_amd64.deb")
-    self.__run_command("sudo /usr/bin/dpkg --install esl-erlang_16.b-1~ubuntu~precise_amd64.deb")
-
+    self.__run_command("sudo cp ../config/erlang.list /etc/apt/sources.list.d/erlang.list")
+    self.__run_command("wget -O - http://binaries.erlang-solutions.com/debian/erlang_solutions.asc | sudo apt-key add -")
+    self.__run_command("sudo apt-get update")
+    self.__run_command("sudo apt-get install esl-erlang", True)
+    
     #
     # Python
     #
@@ -92,7 +95,7 @@ class Installer:
 
     self.__run_command("wget --trust-server-names http://www.php.net/get/php-5.4.13.tar.gz/from/us1.php.net/mirror")
     self.__run_command("tar xvf php-5.4.13.tar.gz")
-    self.__run_command("./configure --with-pdo-mysql --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data", cwd="php-5.4.13")
+    self.__run_command("./configure --with-pdo-mysql --with-mysql --with-mcrypt --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data", cwd="php-5.4.13")
     self.__run_command("make", cwd="php-5.4.13")
     self.__run_command("sudo make install", cwd="php-5.4.13")
     self.__run_command("printf \"\\n\" | sudo pecl install apc-beta", cwd="php-5.4.13")
@@ -100,6 +103,18 @@ class Installer:
     self.__run_command("sudo cp ../config/php-fpm.conf /usr/local/lib/php-fpm.conf")
     self.__run_command("rm php-5.4.13.tar.gz")
 
+    # Composer
+    self.__run_command("curl -sS https://getcomposer.org/installer | php -- --install-dir=bin")
+
+    # Phalcon
+    self.__run_command("git clone git://github.com/phalcon/cphalcon.git")
+    self.__run_command("cd cphalcon/release")
+    self.__run_command("phpize")
+    self.__run_command("./configure --enable-phalcon")
+    self.__run_command("make && make install")
+    self.__run_command("echo 'extension=phalcon.so' | sudo tee -a /etc/php5/conf.d/phalcon.ini")
+    self.__run_command("php -i | grep phalcon")
+
     #
     # Haskell
     #
@@ -129,6 +144,14 @@ class Installer:
     self.__run_command("make", cwd="nginx-1.2.7")
     self.__run_command("sudo make install", cwd="nginx-1.2.7")
     
+    #
+    # Openresty (nginx with openresty stuff)
+    #
+    self.__run_command("curl http://openresty.org/download/ngx_openresty-1.2.7.5.tar.gz | tar xvz")
+    self.__run_command("./configure --with-luajit", cwd="ngx_openresty-1.2.7.5")
+    self.__run_command("make", cwd="ngx_openresty-1.2.7.5")
+    self.__run_command("sudo make install", cwd="ngx_openresty-1.2.7.5")
+    
     #
     # Gunicorn
     #
@@ -214,21 +237,27 @@ class Installer:
     self.__run_command("sudo pip install flask flask-sqlalchemy")
 
     ##############################
-    # Play
+    # Play 2
     ##############################
     self.__run_command("wget http://downloads.typesafe.com/play/2.1.1/play-2.1.1.zip")
     self.__run_command("unzip -o play-2.1.1.zip")
     self.__run_command("rm play-2.1.1.zip")
-
+    
     ##############################
-    # Vert.x
+    # Play 1
     ##############################
-    self.__run_command("curl http://vertx.io/downloads/vert.x-1.3.1.final.tar.gz | tar xvz")
+    self.__run_command("wget http://downloads.typesafe.com/releases/play-1.2.5.zip")
+    self.__run_command("unzip -o play-1.2.5.zip")
+    self.__run_command("rm play-1.2.5.zip")
+    self.__run_command("mv play-1.2.5/play play-1.2.5/play1")
+    
+    # siena
+    self.__run_command("play-1.2.5/play install siena", send_yes=True)
 
     ##############################
-    # WebGO
+    # Vert.x
     ##############################
-    self.__run_command("go/bin/go get github.com/hoisie/web")
+    self.__run_command("curl http://vertx.io/downloads/vert.x-1.3.1.final.tar.gz | tar xvz")
 
     ##############################
     # Yesod
@@ -266,61 +295,60 @@ class Installer:
 
     remote_script = """
 
-    ##############################
-    # Prerequisites
-    ##############################
-    yes | sudo apt-get update
-    yes | sudo apt-get install build-essential git libev-dev libpq-dev libreadline6-dev
-
-    ##############################
-    # MySQL
-    ##############################
-    sudo sh -c "echo mysql-server mysql-server/root_password_again select secret | debconf-set-selections"
-    sudo sh -c "echo mysql-server mysql-server/root_password select secret | debconf-set-selections"
-
-    yes | sudo apt-get install mysql-server
-
-    # use the my.cnf file to overwrite /etc/mysql/my.cnf
-    sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.orig
-    sudo mv my.cnf /etc/mysql/my.cnf
-    sudo restart mysql
-
-    # Insert data
-    mysql -uroot -psecret < create.sql
-
-    ##############################
-    # Weighttp
-    ##############################
-
-    git clone git://git.lighttpd.net/weighttp
-    cd weighttp
-    ./waf configure
-    ./waf build
-    sudo ./waf install
-    cd ~
-    
-    ##############################
-    # wrk
-    ##############################
-
-    git clone https://github.com/wg/wrk.git
-    cd wrk
-    make
-    sudo cp wrk /usr/local/bin
-    cd ~
-
-    ##############################
-    # MongoDB
-    ##############################
-    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
-    sudo cp config/10gen.list /etc/apt/sources.list.d/10gen.list
-    sudo apt-get update 
-    yes | sudo apt-get install mongodb-10gen
-    
-    sudo mv /etc/mongodb.conf /etc/mongodb.conf.orig
-    sudo mv mongodb.conf /etc/mongodb.conf
-    sudo restart mongodb
-    """
+##############################
+# Prerequisites
+##############################
+yes | sudo apt-get update
+yes | sudo apt-get install build-essential git libev-dev libpq-dev libreadline6-dev
+sudo sh -c "echo '* soft nofile 4096' >> /etc/security/limits.conf"
+
+##############################
+# MySQL
+##############################
+sudo sh -c "echo mysql-server mysql-server/root_password_again select secret | debconf-set-selections"
+sudo sh -c "echo mysql-server mysql-server/root_password select secret | debconf-set-selections"
+
+yes | sudo apt-get install mysql-server
+
+# use the my.cnf file to overwrite /etc/mysql/my.cnf
+sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.orig
+sudo mv my.cnf /etc/mysql/my.cnf
+sudo restart mysql
+
+# Insert data
+mysql -uroot -psecret < create.sql
+
+##############################
+# Weighttp
+##############################
+
+git clone git://git.lighttpd.net/weighttp
+cd weighttp
+./waf configure
+./waf build
+sudo ./waf install
+cd ~
+##############################
+# wrk
+##############################
+
+git clone https://github.com/wg/wrk.git
+cd wrk
+make
+sudo cp wrk /usr/local/bin
+cd ~
+
+##############################
+# MongoDB
+##############################
+sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
+sudo cp 10gen.list /etc/apt/sources.list.d/10gen.list
+sudo apt-get update
+yes | sudo apt-get install mongodb-10gen
+sudo mv /etc/mongodb.conf /etc/mongodb.conf.orig
+sudo mv mongodb.conf /etc/mongodb.conf
+sudo restart mongodb
+"""
 
     p = subprocess.Popen(self.benchmarker.ssh_string.split(" "), stdin=subprocess.PIPE)
     p.communicate(remote_script)
@@ -359,4 +387,4 @@ class Installer:
       pass
   ############################################################
   # End __init__
-  ############################################################
+  ############################################################