Установка livestreet в директорію, відмінну від web, daily notes

Знадобилося мені встановити LiveStreet 0.5.1 на свій VDS. але оскільки апача у мене немає, то зіткнувся з проблемою .htaccess. А саме. htaccess не підтримує nginx. тому nginx запускається вже з готовим конфіг (зроблено для поліпшення швидкодії). Сам же LiveStreet рясніє файлик .htaccess такого змісту:

Для початку встановлюємо LiveStreet звичайним чином в WebDIR (він створить таблички в БД і конфіги). Після цього починаємо курочіть - загальна структура публічної папки буде така:

Установка livestreet в директорію, відмінну від web, daily notes

Виходить вона досить просто - всі непотрібні папки з повними шляхами переносяться в «приватну» папку, тут залишаються тільки необхідні з Web файли. Я залишив index.php, папку uploads; в папці templates залишилися тільки папка cache і папка з картинками з теми (у мене це skin / new-jquery / images), так само залишилася частина бібліотек, які можуть бути викликані з Web через AJAX або подібні способи. Бібліотеки ділив так: все що містять файл .htaccess - приватні, всі інші залишаємо. Таким чином в приватній папці утворилася наступна структура:

Установка livestreet в директорію, відмінну від web, daily notes

Тепер поправимо конфиг nginx - у мене він буде виглядати так:

Для всіх плагінів, ресурси для яких треба тягнути з папки плагіна, додали відповідний обробник nginx. Для інших скриптів все більш ніж зазвичай. Тепер Хачім сам движок:

1. /private_html/config/config.php. додаємо:

2. /private_html/config/config.local.php. правимо шляху:

Як path.root.server тепер приватна папка.

path.public.server - ми додали параметр публічної папки.

path.public.cache - шлях до папки кеша в публічній папці.

sys.cache.dir - шлях до тимчасової директорії (повинна бути не доступна з Web).

Замінюємо всі path.root.server на path.public.server.

Замінюємо всі path.root.server на path.public.server.

Додамо до класу властивість (в будь-яке місце до початку методів):

В кінці функції додаємо:

Шукаємо функцію Compress:

У функції замінюємо рядок:

Шукаємо функцію GetRealpath

замінюємо return realpath ($ sPath); на наступне:

Шукаємо функцію GetWebPath:

замінюємо її вміст на наступне:

шукаємо функцію GetServerPath:

замінюємо її вміст на наступне:

Тепер все що встановлюються плагіни треба класти в папку / private_html / plugins та активувати як зазвичай. Це взагалі-то все, але є деякі складності, породжені нашими Хакамі - деякі криві плагіни перестають працювати;). Прикладом такої проблеми може бути часткове падіння плагіна aceadminpanel. Виправляється це елементарно:

У файлі /private_html/plugins/aceadminpanel/classes/actions/ActionAdmin.class.php шукаємо функцію _callAdminAddon:

У ній перед рядком:

Більшість полігонів працює «з коробки» і в допив не потребує.

Навігація по публікаціям

Ой мамо ... навіщо ж так складно?
я зробив влоб - склав список каталогів де є .htaccess і заніс їх до списку deny. справ на хвилину

location / index index.php;
if (! -e $ request_filename) rewrite ^ (/.*) $ /index.php?q=$1 last;
break;
>
>

* ^. +. (Jpg | jpeg | gif | css | png | js | ico | xml | htm) $ access_log off;
log_not_found off;
expires max;
>

^ / (Classes / actions / | classes / blocks / | classes / hooks / | classes / modules / | config / | engine / classes / | engine / lib / external / CSSTidy-1.3 / | engine / lib / external / DbSimple / | engine / lib / external / DklabCache / | engine / lib / external / Jevix / | engine / lib / external / JSMin-1.1.1 / | engine / lib / external / kcaptcha / fonts / | engine / lib / external / phpMailer / | engine / lib / external / Smarty / | engine / lib / external / Sphinx / | engine / lib / external / XXTEA / | include / cron / | logs / | plugins / page / classes / | plugins / page / config / | plugins / page / templates / | plugins / profiler / classes / | plugins / profiler / config / | plugins / profiler / templates / | templates / | tmp / | uploads) deny all;
>

\ .php $ include / etc / nginx / fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
>

Я теж думав про великий великий регекспів ... і мені щось було гамірно все перераховувати + установка плагіна - треба знову в конфіг сервера лізти і там щось міняти і перезапускати ... Воно звичайно варіант як ви написали але не оч красивий ІМХО 😉