Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 06/09/2011 in all areas

  1. Сразу оговорюсь, что всё, что будет здесь описано, будет описано максимально упрощённо и многие вещи лично у меня настроены иначе (разбивка диска, nginx на фронте...), но главное донести суть, а там уже тонкости. Для начала нам понадобится домашний интернет с выделенным «белым» IP. Да, есть аозможность сделать и без этого, но я считаю этот вариант плохим и недостойным рассмотрения. Теперь нам нужен сервер. Понятно, что всё зависит от предполагаемой нагрузки, но я не вижу смысла держать дома нагруженные (а, значит, важные) проекты — для этого лучше подойдёт хороший ЦОД. Я выбрал себе девайс под названием DNS Porto — это такой типа неттоп российской сборки http://ekaterinburg.dns-shop.ru/catalog/176/128891/ Скоро, вероятно, такие продавать перестанут, так как пошла новая линейка, но советую тоже брать что-то типа того. Тот который у меня отличается от того, который по ссылке, тем, что у моего 1 гиг памяти, а не два, процессор вроде бы на 1,66 ГГц, а не 1,8 и диск на 160 гигов, а не 250 — моей модели, видимо, уже нет в продаже. Выбрал я этот девайс потому что он маленький, тихий и электричества потребляет мало. Далее надо сделать так, чтобы кроме сервера, вашим домашним интернетом могли пользоваться и другие компьютеры в вашем доме. Самый простой путь — купить маршрутизатор. Хватит самого простого D-Link DIR-300, например. Если вай-фай не нужен, то можно такой же только без вай-фая — не помню как модель называется, но найдёте. Как настраивать маршрутизатор я рассказывать не буду — у д-линков там всё проще простого и вообще есть мануалы. Единственное, что нам надо будет — перебросить на наш сервер порты 21 (FTP), 22 (SSH) и 80 (HTTP). Можно добавить 3306 (MySQL), 443 (HTTPS) и вообще какие угодно, но это уже исходя из потребностей, мне не нужно, например. Теперь система. Мне по нраву Ubuntu Linux, так как устанавливается легко, ПО достаточно свежее и работать с ней приятно. Итак, идём на страницу загрузки http://www.ubuntu.com/download/server/download и грузим себе образ. Предпочесть стоит, думаю, последний LTS — сегодня это 10.04. У меня в сервере нет CD-привода и потому я делал себе загрузочную USB-флэшку — в десктопной убунте для этого есть специальная приблуда, как это делать в других системах я не знаю, но, думаю, на сайте это описано. В конце концов, можно постпрашивать на форумах, если что-то не будет получаться. Итак, подключаем к компьютеру монитор, клавиатуру и загружаемся с диска/флэшки. Для начала мы увидим экран выбора языка. Я считаю, что нужно всё ставить на английском, чтобы не было непоняток в случае косяков локализации. Выбираем «Install Ubuntu Server». То есть начнём устанавливать. Выберем язык для системы. Опять же я советую английский. Выберем наше местоположение. Other -> Europe -> Russian Federation. Понятно, что надо выбирать своё местоположение. Я в России, потому и выбрал её. Определить раскладку клавиатуры? Я думаю, что не стоит. Вручную укажем. Russia -> Russia -> Alt+Shift. Можно и другой комбинацией, но, по сути, это нам даже и не нужно. Далее пойдут какие-то загрузки, операции, будут какие-то прогрессбары — система будет готовиться к установке. Тут система спросит как её назвать. Я назвал, как видно на картинке, testserver. Можете сами выдумать что захотите — это непринципиально. Почему-то система решила, что я в Красноярске. А я не там. Выбираю «No» и далее «Yekaterinburg», поскольку я в Екатеринбурге. Если система правильно всё определила, то жмите «Yes», если нет, то выберите ваш часовой пояс. Формируем файловую систему. По-хорошему, надо в отдельные разделы выносить /home, /tmp, можно отказаться от свопа, но у нас не «настройка и кстановка линукса», а «как хоститься дома», так что доверимся всемогущему усановщику и выберем «Guided — use entire disk». Выберем на какой хард ставить систему. Как видно из картинки, у меня диск всего один и это виртуальный диск виртуальной машины. Вы выберите свой, если будет из чего выбирать. Если диск один, то, понятное дело, жмём Enter без лишних раздумий Предупреждение, что ВСЕ ДАННЫЕ БУДУТ УДАЛЕНЫ. Оно верное — действительно всё, что было на диске будет удалено. Соглашаемся. Начинается форматирование диска и установка системы. Это самый долгий процесс. Создаём пользователя. Он получит доступ к sudo и именно «под ним» мы будем всё делать. Введём и повторим пароль. Зашифровать домашнюю директорию? Я выбрал «нет». Далее снова идут некоторые настройки. Вы подключены через прокси? Нет. Оставляем поле пустым. Нужны автоматические обновления? Нет, не нужны. Какое ПО будем ставить? Выбираем только OpenSSH для удалённого управления сервером. Остальное поставим вручную. Поставить загрузчик GRUB? Да, поставить. Всё готово. Компьютер будет перезагружен. Надо будет после перезагрузки достать диск или флэшку, с которой всё ставилось Итак, система установлена. Можно отцепить от сервера монитор и клаву и поставить его подальше, чтобы не мешал. Подключаемся к серверу через SSH. Через консоль, если она у вас есть в системе, или через Putty, если у вас винда. Теперь обновим систему. Для начала получим список доступных для загрузки пакетов. sudo apt-get update обновим ПО sudo apt-get upgrade обновим систему sudo apt-get dist-upgrade Перезагрузим сервер. Теперь можно поставить полезные какие-нибудь утилиты. Мне полезен файломенеджер midnight commander, чтобы рулить файлами и системный монитор htop, который показывает как у нас в данный момент с нагрузкой дела обстоят. sudo apt-get install mc htop Теперь создадим папку, в которой будут храниться наши сайты. sudo mkdir /webs Создадим специального пользователя из-под которого всё будет испольняться при работе с сайтами sudo groupadd webs sudo useradd -g webs -s /bin/bash -d /webs webs поставим пользователю пароль passwd webs И поставим владельцем папки созданного нами пользователя sudo chown webs /webs sudo chgrp webs /webs Установим apache sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert Установим PHP sudo apt-get install php5-common php5 libapache2-mod-php5 php5-cli php5-cgi php5-mysql php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl libapache2-mod-fcgid libapache2-mod-fastcgi Установим MySQL sudo apt-get install mysql-client mysql-server libmysqlclient15-dev в процессе установки у нас будет спрошен пароль для рутового пользователя mysql, который надо будет придумать и ввести. Установим Phpmyadmin sudo apt-get install phpmyadmin Выберем в качестве веб-сервера установленный у нас apache. Далее нажмём «Да» на вопрос системы «сконфигурировать ли phpmyadmin», введём недавно придуманный нами рутовый пароль mysql, а так же придумаем и введём два раза пароль юзера phpmyadmin. Включим модуль rewrite в апаче sudo a2enmod rewrite Перезапустим апач sudo /etc/init.d/apache2 restart Теперь, если зайти на ваш сервер через http по IP-адресу, то увидим сообщение «It works!», которая нам скажет, что всё установилось удачно. http://ваш_ip/phpmyadmin — тут мы увидим phpmyadmin. Теперь привяжем к нашему серверу доменное имя. Зарегистрируем имя для начала. Допустим зарегистрировали example.com Я делаю это на сайте 2domains.ru — там дёшево и нормально. Ещё там можно использовать DNS-серверы reg.ru — они-то нам и нужны. Итак, зарегистрировали имя, нажали галочку «использовать DNS-серверы регистратора», потом в редакторе зон DNS добавляем A-запись: «пустое поле» IN A ваш_ip Через какое-то время ваш сервер будет доступен по доменному имени. Теперь создадим сайт на этом домене. для начала в файле /etc/apache2/envvars заменим строки export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data следующими export APACHE_RUN_USER=webs export APACHE_RUN_GROUP=webs и сделаем sudo chown -R webs /var/lib/apache2 перезапустим апач. Создадим папки, в которых будут жить файлы, связанные с этим сайтом mkdir /webs/example.com mkdir /webs/example.com/www mkdir /webs/example.com/logs echo "Hello world!" > /webs/example.com/www/index.html Создадим файл /etc/apache2/sites-available/example.com следующего содержания <VirtualHost *> ServerName example.com ServerAdmin admin@example.com DocumentRoot /webs/example.com/www <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /webs/example.com/www/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /webs/example.com/logs/error.log. LogLevel warn CustomLog /webs/example.com/logs/access.log combined </VirtualHost> Добавим его sudo a2ensite example.com перезагрузим конфиг апача sudo /etc/init.d/apache2 reload Готово! Теперь (если DNS уже успели распостраниться) по адресу example.com будет доступен ваш сайт, который приветствует мир. Можно как на обычном хостинге создавать php-скрипты, которые будут нормально работать. Чтобы работала функция mail() в PHP, нам нужен почтовый сервер. sudo apt-get install postfix Добавим к этому FTP. sudo apt-get install proftpd Теперь отредактируем файл конфига /etc/proftpd/proftpd.conf — отредактируем там некоторые строки ListOptions "-la" DefaultRoot ~ перезапустим FTP-сервер /etc/init.d/proftpd restart Всё, теперь можно логиниться под юзером webs на ваш сервер через FTP. Вот и всё. Ещё раз повторюсь, что это только некоторые основы — сервер будет работать, но надо будет ещё озаботиться его безопасностью. Ещё можно будет оптимизировать серверное ПО, чтобы ресурсы нормально распределялись... Если ещё выберу время, то напишу что для этого надо и как это делается. Если кто-то заметил какие-то ошибки или есть какие-то вопросы — задавайте.
    2 points
  2. Я долго вынашивал коварные планы по реализации на яваскрипте кастомного селекта, который можно было бы легко стилизовать. И вот наконец я на все плюнул, сел и написал его в виде плагина для jQuery. Прошу потестить его на баги (хотя я уверен, что отловил их все). http://berezkin-r.narod.ru/select/ Что умеет: все, что должен уметь обычный <select>, за исключением того что его можно очень легко стилизовать Что не умеет: нет мультиселекта (мне по работе он не нужен, поэтому делать было влом), он вообще сильно нужен? Работоспособность проверена в: Google Chrome (последний) Apple Safari (последний) Mozilla Firefox 4 Opera 11.11 (редкое дерьмо, а не браузер) IE 9 IE 9 (в режиме IE8) IE 9 (в режиме IE7) IE 6 (виртуальная машина с XP SP1) В IE 6 имеется ровно один глюк, о котором я знаю и исправлять его не собираюсь, кто найдет его может взять с полки пирожок
    2 points
  3. http://pmsrv.ru/ Вот я сделал новую пробную версию сайта для компании, в которой я работаю. Что вы об этом думаете? Чего ещё не хватает?
    2 points
  4. || - вот эти две палочки расшифровываются как OR (или) Напишу другим языком, значения num - целые числа в диапазоне 0..5
    1 point
  5. Это и есть объект. Ничто не мешает потом добавить к нему новые свойства. var params = { a: 1, b: 2, opa: 'uxaxa' }; alert(params['opa']); alert(params.a); alert(params['b']); params.x = 'trololo'; params['test'] = 'OMG'; alert(params['x']); alert(params.test); if (params['x']) { alert('x присутствует'); } if (!params.y) { alert('y отсутствует'); }
    1 point
  6. http://www.w3schools.com/jsref/jsref_splice.asp Первые два параметра должны быть цифрами. 1) индекс элемента массива, с которого начнется удаление 2) количество элементов которое надо удалить В JavaScript нет ассоциативных массивов как в PHP поэтому если хочется удалять/добавлять элементы по ключу, то помогут только объекты (хеши).
    1 point
  7. Тогда и делай всё логично. я не понял, так как "правильнее" ? если у меня нет никаких свойств, только ar['key'] = 'value'; и не более. var obj = {}; obj.key = value;
    1 point
  8. Я, в общем-то, говорил про атрибуты, а не про тег. Да и у тебя не 3 блока, а всего один - по центру. А какой вообще смысл? Чего ради то? .container:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .msie .container { zoom: 1; } Да. Было лучше. имхо, опечатка
    1 point
  9. [оффтоп] Ну вот ты мне скажи, причём это вдруг юзабилити к вёрстке??? Ты просишь оценить вёрстки, судю по сабжу, а юзабилити это уже дизайн. Понаписывают тут сами незная что... [/оффтоп] по делу Прошлый век: <table id="head" cellpadding="0" cellspacing="0" > Вижу ты очень любишь верстку дивами, а о других тегах слышал? К примеру о списках? Так как это список .track-short Нецелесообразное использование ID. Вообще зачем на него вешать стили? Чем тебе классы не по душе? #content { float: right; } Инлайн стили на сегодняшний день для этих целей использовать глупо. А если тебе завтра скажу что жирность не нужна - полезешь в шаблон с разметкой? <a style="font-weight: bold;" href="/index.php?do=addnews">Добавить MP3</a> И вот тут тоже: <ol style="float: left;padding-left: 18px;" class="top-news"> И тут: <p style="float: left;"> После этого возник вопрос - зачем выкладывать НЕ(!) доработанную страницу на обсуждение? И вот это тоже списки: <div class="navigation"> <span>Назад</span> <span>1</span> <a href="http://melofon.ms/page/2/">2</a> <a href="http://melofon.ms/page/2/">Вперед</a> </div> А без hidden осилишь? Скрипты должны быть перед закрывающимся </body> Ужасно нечитабельные стили: http://melofon.ms/templates/mblack/css/styles.css В общем моя оценка - 2 Я конечно понимаю что он ошибся, но ты то о_О Что за FX2 такой :) FireXforks 2 что ли?? )))))))
    1 point
  10. Дружище, а можно ради интереса узнать у тебя, неужели есть ещё те, кто просит верстать под FX2? Если да, то ты не мог бы уточнить, с какой целью.
    1 point
  11. Да кто же сейчас использует Fx2. Это же не IE какой-нибудь. Да и с Оперой тоже неувязочка. С юзабилити всё плохо. Я насчитал штук 7 разных видов ссылок, причём необоснованно разных. В некоторых случаях ссылки не отличаются от близлежащего текста, это очень плохо.
    1 point
  12. Понравилось. не понравились избыточные теги и крипичи
    1 point
  13. https://www.toptal.com/developers/css/sprite-generator http://spritegen.website-performance.org/
    1 point
  14. Я очень люблю сравнивать всё с автомобилями. Вот почему не возникает ни у кого вопросов почему мерседес стоит дороже, чем ВАЗ? Тоже ведь 4 колеса и ездит. Вот и тут так же. Плата не только за продукт, но и за качество. Я много раз сталкивался с тем, что «дешёвый» работник берёт сразу много работы и, если всплывут косяки, то у него просто нет времени всё поправить, а у «дорогого» разработчика есть возможность посвятить себя только этому проекту и ничему больше и сделать его значительно лучше. Прошу прощения за флуд.
    0 points
This leaderboard is set to Kiev/GMT+02:00
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy