Знадобилося мені встановити LiveStreet 0.5.1 на свій VDS. але оскільки апача у мене немає, то зіткнувся з проблемою .htaccess. А саме. htaccess не підтримує nginx. тому nginx запускається вже з готовим конфіг (зроблено для поліпшення швидкодії). Сам же LiveStreet рясніє файлик .htaccess такого змісту:
Для початку встановлюємо LiveStreet звичайним чином в WebDIR (він створить таблички в БД і конфіги). Після цього починаємо курочіть - загальна структура публічної папки буде така:
Виходить вона досить просто - всі непотрібні папки з повними шляхами переносяться в «приватну» папку, тут залишаються тільки необхідні з Web файли. Я залишив index.php, папку uploads; в папці templates залишилися тільки папка cache і папка з картинками з теми (у мене це skin / new-jquery / images), так само залишилася частина бібліотек, які можуть бути викликані з Web через AJAX або подібні способи. Бібліотеки ділив так: все що містять файл .htaccess - приватні, всі інші залишаємо. Таким чином в приватній папці утворилася наступна структура:
Тепер поправимо конфиг 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;
>
Я теж думав про великий великий регекспів ... і мені щось було гамірно все перераховувати + установка плагіна - треба знову в конфіг сервера лізти і там щось міняти і перезапускати ... Воно звичайно варіант як ви написали але не оч красивий ІМХО 😉