By Alvin Alexander. Last updated: March 22, 2017
I just got a new CentOS Linux server at Linode, and installed a bunch of software on it that I need to run a couple of Drupal websites and a Play Framework website, and here are my very cryptic notes from that installation process. (Sorry, these are more for me than for you.)
First, I installed all the necessary Linux stuff:
---++ Enable Firewall, Secure ssh
# vi /etc/ssh/sshd_config
# ----------------------------------------------------------
# AJA: see http://wiki.centos.org/HowTos/Network/SecuringSSH
# AJA: see http://centoshelp.org/security/securing-sshd/
# ----------------------------------------------------------
Port MYPORT
AllowUsers MYUSER
LoginGraceTime 1m
PermitRootLogin no
MaxAuthTries 6
MaxStartups 4
# service sshd restart
---++ Add Non-root User
# adduser USERNAME
# passwd USERNAME
Next, I added the software I needed, including PHP stuff for Drupal and Java and MongoDB stuff for my Play Framework app:
---++ Add Software * install java i don't think i've installed the right jvm, so i've skipped that here. it looks like i should have done this: http://www.if-not-true-then-false.com/2010/install-sun-oracle-java-jdk-jre-7-on-fedora-centos-red-hat-rhel/ * install mongo http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux/ * install nginx followed these notes: http://www.cyberciti.biz/faq/install-nginx-centos-rhel-6-server-rpm-using-yum-command/ (1) wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm (2) yum install nginx * PLAY! + MONGO http://blog.knoldus.com/2012/08/02/working-with-play-framework-using-scala-and-mongodb/ http://mongodb.github.io/casbah/tutorial.html * install mysql yum install mysql-server chkconfig mysqld on service mysqld start /usr/bin/mysql_secure_installation PASSWORD: MYPASSWORD * install php yum install php-mysql php-devel php-gd php-xmlrpc * install apache/httpd yum install httpd chkconfig httpd on chkconfig --list httpd later: need to install 'rpaf' module to get IP addresses working (http://stderr.net/apache/rpaf/)
After this, I started to configure the added software:
---++ NGINX
Play Config Info: http://www.playframework.com/documentation/2.1.x/HTTPServer
Enable nginx service:
# chkconfig nginx on
Commands:
# service nginx start
# service nginx stop
# service nginx restart
# service nginx status
# service nginx reload
Edit:
/etc/nginx/nginx.conf
More config:
# mount the myapp client, which is served up by apache
location /client {
proxy_pass http://myappclient:8001/;
proxy_set_header X-Real-IP $remote_addr;
}
# mount the myapp server, which is served up by the play framework console
location /server {
proxy_pass http://myappserver:8002/;
proxy_set_header X-Real-IP $remote_addr;
}
---++ MongoDB
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux/
http://docs.mongodb.org/manual/faq/fundamentals/
http://docs.mongodb.org/manual/faq/diagnostics/
* "Uses .rpm packages as the basis of the installation. 10gen publishes packages of the MongoDB releases as .rpm packages for easy installation and management for users of CentOS..."
# Step 1:
# vi /etc/yum.repos.d/10gen.repo
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1
# Step 2:
# yum install mongo-10gen mongo-10gen-server
# Configuration:
* configuration file: /etc/mongod.conf
* control script: /etc/rc.d/init.d/mongod
* This MongoDB instance will store its data files in the /var/lib/mongo and its log files in /var/log/mongo, and run using the mongod user account.
* Commands
* To start on reboot: chkconfig mongod on
* service mongod start
* service mongod restart
* service mongod stop
* Using/Testing
* mongo (client command)
* (ugh: starting and stopping is insanely slow on A2)
WARNING: You are running in OpenVZ. This is known to be broken!!!
* On the Production server
...
$ mongo
mongo> use mydb
mongo> db.users.save({"email":"MY_EMAIL_ADDRESS", "name":"Alvin Alexander", "password":"MYPASSWORD"})
...
There was more to it than this, such as the necessary firewall configuration, but these are most of my notes.

