-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathec2_setup.notes.txt
193 lines (138 loc) · 5.61 KB
/
ec2_setup.notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
Start w/ alestic Ubuntu 11.04 or latest 64 bit.
instance type: m1 large, 7.5GB
Firewall: SSH, HTTP
sudo apt-get -y update
sudo apt-get -y install emacs
sudo apt-get -y install git
sudo apt-get -y install apache2
sudo apt-get -y install python
sudo apt-get -y install python-pip python-dev build-essential
sudo apt-get -y install libapache2-mod-wsgi
sudo pip install --upgrade pip
sudo pip install django
PostgreSQL 9.0 on Ubuntu 11.04
------------------------------
sudo add-apt-repository ppa:pitti/postgresql
sudo apt-get update
sudo apt-get -y install postgresql-9.0 postgresql-client-9.0
sudo apt-get -y install libpq-dev
PostgreSQL 9.x on Ubuntu 11.10+
-------------------------------
sudo apt-get -y install postgresql-9.1 postgresql-client-9.1
sudo apt-get -y install libpq-dev
Python postgres client
----------------------
sudo pip install psycopg2
NetworkX
--------
sudo pip install networkx
Java
----
sudo apt-get -y install openjdk-6-jdk
Altervatively, use the sun JDK
------------------------------
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get -y install sun-java6-jdk
sudo update-alternatives --config java
Jetty
-----
sudo apt-get -y install jetty
sudo apt-get -y install libjetty-extra
Sunburnt, python client for Solr
--------------------------------
sudo pip install sunburnt
sudo apt-get -y install libxml2 libxml2-dev
sudo apt-get -y install libxslt1.1 libxslt1-dev
sudo pip install httplib2
sudo pip install lxml
Setup postgres & populate DB
----------------------------
scp -i ~/ec2/cbare-work-2.pem network_portal.dump.2011.10.24.gz [email protected]:/home/ubuntu/network_portal
sudo emacs /etc/postgresql/9.1/main/pg_hba.conf
# change ident or peer to trust for postgres
# change peer to md5 for local connections
sudo /etc/init.d/postgresql restart
psql -U postgres
create database network_portal
create user, grant privileges
create user joe_mamma with password 'password';
gunzip < network_portal.dump.2011.10.24.gz | psql -U postgres --dbname network_portal
Solr
----
// sudo apt-get -y install solr-jetty (old version 1.4.1)
curl -O http://mirror.metrocast.net/apache/lucene/solr/3.5.0/apache-solr-3.5.0.tgz
// extract into /home/ubuntu/network_portal/apache-solr-3.5.0/
tar -xzvf apache-solr-3.5.0.tgz
// start Solr server (how best to do this in production??)
java -Dsolr.solr.home="/home/ubuntu/network_portal/network_portal/solr" -Dsolr.install.dir="/home/ubuntu/network_portal/apache-solr-3.5.0/" -jar start.jar
// tell Solr to re-index
curl http://localhost:8983/solr/dataimport?command=full-import
Set up Apache WSGI
------------------
wsgi.py=
import os
import sys
import django
# print >> sys.stderr,"\n"*4
# print >> sys.stderr,"~"*100
# print >> sys.stderr,"Django version = " + str(django.VERSION)
# print >> sys.stderr,"Python version = " + str(sys.version_info)
# print >> sys.stderr,"~"*100
path = os.path.dirname(os.path.dirname(__file__)).replace('\\','/')
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'web_app.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Set up Apache conf
------------------
sudo emacs /etc/apache2/httpd.conf
WSGIScriptAlias / /home/ubuntu/network_portal/network_portal/web_app/wsgi.py
WSGIPythonPath /home/ubuntu/network_portal/network_portal/web_app
<Directory /home/ubuntu/network_portal/network_portal/web_app>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
Alias /robots.txt /home/ubuntu/network_portal/network_portal/web_app/static/robots.txt
Alias /favicon.ico /home/ubuntu/network_portal/network_portal/web_app/static/favicon.ico
Alias /media/ /home/ubuntu/network_portal/network_portal/media/
Alias /static/ /home/ubuntu/network_portal/network_portal/web_app/static/
<Directory /home/ubuntu/network_portal/network_portal/web_app/static>
Order deny,allow
Allow from all
</Directory>
<Directory /home/ubuntu/network_portal/network_portal/media>
Order deny,allow
Allow from all
</Directory>
<IfModule mod_proxy.c>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /solr/select http://localhost:8983/solr/select
ProxyPassReverse /solr/select http://localhost:8983/solr/select
ProxyPass /solr/suggest http://localhost:8983/solr/suggest
ProxyPassReverse /solr/suggest http://localhost:8983/solr/suggest
</IfModule>
sudo /etc/init.d/apache2 restart
Solr-Jetty config
-----------------
curl -O http://jdbc.postgresql.org/download/postgresql-9.1-901.jdbc4.jar
** modify port in to standard solr port /etc/jetty/jetty.xml
<Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set>
** add postgres jdbc driver to Solr's lib directory
sudo ln -s solr/lib/postgresql-9.1-901.jdbc4.jar /usr/share/solr/WEB-INF/lib/
/usr/share/jetty$ sudo -u jetty java -jar /usr/share/jetty/start.jar
cd /home/ubuntu/network_portal/apache-solr-3.4.0/example
java -Dsolr.solr.home="/home/ubuntu/network_portal/network_portal/solr" -Dsolr.install.dir="/home/ubuntu/network_portal/apache-solr-3.4.0/" -jar start.jar
Reverse Proxy Solr through Apache
---------------------------------
cd /etc/apache2/mods-enabled/
sudo ln -s ../mods-available/proxy_http.load .
sudo ln -s ../mods-available/proxy.load .
Make sure proxy stuff is in /etc/apache2/httpd.conf