20/04/2019 · lms nginx canvas-lms

Canvas LMS Kurulumu

Canvas LMS Kurulumu (install canvas lms with nginx)

Kurulumu şuan için Ubuntu 14.04 64bit bir sunucu üzerinden gerçekleştireceğiz.
Ubuntu 14.04 ü kurmuş olduğunuzu var sayarak kurulumu anlatacağım.

Kurulum için sistem gereksinimleri;

Dual Core+ 3.0ghz +  
4GB+ RAM  
60GB HDD(SSD olmasında fayda)  
64-bit(Ubuntu 14.04)  

Sunucudaki tüm işlemleri sudo yetkileri verilmiş bir kullanıcı ile gerçekleştireceğiz.
Root kullanıcısı ile oturum açıp kurulumu gerçekleşmeye çalıştırdığınızda hata alacakınız.
Sunucumuzda ssh ile oturum açtıyoruz.

Sunucunun güncellemesi

sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y autoremove  

PostgreSQL Kurulumu

sudo apt-get update && sudo apt-get install -y postgresql-9.3  

PostgreSQL kuruldu ve servis kullanılabilir durumda.

PostgreSQL veritabanı ve kullanıcı oluşturma.

sudo -u postgres createuser canvas --no-createdb --no-superuser --no-createrole --pwprompt  

Bu aşamada canvas için bir kullanıcı oluşturacağız fakat sizden öncelikle sudo kullanıcısının şifresini isteyecektir daha sonra canvas kullanıcısı için bir şifre belirlemenizi isteyecektir.

[email protected]:~$ sudo -u postgres createuser canvas --no-createdb --no-superuser --no-createrole --pwprompt  
[sudo] password for eemirtekin:***
Enter password for new role:***  
Enter it again:***  

Veritabınını oluşturup ona canvas kullanıcısın yetkilerini veriyoruz.

sudo -u postgres createdb canvas_production --owner=canvas  

Git Kurulumu ve Canvas kurulum dosyalarının indirilmesi

sudo apt-get install git-core -y  
git clone https://github.com/instructure/canvas-lms.git canvas  
cd canvas  

Bu aşamada kurulum için githuta branch ı stable olarak değiştirmemiz gerekecek. Master dosyalar ile kuruluma devam ederseniz hatalar alabilirsiniz.

git branch --set-upstream-to origin/stable  

Kurulum için dosyaları /var/canvas dizinine taşıyacağız ve sudo kullanıcısının yetkilerini atayacağız.

sudo mkdir -p /var/canvas  
sudo chown -R eemirtekin /var/canvas  
cd canvas  
sudo cp -av * /var/canvas  
cd /var/canvas  

Ruby ve gerekli kütüphanelerin kurulumu

sudo apt-get install software-properties-common  
sudo apt-add-repository ppa:brightbox/ruby-ng  
sudo apt-get update  
sudo apt-get install ruby2.1 ruby2.1-dev zlib1g-dev libxml2-dev libsqlite3-dev libpq-dev libxmlsec1-dev curl make g++  

Node.js kurulumu

curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -  
sudo apt-get install nodejs  

Bundler ve Canvas kütüphanelerinin kurulumu

sudo gem install bundler --version 1.11.2  
bundle install --path vendor/bundle --without development test  

Dosyaları yedekliyoruz.

for config in amazon_s3 database \  
  delayed_jobs domain file_store outgoing_mail security external_migration; \
  do cp config/$config.yml.example config/$config.yml; done

Veri tabanı ayarları

cp config/database.yml.example config/database.yml  
nano config/database.yml

production:  
  adapter: postgresql
  encoding: utf8
  database: canvas_production
  host: localhost
  username: canvas
  password: doktor45
  timeout: 5000

Smtp Ayarları

cp config/outgoing_mail.yml.example config/outgoing_mail.yml  
nano config/outgoing_mail.yml

  production:
    address: "smtp.sendgrid.net"
    port: "587"
    user_name: "user"
    password: "*********"
    authentication: "plain" # plain, login, or cram_md5
    domain: "emirtekin.com"
    outgoing_address: "[email protected]"
    default_name: "Instructure Canvas"

Domain Ayarları

cp config/domain.yml.example config/domain.yml  
nano config/domain.yml

 production:
  domain: "canvas.emirtekin.com"
  # whether this instance of canvas is served over ssl (https) or not
  # defaults to true for production, false for test/development
  ssl: false
  # files_domain: "canvasfiles.example.com"

Güvenlik için gerekli ayarlar

  cp config/security.yml.example config/security.yml
  nano config/security.yml

  production:
  # replace this with a random string of at least 20 characters
  encryption_key: 0610afc39c93010e4e6f41b8898ddd131a3ddcaf

Veritabanı için tabloların oluşması

  RAILS_ENV=production bundle exec rake db:initial_setup

Aşağıdaki gibi bir yol izlemelisiniz.

  What email address will the site administrator account use? > [email protected]
  Please confirm > [email protected]
  What password will the site administrator use? > ********
  Please confirm > ********
  What do you want users to see as the account name? This should probably be the name of your organization. > Canvas LMS
  To help our developers better serve you, Instructure would like to collect some usage data about your Canvas installation. You can change this setting at any time.:
  1. Opt in
  2. Only send anonymized data
  3. Opt out completely
  > 1
  Thank you for participating!
  You can change this feature at any time by running the rake task 'rake db:configure_statistics_collection'
  .............................................................................
  Notifications Loaded
  .......................Scribd Mime Types added
  No notification files found for Assignment Publishing Reminder
  No notification files found for Assignment Grading Reminder
  No notification files found for Assignment Due Date Reminder
  No notification files found for Rubric Assessment Invitation
  No notification files found for Migration Export Ready
  No notification files found for Migration Import Finished
  No notification files found for Migration Import Failed

  Initial data loaded

Canvas Kullanıcısı oluşturma

sudo adduser --disabled-password --gecos canvas canvasuser  
cd /var/canvas  
mkdir -p log tmp/pids public/assets public/stylesheets/compiled  
touch Gemfile.lock  
sudo chown -R canvasuser config/environment.rb log tmp public/assets public/stylesheets/compiled Gemfile.lock config.ru  
npm install  
RAILS_ENV=production bundle exec rake canvas:compile_assets  
sudo chown canvasuser config/*.yml  
sudo chmod 400 config/*.yml  

Nginx kurulumu

sudo apt-get install nginx -y

# Install our PGP key and add HTTPS support for APT
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7  
sudo apt-get install -y apt-transport-https ca-certificates

# Add our APT repository
sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main > /etc/apt/sources.list.d/passenger.list'  
sudo apt-get update

# Install Passenger + Nginx
sudo apt-get install -y nginx-extras passenger  

Canvas için config

server  {  
               listen 80;
               server_name canvas.emirtekin.com;
               root /var/canvas/public;
                           charset utf-8;
                           include mime.types;
                           default_type application/octet-stream;
               access_log /var/log/nginx/canvas.access.log;
               error_log /var/log/nginx/canvas.error.log;
               passenger_enabled on;
               rails_env production;
        }

Nginx.conf

       passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
       passenger_ruby /usr/bin/ruby;
       passenger_max_pool_size 6;
       passenger_spawn_method smart-lv2;
       passenger_buffer_response on;
       passenger_min_instances 1;
       passenger_max_instances_per_app 0;
       passenger_pool_idle_time 300;
       passenger_max_requests 0;

Redis

production:  
  servers:
    - redis://localhost
  database: 0

Cache

production:  
  server:
    cache_store: redis_store
  database: 0
sudo ln -s /var/canvas/script/canvas_init /etc/init.d/canvas_init  
sudo update-rc.d canvas_init defaults  
sudo /etc/init.d/canvas_init start