Система коллективного перевода текстов
Давным-давно был такой умучанный копирастами сайт — http://notabenoid.com/. А здесь мы можем видеть исходники этого сайта, распространяемые под лицензией Beerware, что означает, что вы можете использовать весь этот говнокод как хотите.
С вашей стороны при использовании кода было бы любезно где-нибудь на сайте оставить ссылку на автора, каковой автор является мрачным и необщительным типом, а потому не даёт справок и не консультирует по вопросам установки, модификации и поддержки программы, а также не интересуется ничьим мнением о качестве кода, тем более что и сам придерживается о нём весьма невысокого мнения.
Исходники эти выложены с минимальными правками и не были рассчитаны на свободное распространение, поэтому в процессе установки вас может поджидать много сюрпризов. Будет здорово, если какие-нибудь пряморукие люди улучшат код в сторону его более простой распространяемости и напишут более человеческую документацию.
Нам понадобятся:
- php 5.5 или выше
- phpшные модули: gd, pdo-pgsql, curl, memcache
- postgresql 9.1 или выше
- memcached
-
Клонируем репозиторий в какую-нибудь директорию, допустим,
/srv/notabenoid.com
-
Натравливаем веб-сервер отдавать статику из
/srv/notabenoid.com/www
и все прочие запросы редиректить в index.php.В терминах nginx это будет выглядеть так:
1.Создаем файл в nginx
nano /etc/nginx/sites-available/notabenoid.com
Содержимое:
server { server_name notabenoid.com; listen 80; root /srv/notabenoid.com/www; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_index index.php; include fastcgi_params; } location ~ ^/(assets|img|js|css) { try_files $uri =404; } }
2.Включаем сайт, создаем ссылку на конфиг
ln -s /etc/nginx/sites-available/notabenoid.com /etc/nginx/sites-enabled/
-
Веб-сервер должен уметь писать в следующие директории:
- /www/assets
- /www/i/book
- /www/i/upic
- /www/i/tmp
- /protected/runtime
-
Создаём в постгресе базу, юзера и скармливаем дамп:
sudo -u postgres createuser -E -P notabenoid sudo -u postgres createdb -O notabenoid notabenoid
правим /etc/postgresql/9.4/main/pg_hba.conf, раздел подключений. Необходимо сделать так, чтобы локальное подключение не требовало пароля
local all all trust
Скармливаем дамп:
psql -U notabenoid < /srv/notabenoid.com/init.sql
Изменяем права пользователя notabenoid
sudo -u postgres psql template1 # alter role notabenoid with superuser; # \q
-
Настало время охуительных конфигов! В /protected/config/main.php найдите строки
"connectionString" => "pgsql:host=localhost;dbname=notabenoid", "username" => "notabenoid", "password" => "",
и пропишите туда название постгресной базы, юзера и пароль. Чуть ниже в строках
"passwordSalt" => "Ел сам в Акчарлаке кал рачка в масле", "domain" => "notabenoid.org", "adminEmail" => '[email protected]', "commentEmail" => "[email protected]", "systemEmail" => "[email protected]",
напишите любую херню в элементе "passwordSalt", а в остальных элементах - название вашего домена и почтовые адреса, которые будут стоять в поле "From" всякого спама, который рассылает сайт. Аналогичный трюк надобно провести с файлом
/protected/config/console.php
-
В крон прописываем:
0 0 * * * /usr/bin/php /srv/notabenoid.com/protected/yiic maintain midnight 0 4 * * * /usr/bin/php /srv/notabenoid.com/protected/yiic maintain dailyfixes
и последнюю команду (
/usr/bin/php /srv/notabenoid.com/protected/yiic maintain dailyfixes
) непременно исполняем сами. -
Теперь, по идее, вся эта херня должна взлететь. Зарегистрируйте первого пользователя и пропишите его логин в группах со спецправами в переменной
private static $roles
в файле/protected/components/WebUser.php
. Полагаю, также будет мудро несколько подправить основной шаблон (/protected/views/layouts/v3.php
) и морду (/protected/views/site/index.php
).
чмг-лов, Митя Уйский.