浏览代码

More mediagoblin

Bob Mottram 11 年前
父节点
当前提交
14dddaf522
共有 1 个文件被更改,包括 87 次插入11 次删除
  1. 87
    11
      install-freedombone.sh

+ 87
- 11
install-freedombone.sh 查看文件

@@ -2720,23 +2720,29 @@ function install_mediagoblin {
2720 2720
       return
2721 2721
   fi
2722 2722
 
2723
-  apt-get -y --force-yes install git python python-dev python-lxml python-imaging python-virtualenv python-gst-1.0 libjpeg8-dev sqlite3 libapache2-mod-fcgid gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-libav python-numpy python-scipy libsndfile1-dev
2724
-  useradd mediagoblin
2723
+  apt-get -y --force-yes install git-core python python-dev python-lxml python-imaging python-virtualenv
2724
+  apt-get -y --force-yes install python-gst-1.0 libjpeg8-dev sqlite3 libapache2-mod-fcgid gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-libav python-numpy python-scipy libsndfile1-dev
2725
+  apt-get -y --force-yes install postgresql postgresql-client python-psycopg2
2726
+
2727
+  sudo -u postgres createuser -A -D mediagoblin
2728
+  sudo -u postgres createdb -E UNICODE -O mediagoblin mediagoblin
2729
+
2730
+  adduser --system mediagoblin
2725 2731
 
2726 2732
   if [ ! -d /srv/$MEDIAGOBLIN_DOMAIN_NAME ]; then
2727 2733
       mkdir -p /srv/$MEDIAGOBLIN_DOMAIN_NAME
2728 2734
   fi
2729
-  chown -hR mediagoblin:mediagoblin /srv/$MEDIAGOBLIN_DOMAIN_NAME
2730
-
2735
+  chown -hR mediagoblin: /srv/$MEDIAGOBLIN_DOMAIN_NAME
2736
+  cd /srv/$MEDIAGOBLIN_DOMAIN_NAME
2731 2737
   su -c "git clone git://gitorious.org/mediagoblin/mediagoblin.git /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin" - mediagoblin
2732
-  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin; git submodule init" - mediagoblin
2733
-  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin; git submodule update" - mediagoblin
2738
+  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin; git submodule init" - mediagoblin
2739
+  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin; git submodule update" - mediagoblin
2740
+  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin; virtualenv --system-site-packages ." - mediagoblin
2734 2741
 
2735
-  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin; virtualenv --system-site-packages ." - mediagoblin
2736
-  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin; ./bin/python setup.py develop" - mediagoblin
2737
-  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin; ./bin/easy_install flup" - mediagoblin
2738
-  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin; cp mediagoblin.ini mediagoblin_local.ini" - mediagoblin
2739
-  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin; cp paste.ini paste_local.ini" - mediagoblin
2742
+  #su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin; ./bin/python setup.py develop" - mediagoblin
2743
+  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin; ./bin/easy_install flup" - mediagoblin
2744
+  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin; cp mediagoblin.ini mediagoblin_local.ini" - mediagoblin
2745
+  su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin; cp paste.ini paste_local.ini" - mediagoblin
2740 2746
 
2741 2747
   # update the dynamic DNS
2742 2748
   if [ $MEDIAGOBLIN_FREEDNS_SUBDOMAIN_CODE ]; then
@@ -2750,6 +2756,76 @@ function install_mediagoblin {
2750 2756
       echo 'WARNING: No freeDNS subdomain code given for mediagoblin. It is assumed that you are using some other dynamic DNS provider.'
2751 2757
   fi
2752 2758
 
2759
+  echo 'server {' > /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2760
+  echo ' #################################################' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2761
+  echo ' # Stock useful config options, but ignore them :)' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2762
+  echo ' #################################################' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2763
+  echo ' include /etc/nginx/mime.types;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2764
+  echo '' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2765
+  echo ' autoindex off;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2766
+  echo ' default_type  application/octet-stream;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2767
+  echo ' sendfile on;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2768
+  echo '' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2769
+  echo ' # Gzip' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2770
+  echo ' gzip on;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2771
+  echo ' gzip_min_length 1024;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2772
+  echo ' gzip_buffers 4 32k;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2773
+  echo ' gzip_types text/plain text/html application/x-javascript text/javascript text/xml text/css;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2774
+  echo '' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2775
+  echo ' #####################################' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2776
+  echo ' # Mounting MediaGoblin stuff' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2777
+  echo ' # This is the section you should read' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2778
+  echo ' #####################################' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2779
+  echo '' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2780
+  echo ' # Change this to update the upload size limit for your users' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2781
+  echo ' client_max_body_size 8m;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2782
+  echo '' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2783
+  echo ' # prevent attacks (someone uploading a .txt file that the browser' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2784
+  echo ' # interprets as an HTML file, etc.)' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2785
+  echo ' add_header X-Content-Type-Options nosniff;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2786
+  echo '' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2787
+  echo " server_name mediagoblin.example.org www.mediagoblin.example.org;" >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2788
+  echo " access_log /var/log/nginx/$MEDIAGOBLIN_DOMAIN_NAME.access.log;" >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2789
+  echo " error_log /var/log/nginx/$MEDIAGOBLIN_DOMAIN_NAME.error.log;" >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2790
+  echo '' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2791
+  echo " # MediaGoblin's stock static files: CSS, JS, etc." >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2792
+  echo ' location /mgoblin_static/ {' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2793
+  echo "    alias /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin/static/;" >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2794
+  echo ' }' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2795
+  echo '' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2796
+  echo ' # Instance specific media:' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2797
+  echo ' location /mgoblin_media/ {' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2798
+  echo "    alias /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/user_dev/media/public/;" >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2799
+  echo ' }' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2800
+  echo '' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2801
+  echo ' # Theme static files (usually symlinked in)' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2802
+  echo ' location /theme_static/ {' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2803
+  echo "    alias /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/user_dev/theme_static/;" >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2804
+  echo ' }' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2805
+  echo '' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2806
+  echo ' # Plugin static files (usually symlinked in)' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2807
+  echo ' location /plugin_static/ {' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2808
+  echo "    alias /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/user_dev/plugin_static/;" >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2809
+  echo ' }' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2810
+  echo '' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2811
+  echo ' # Mounting MediaGoblin itself via FastCGI.' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2812
+  echo ' location / {' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2813
+  echo '    fastcgi_pass 127.0.0.1:26543;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2814
+  echo '    include /etc/nginx/fastcgi_params;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2815
+  echo '' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2816
+  echo "    # our understanding vs nginx's handling of script_name vs" >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2817
+  echo "    # path_info don't match :)" >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2818
+  echo '    fastcgi_param PATH_INFO $fastcgi_script_name;' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2819
+  echo '    fastcgi_param SCRIPT_NAME "";' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2820
+  echo ' }' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2821
+  echo '}' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf
2822
+
2823
+  ln -s /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf /etc/nginx/conf.d/
2824
+  ln -s /srv/$MEDIAGOBLIN_DOMAIN_NAME/nginx.conf /etc/nginx/sites-enabled/
2825
+
2826
+  sudo /etc/init.d/nginx restart
2827
+  sudo /etc/rc.d/nginx restart
2828
+
2753 2829
   echo 'install_mediagoblin' >> $COMPLETION_FILE
2754 2830
 }
2755 2831