Tag: php

linux, Maxsite CMS, жизнь @ 12 Апрель 2009, “5 Comments”
Случилось то, что я так давно хотел: собственный дизайн у блога(Спасибо Cuprum).
Текущий дизайн является портом отличной темы descartes 1.2. Изначально на блоге стояла версия 1.0 этой отличной темы, модифицированная мной, после перехода на новую CMS - Maxsite CMS, шаблон был сменён на шаблон идущий в комплекте с этой темой. Сейчас шаблон имеет весьма Веб-два-нольный внешний вид, с замечательными закруглёнными углами(не для IE :)
Под это дело и для выхода из под бана Google я снял все рекламные ссылки, теперь приходится вывешивать жутко тормозной блок рекламы от Begun(иногда загрузка страницы стопорится вплоть до 8-10 секунд, хоть у них и nginx). Так что если кому не лень - отключите AdBlock и покликайте там :) Если есть какая то работа по настройке серверов - предлагайте :)
В сайдбар добавил ссылку на профиль в juick.
Maxsite CMS @ 01 Апрель 2009, “9 Comments”
Плагин highlight. На основе highlight.js
Лицензия GNU GPL.
Все вопросы, предложения по улучшению функциональности можете присылать на menkovich@gmail.com.
Ссылка на плагин:
http://librarian.spb.ru/plugins/highlight.zip
linux, Maxsite CMS, жизнь @ 07 Февраль 2009, “6 Comments”
В общем вчера с относительным успехом закрыл сессию. Очень стыдно конечно, но, в основном, тройки. Будь я преподавателем, я бы себя точно не пропустил дальше. Стыдно скорее не за оценки, а за то, что с такими хорошими преподавателями которые прекрасно дают материал, прекрасно его спрашивают(привет, Александр Иванович), с которыми на экзамене было очень интересно беседовать, получить тройку... В общем уроком мне это будет. Ничего в этом семестре у нас тоже будет весело, одна физика твёрдого тела чего стоит(тоже с Соколовым).
Сейчас с коллегой будем разрабатывать(а заодно и попрактикуемся) на maxsite cms портал для студентов, арендуем под это дело VDSку. Строить будем на базе Debian, как обычно в качестве вебсерверов любимые nginx и apache, nginx будет использоваться в качестве прокси и будет разруливать ситуацию, если придётся ещё арендовать VDS-ок(Хотя тут уже можно и взрослый сервер взять :)
Читаю тут книженцию по codeigniter'у их wiki и документацию по jquery(заодно гляжу и на реализации проектов с их использованием). В общем могу определённо сказать, что это то, что мне так нравится(например в nginx вообще и в linux в частности): предельная быстрота, низкая ресурсоёмкость, простейшая для понимания работа и синтаксис и простота реализации нужного. Лично на меня в книжке, например, произвело набольшее впечатление реализация загрузки файлов в codeigniter и обработка изображений в нём же. То что раньше у меня занимало бы 30-40 строк кода(собственно загрузка, валидация и прочее) в CI занимает 3-4, максимум 6 строк. В общем шедевральная вещь.
Ну и в процессе разработки наткнулся на такую проблему - дизайн. Дизайн и вообще всё что связано с тем чтобы сделать красиво, а не чтобы работало эффективно, для меня бооольшая проблема. Что у меня получилось из прикручивания шаблона можно увидеть здесь: http://ms.librarian.spb.ru/. Смотреть там пока не на что, я пока думаю как бы там, внутри, всё так организовать(загрузку, хранение, сортировку файлов, планированное расширение функционала[очень интересно было бы поглядеть исходники rybalka.tv Жени Самборского(samborsky.com)]), чтобы и работать самому с сайтом было удобно, и работало всё это быстро и без неразумного потребления ресурсов.
Честно говоря, это ровно половина того шаблона, что была изначальна(хз куда там девается сайдбар, я его пока просто отрубил. В общем взял самый простой и чистый шаблон, на базе которого уже буду делать более серьёзное. Геморроя конечно с этим всем очень много. А руки в эту сторону расти совершенно не могут.
Сумбурный пост какой то получился... Да, ещё хочу сходить на лекцию питерского LUG, всё никак не соберусь :)
Maxsite CMS, жизнь @ 14 Январь 2009, “2 Comments”
Сделал плагин для реврайта внешних ссылок:

rewrite_links - переадрессация внешних ссылок для Maxsite CMS

Все внешние ссылки переадресовывает на urlsite/go.php?url=othersite
В архиве go.php нужно поместить в корень сайта.
Сейчас почти сделал плагин для подсветки синтаксиса. Тоже скоро выложу.

P.S. с SAPE работает нормально.
Далее...
linux @ 02 Январь 2009, “5 Comments”
Сегодня ночью у себя на ноутбуке ставил связку, позволяющую принять на себя огромную нагрузку.
Сперва наперво нужно провести подготовительные установки перед сборкой пакетов:
sudo -s
Далее будем работать от рута.
cd /usr/src
apt-get build-dep php5
apt-get build-dep nginx

Собираем php c патчем php-fpm и nginx:
wget http://us.php.net/get/php-5.2.8.tar.bz2/from/this/mirror
tar xjf php-*.tar.bz2
wget http://php-fpm.anight.org/downloads/head/php-5.2.8-fpm-0.5.10.diff.gz
cd php*/
zcat ../php*fpm*.diff.gz | patch -p1
EXTENSION_DIR=/usr/lib/php5/modules ./configure \
--prefix=/usr \
--sysconfdir=/etc \
--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d \
--enable-fastcgi \
--enable-force-cgi-redirect \
--disable-posix \
--enable-exif \
--enable-ftp \
--enable-bcmath \
--enable-zip \
--with-bz2 \
--with-curl \
--with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir \
--with-openssl \
--with-pcre-regex=/usr \
--with-zend-vm=GOTO \
--with-zlib \
--with-mysql \
--with-pdo-mysql \
--enable-fpm \
--with-fpm-conf=/etc/php-fpm.conf \
--with-fpm-log=/var/log/php-fpm.log \
--with-fpm-pid=/var/run/php-fpm.pid
make
strip sapi/cgi/php-cgi
Устанавливаем php5
make install


ln -s /usr/sbin/php-fpm /etc/init.d/php-fpm
sudo gedit /usr/local/etc/php-fpm.conf

Меняем значения user и group на:
www-data
www-data

Собираем и настраиваем nginx:
wget http://sysoev.ru/nginx/nginx-0.7.30.tar.gz
tar xzvf nginx-*.tar.gz
cd nginx*/
./configure --sbin-path=/usr/local/sbin --prefix=/usr/nginx --with-http_ssl_module
--without-mail_pop3_module --without-mail_imap_module
--without-mail_smtp_module
make
make install

Делаем инит скрипт для nginx:
vim /etc/init.d/nginx
### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/nginx
NAME=nginx
DESC=nginx
test -x $DAEMON || exit 0
# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
. /etc/default/nginx
fi
set -e
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /usr/local/nginx/logs/nginx.pid \
--exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /usr/local/nginx/logs/nginx.pid \
--exec $DAEMON
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile \
/usr/local/nginx/logs/nginx.pid --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --pidfile \
/usr/local/nginx/logs/nginx.pid --exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
reload)
echo -n "Reloading $DESC configuration: "
start-stop-daemon --stop --signal HUP --quiet --pidfile /usr/local/nginx/logs/nginx.pid \
--exec $DAEMON
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0


sudo chmod +x /etc/init.d/nginx
Добавляем php-fpm и nginx в автозапуск:
/usr/sbin/update-rc.d -f php-fpm defaults
/usr/sbin/update-rc.d -f nginx defaults

Скачиваем конфиг nginx для Maxsite CMS:
wget http://librarian.spb.ru/configs/nginx.conf -O /usr/nginx/conf/nginx.conf
Нужно его немного подправить на предмет исправления /home/lib/www/localhost на папку, в которой у Вас будет находится сам сайт и замену localhost на домен по которому Ваш сайт будет открываться.
vim /usr/nginx/conf/nginx.conf
Запускаем последовательно:
/etc/init.d/php-fpm start
/etc/init.d/nginx start

Самое сложное закончилось(то над чем я всю ночь сидел, не над сборкой, а над конфигурированием), теперь простенькое - установка mysql и Maxsite CMS:
aptitude install mysql-server
Вводим пароль, повторяем.
Создаем базу данных(вообще было бы неплохо ещё пользователя создать, да ограничить его в правах, но мне было лень):
mysql -uroot -pPASS
mysql > CREATE DATABASE name;
mysql > quit

База есть, теперь приступим к установке Maxsite CMS, на текущий момент последней стабильной версией является 0.27. Перед установкой следует выйти из root режима:
logout или Ctrl+D
cd /home/lib/www/localhost
wget http://max-3000.com/uploads/mso-0-27.zip
unzip mso*.zip
cp application/config/database.php-distr application/config/database.php
vim application/config/database.php

прописываем настройки подключения к базе данных:
$db['default']['hostname'] = "localhost"; // хост БД
$db['default']['database'] = "name"; // имя базы данных
$db['default']['username'] = "root"; // имя пользователя БД
$db['default']['password'] = "PASS"; // пароль


cp application/maxsite/mso_config.php-distr aplication/maxsite/mso_config.php
vim application/maxsite/mso_config.php

Прописываем секретную фразу
$MSO->config['secret_key'] = '$upeR$ecRetPpAa$SPhraSe';
Устанавливаем свой config файл
wget http://librarian.spb.ru/configs/maxsite_config.txt -O application/config/config.php
vim application/config/config.php

Заменяем
$config['base_url'] = "http://localhost/";
На Ваш домен.
Теперь можно открыть http://localhost/, ввести имя пользователя, пароль, имя сайта и электропочту :)
На этом всё, если будут какие-то баги - обращайтесь, помогу. Связаться со мной можно через форму на сайте: http://librarian.spb.ru/contact или через jabber: menkovich@gmail.com

При настройке использовались:
Установка nginx+php-fpm на Centos/Fedora/Debian
Установка nginx+php-fpm
Setup CodeIgniter on nginx server with FastCGI

P.S. По бенчмарку результат не очень хороший: 27.5 запросов в секунду выдерживает(но это я параллельно ещё в инете сидел, писал пост слушал музыку и так далее) Я думаю что специально сконфигурированные вебсервера выдержат НАМНОГО большую нагрузку.
← + Ctrl + →