2013-11-12

Установка и настройка Redmine, модуль Passenger

ВНИМАНИЕ! Оригинал статьи перекочевал на другой хостинг.


Отдаём папку public пользователю www-data:
~$ sudo chown www-data:www-data /home/redmine/redmine-2.3.1/public

удаляем старый конфиг дефолтного сайта апача и создаём новый конфиг для redmine:
~$ su - root
~$ a2dissite default
~$ touch /etc/apache2/sites-available/redmine

Собираем модуть passenger для apache2 (Если руби 2.0.0 ставим passenger 4.0.0 - gem install passenger –pre):
~$ su - redmine
~$ passenger-install-apache2-module -a

По окончанию установки passenger выдает, примерно, следующее:
LoadModule passenger_module /home/redmine/.rvm/gems/ruby-1.9.3-p327/gems/passenger-3.0.18/ext/apache2/mod_passenger.so
PassengerRoot /home/redmine/.rvm/gems/ruby-1.9.3-p327/gems/passenger-3.0.18
PassengerRuby /home/redmine/.rvm/wrappers/ruby-1.9.3-p327/ruby

Эти строки необходимо добавить в наш конфиг апача /etc/apache2/sites-available/redmine:
<VirtualHost *:80>
   ServerName tracker.example.com
   LoadModule passenger_module /home/redmine/.rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5/libout/apache2/mod_passenger.so
   PassengerRoot /home/redmine/.rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5
   PassengerDefaultRuby /home/redmine/.rvm/wrappers/ruby-1.9.3-p429/ruby

   DocumentRoot /home/redmine/redmine-2.3.1/public
   <Directory /home/redmine/redmine-2.3.1/public>
      # This relaxes Apache security settings.
      AllowOverride all
      # MultiViews must be turned off.
      Options -MultiViews
   </Directory>
</VirtualHost>

Подключим наш сайт:
~$ su - root
~$ a2ensite redmine
~$ service apache2 restart 

2012-09-09

Отключить спикер в Debian.

2012-05-05

пример запуска python скрипта с параметрами


Пример написания скрипта на python, который при запуске спросит у пользователя параметры. В данном скрипте обязательным параметром является '-u' или '--link'. Назначение скрипта - закачка файла по протоколу http и сохранение файла в файл по-умолчанию (update.tar.gz) или можно задать любое имя файла после ключа '-f'. Функцию загрузчика я взял по ссылке


#!/usr/bin/python
#-*- coding: utf8 -*-

def params():
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('-u', '--link',required=True, dest='URL',
                        help='Введите URL в кавычках.')
    parser.add_argument('-f', '--filename', required=False, dest='FILE',
                        help='Имя создавайемого файла. Если не задано, то используется update.tar.gz')
    args = parser.parse_args()
    URL = args.URL
    if args.FILE == None: FILE = 'update.tar.gz'
    else: FILE = args.FILE
    return URL, FILE

def download():
    import urllib, time
    start_t = time.time()
    def progress(bl, blsize, size):
        dldsize = min(bl*blsize, size)
        if size != -1:
            p = float(dldsize) / size
            try:
                elapsed = time.time() - start_t 
                est_t = elapsed / p - elapsed
            except:
                est_t = 0
                print "%6.2f %% %6.0f s %6.0f s %6i / %-6i bytes" % (p*100, elapsed, est_t, dldsize, size)
            else:
                print "%6i / %-6i bytes" % (dldsize, size)
    urllib.urlretrieve(params()[0], params()[1], progress)

download()

пример запуска:
#python uploader.py -u "http://cdimage.debian.org/debian-cd/6.0.4/amd64/iso-cd/debian-6.0.4-amd64-CD-1.iso" -f debian.iso
в результате в текущую директорию сохранится файл с названием 'debian.iso'


2012-04-05

Поиск и удаление пустых папок. Find.


Поиск пустых папок в текущей директории:
find . -type d -empty

А так, соответственно, можно удалить все пустые папки:
find . -type d -empty -exec rmdir {} \;