From 0d9cfbfd3b08330a74939c1c13be641a41373c42 Mon Sep 17 00:00:00 2001 From: jar3b Date: Sat, 12 Mar 2016 21:00:30 +0300 Subject: [PATCH] Auto-create necessary folders for Sphinx. Mod Readme.md --- README.md | 12 ++++++------ aore/miscutils/sphinx.py | 8 ++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d8e19d5..538c068 100644 --- a/README.md +++ b/README.md @@ -135,8 +135,8 @@ _Внимание_! Только Python 2.7+ (на 3+ не тестировал) ## Настройка ### Первоначальная настройка базы данных 1. Настроим конфиг, для этого необходимо изменить параметры в Вашем wsgi-entrypoint (в моем случае _passenger_wsgi.py_): -прописать параметры доступа к базе, демону Sphinx и путь, куда будут сохраняться данные Sphinx; по этому пути -дополнительно необходимо создать 3 папки: log, run и data. Все доступные настройки можно увидеть в _aore/config/common.py_ +в строке `from config import *` измените _config_ на имя Вашего конфигурационного файла (создается рядом с wsgi app), +пример конфига находится в файле _config.example.py_. 2. Создадим базу: - из архива `sudo -u phias python manage.py -b create -s /tmp/fias_xml.rar` - из директории `sudo -u phias python manage.py -b create -s /tmp/fias_xml_unpacked` @@ -144,14 +144,14 @@ _Внимание_! Только Python 2.7+ (на 3+ не тестировал) - Также, можно указать конкретную версию ФИАС _только_ при http загрузке, с ключом `--update-version `, где num - номер версии ФИАС, все доступные версии можно получить, выполнив `manage.py -v`. - **Внимание**! Если Вы инициализируете БД из архива или директории, для последующего корректного обновления необходимо - прописать номер версии ФИАС, которую Вы только что установили, в базе приложения, таблица CONFIG + Внимание! Если Вы инициализируете БД из архива или директории, при создании или обновлении базы у Вас будет + запрошен номер устанавливаемой версии ФИАС. 3. Проиндексируем Sphinx: - - Windows: `python manage.py -c -i C://sphinx//indexer.exe -o C://sphinx//sphinx.conf` + - Windows: `python manage.py -c -i C:\sphinx\bin\indexer.exe -o C:\sphinx\sphinx.conf` - Debian: `sudo python manage.py -c -i indexer -o /usr/local/sphinx/etc/sphinx.conf` 4. Затем запустим searchd: - Windows: - - Устанавливаем службу: `C:\Sphinx\bin\searchd --install --config C:\Sphinx\sphinx.conf.in --servicename sphinxsearch` + - Устанавливаем службу: `C:\Sphinx\bin\searchd --install --config C:\Sphinx\sphinx.conf --servicename sphinxsearch` - и запускаем: `net start sphinxsearch` - Debian: `sudo searchd --config /usr/local/sphinx/etc/sphinx.conf` 5. Настроим WSGI server, я использую nginx + passenger (см. файл passenger_wsgi.py). Вы можете использовать любое diff --git a/aore/miscutils/sphinx.py b/aore/miscutils/sphinx.py index 04a66e7..011dd82 100644 --- a/aore/miscutils/sphinx.py +++ b/aore/miscutils/sphinx.py @@ -21,6 +21,14 @@ class SphinxHelper: if not os.path.exists(folders.temp): os.makedirs(folders.temp) + # оздаем 3 папки для Сфинкса + if not os.path.exists(sphinx_conf.var_dir+'/run'): + os.makedirs(sphinx_conf.var_dir+'/run') + if not os.path.exists(sphinx_conf.var_dir+'/log'): + os.makedirs(sphinx_conf.var_dir+'/log') + if not os.path.exists(sphinx_conf.var_dir+'/data'): + os.makedirs(sphinx_conf.var_dir+'/data') + def configure_indexer(self, indexer_binary, config_filename): logging.info("Start configuring Sphinx...") self.index_binary = indexer_binary