МиниFAQ для обучения(разработки) online

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.

Какую ОС Вы предпочитаете?

CentOS 6
6
27%
Debian 6
8
36%
Ubuntu 12.04 LTS
8
36%
 
Всего голосов: 22

Аватара пользователя
prozhar
Сообщения: 22
Зарегистрирован: 2013.03.26, 20:25

МиниFAQ для обучения(разработки) online

Сообщение prozhar »

UPD*21.04 (убрал нудную вступительную речь :geek: )
Опишу теперь, короче и конкретнее, Ваши ответы много прояснили:
- есть я (желающий стать веб-разработчиком);
- есть друзья (желающие тестить ошибки, юзабельность и т.д. online);
Цель - разработка с ноля до продакшина online на VPS/VDS/cloud хостинге (ниже в постах о прогах пишут "привыкайте к лучшему©", поэтому и хостинг, мне кажется, должен быть тоже лучший, все же больше настроек и возможностей, чем на шаред, да и ни на много он дороже + потраченные деньги для меня = стимул отработать их, как бы договор с совестью :lol: ):
Задания для безопасного старта (именно это прошу конкретизитровать):
- от левых глаз;
- от поисковиков;
- от ботов;
- от кражи идеи.
Короче говоря, организация такой работы, чтобы только я и мои друзья могли лицезреть создание, остальных на страницу заглушку такого типа: viewtopic.php?f=3&t=11540
Как вижу это я, (дополнения с Ваших ответов):

Тип разработки:
- с онлайн размещением проекта + Netbeans viewtopic.php?f=3&t=11897#p69672
- с созданием у себя окружения, максимально подобного Вашему хостингу viewtopic.php?f=3&t=11897&start=10#p69687
- с ..... (ждем новых предложений) :)

Вопросы мои + заинтересовавшихся новичков:
1. А на хостинге VPS/VDS/cloud есть консоль? Или надо сгенерить у себя, а потом просто копипастить корневую папку?
Nafania писал(а):1) Есть, надо у себя генерить
2. Изначально на хостинге стоит apache (мой выбор пал на ukraine.com.ua (VPS) и mirohost.net(eVPS), nginx ставите:
а)сразу на старте;
б)перед продакшином;
в)когда вырастет нагрузка.
3. MySQL - InnoDB или MyIcam - все же, что Вы предпочитаете? Извечная тема, ответы прошу по назначению сайтов, (например, блог=myisam, соц.сеть=innodb) так будет конкретнее.
4. Все-же интересно как решить эту проблему для разработки: viewtopic.php?f=3&t=11540
5. Если разработка с копией offline - как заливать обновления на работающий сайт? Я к тому, например, кто-то обращается к site контроллеру, в вы в этот момент его перезаписываете, что будет?
7.Заезженный вопрос организации фронта и энда - для новичка и среднего сайта по посещаемости - лучший вариант (вопрос для людей, создавших 4-5 сайтов, которые уже свободно работают с поставленными целями) ?? Дайте ссылку, какую используете Вы??
8. Безопасность на старте хостинга - есть в конфиге возможность включить защиту от xss и csrf атак - пользуетесь ли Вы этим, или отдаете предпочтение другим методам? Если они эффективны, зачем тогда нужен хтмл-пурифиер?
flashimage писал(а): http://www.yiiframework.com/doc/guide/1 ... s.security - обязательно к прочтению
sql injection - в запросах переменные вставлять через параметры
xss - использовать CHtmlPurifier
CSRF + атака через cookies - вставить код в конфиг:

Код: Выделить всё

'components'=>array(
        'request'=>array(
            'enableCsrfValidation'=>true,
            'enableCookieValidation'=>true,
        ),
    ), 
9. Хостер предлагает выбрать Debian 6, CentOS 6 или Ubuntu 12.04 LTS - что бы Вы предпочли?
(этот вопрос вышел горячим, поэтому прошу просто проголосовать):
10. В случае базовой генерации приложения через консоль и заливки ее и фреймворка на хостинг, на какие папки ставить какие права доступа изначально, дабы избежать проблем?

САМ ПРОЦЕСС РАЗРАБОТКИ:
Как его вижу я, а вы дополняйте и редактируйте (для варианта с локальной копией поэкта):
1. Покупаем хостинг
2.Через консоль генерим стартовое приложение
3. Заливаем фреймворк и приложение на хостинг по адресу поддомена типа: test.my_site.com
4. Разбиваем конфиг для локалки и хостинга
5. Сразу прописываем в конфиг в реквест:
'enableCsrfValidation'=>true,
'enableCookieValidation'=>true,
6.на основной домен my_site.com ставим отдельное приложение заглушку по типу http://brainstorage.ru/
7. чтобы не страдал метод isGuest внутри тестинга, тестерам ставим свою куку, и если ее нет у посетителя, редиректим его на my_site.com для сбора емайлов, а имеющих куку пускаем на test.my_site.com

Прошу камнями не кидать, вопросы буду добавлять по наростающей, ответы Ваши буду вписывать сюда же !
Спасибо всем откликнувшимся, но больше, все же интересует мнение людей, которые имеют опыт, и шишки набивали на этом :)
Если у таких же как я новичков есть дополнительные вопросы - пишите, допишу сюда, дабы не плодить темы и сделать более-менее полезный FAQ для таких, как я нубов )
Последний раз редактировалось prozhar 2013.04.21, 10:55, всего редактировалось 6 раз.
Nafania
Сообщения: 1227
Зарегистрирован: 2011.01.31, 13:12

Re: МиниFAQ для обучения(разработки) online

Сообщение Nafania »

1) Есть, надо у себя генерить
2) Это веб-сервер, в двух словах, если только пхп, то надо nginx + php-fpm (spawn-fcgi) вместо apache + mod_php. Манулалов по настройке море в сети.
3) InnoDB - внешние ключи, транзакции
4) Для разработки локальная копия, зачем наружняя? Но можно подключить, по желанию.
5) Зависит от того, что именно нужно.
6) Что?
7) Все зависит от нужд, несколько готовых решений уже есть в сети
8) csrf, xss, purify - разные вещи, защита в Yii есть только для csrf включаемая в конфиге, все остальное руками и головой решается.
9) Убунту не серверная ось совсем, имхо.
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: МиниFAQ для обучения(разработки) online

Сообщение flashimage »

Перфекционизм - страшная вещь, стандартная ошибка любого новичка. Если вы новичек то слова VPS/VDS, unit test, commit, git и тд. дожны быть вам не знакомы до тех пор пока не понадобятся.
Начинайте с обычного, но хорошего хостера например ukraine.com.ua (php 5.2\5.3\5.4, nginx, гибкие настройки, хорошие цены у меня там проектов 12 крутится - из них 2 на yii).
MySQL - InnoDB или MyIcam - все же, что Вы предпочитаете? Почему?
Нафаня правильно сказал, но поиск по тексту быстрее в MyIsam
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Nafania
Сообщения: 1227
Зарегистрирован: 2011.01.31, 13:12

Re: МиниFAQ для обучения(разработки) online

Сообщение Nafania »

flashimage писал(а):Нафаня правильно сказал, но поиск по тексту быстрее в MyIsam
Если требуется много поиска по тексту, то не надо использовать mysql для этого, ибо это печально. Сфинкс спасет в данном случае.
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: МиниFAQ для обучения(разработки) online

Сообщение flashimage »

4. Как быть с базой данных при разработке online - вы используете из локали доступ к ней на сервере, пользуетесь копией из сервера или как? Этот вопрос упущен везде, не нашел на него ответа.
Я не буду говорить о правильных идеальных решениях. На первых стадиях можно иметь поддомен test.vashdomen.com закрытый для поисковиков и отдельную базу, и netbeans с синхронизацией по фтп. Делать все там. Под утро воскресенья заливать все на основной (если есть изменения).
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: МиниFAQ для обучения(разработки) online

Сообщение flashimage »

Безопасность на старте хостинга - есть в конфиге возможность включить защиту от xss и csrf атак - пользуетесь ли Вы этим, или отдаете предпочтение другим методам? Если они эффективны, зачем тогда нужен хтмл-пурифиер?
Самое главное что ты должен знать, как разработчик - все данные, приходящие от клиента надо проверять. Пурифер как раз тот инструмент, который тебе нужен против XSS. Против sql injection, мы используем PDO (AR, DAO), который благодаря предварительному компилированию запроса практически избавил нас от этой напасти. Но главное помнить правило - никогда нельзя вставлять переменные напрямую в предворительный запрос. Для защиты от csrf есть csrf токен.
http://www.yiiframework.com/doc/guide/1 ... s.security - обязательно к прочтению
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Аватара пользователя
prozhar
Сообщения: 22
Зарегистрирован: 2013.03.26, 20:25

Re: МиниFAQ для обучения(разработки) online

Сообщение prozhar »

По поводу постов выше, я так понимаю (глобально):
- для сайтов типа "блог", где большая юзеров ищет и читает (меньше вставляет) и большая часть запросов в бд идет на селект - лучше myisam.
- для сайтов типа "а-ля социальная сеть", где юзеры больше вставляют и редактируют, меньше ищут лучше innodb.
Я так понял?
Аватара пользователя
prozhar
Сообщения: 22
Зарегистрирован: 2013.03.26, 20:25

Re: МиниFAQ для обучения(разработки) online

Сообщение prozhar »

flashimage писал(а):Начинайте с обычного, но хорошего хостера например ukraine.com.ua (php 5.2\5.3\5.4, nginx, гибкие настройки, хорошие цены у меня там проектов 12 крутится - из них 2 на yii).
Вот Вы пишите:
- "5.2\5.3\5.4" - какой брать для yii приложения? Что выбрали Вы для своих приложений!
- "nginx" - на ukraine.com.ua по-умолчанию пишет, что идет apache? как Вы ставите nginx - дополнительно или вместо apache? (именно это интересно, сам процес хотя бы на словах, тоже будет полезен)
- "из них 2 на yii" - как Вы их разрабатываете? на локалке до 90-100% готовности или заливая по ходу разработки с самого начала понемногу?
(поделитесь просто "на пальцах" если не тяжело )))
flashimage писал(а):,но поиск по тексту быстрее в MyIsam
Это извечная тема сотен тем на форумах, что лучше ))) А если на перспективу (повторюсь, мало кто разрабатывает сайт и думает "так, я хочу сайт с аудиторией 10-20 человек, поэтому беру innoDB там ключи, транзакции, целостность, если будет нагрузка, начну банить и удалять лишних пользователей" ;) а другой думает, я супер-изобретатель - создам супер-сайт с миллионами пользователей и буду использовать MyIsam - он быстрее по тексту ищет и селекты обрабатывает") Шутка конечно, но на старте, чем вы позиционируетесь, выбирая вид таблиц, я прошу объяснения типа - блог - myisam, сайт визитка - innodb, сообщество (где 90% пользователей наполняют контентом сайт) - такую-то; сайт, где все вся информация создается пользователями и основа сайи это страница юзераи ее интерфейс (по типу соц.сеть) - такой-то тип таблиц. Буду признателен, если так обощить получится)
Аватара пользователя
prozhar
Сообщения: 22
Зарегистрирован: 2013.03.26, 20:25

Re: МиниFAQ для обучения(разработки) online

Сообщение prozhar »

flashimage писал(а):
4. Как быть с базой данных при разработке online - вы используете из локали доступ к ней на сервере, пользуетесь копией из сервера или как? Этот вопрос упущен везде, не нашел на него ответа.
Я не буду говорить о правильных идеальных решениях. На первых стадиях можно иметь поддомен test.vashdomen.com закрытый для поисковиков и отдельную базу, и netbeans с синхронизацией по фтп. Делать все там. Под утро воскресенья заливать все на основной (если есть изменения).
+
6. Если у вас тестеры в сети лазят по вашему frontendy, что будет если вы заливаете переделанные файлы через filezilla? для этого нужно как-то останавливать сервер или делается на горячую?
В точку, почти, наводящие вопрос о конкретике реализации:
1. Как закрыть поддомен от поисковиков, если можно, что прописать в robots.txt для поддомена?
2. Кто тестит Ваше приложение в поддомене, только Вы или есть помощники? Если есть как ограничить доступ к поддомену, только Вам и вашим помощникам, не включая в процесс isGuest, чтобы его можно было полноценно использовать прошедшим проверку?
3. ГЛАВНОЕ - "заливаете утром в воскресенье" это как раз о вопросе №6 - как это происходит - вы для этого останавливаете (отключаете) доступ юзеров или просто заливаете на горячую? Как это происходит на пальцах?
4. Если кто-нибудь, абсолютно посторонний введет test.vashdomen.com "закрытый для поисковиков и с отдельной базой" у себя в браузере, что он увидит??? Как вы защищаетесь на поддомене от нежелательных глаз?
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: МиниFAQ для обучения(разработки) online

Сообщение flashimage »

Вот Вы пишите:
- "5.2\5.3\5.4" - какой брать для yii приложения? Что выбрали Вы для своих приложений!
- "nginx" - на ukraine.com.ua по-умолчанию пишет, что идет apache? как Вы ставите nginx - дополнительно или вместо apache? (именно это интересно, сам процес хотя бы на словах, тоже будет полезен)
- "из них 2 на yii" - как Вы их разрабатываете? на локалке до 90-100% готовности или заливая по ходу разработки с самого начала понемногу?
(поделитесь просто "на пальцах" если не тяжело )))
Я включаю 5.3 - выше не лезу, хз почему - наверно ничего из 5.4 мне пока не надо
Там связка работает апач+nginx - вся статика отдается через nginx (avi,bmp,png,css,doc,gif,htm,html,ico,jpeg,jpg,js,mp3,swf,txt,xls,zip,wml,wmlc,wmls,wmlsc,wbmp,fla,flv,xml,mpg,mpeg,pdf), остальное через апач. Вообще советую тебе взять пробных 5 дней и поковырять))
К сожалению так сложилось, что на локалке у меня пусто)) даже сервера нет. Не забивай только себе голову на первой стадии гит, свн ... и для начала просто начни работать удаленно прямо на серваке и в нормальной IDE. Netbeans подходит для этого в самый раз. Установи, создай проект с удаленными файлами, в разделе соедениния вбей данные фтп и поставь галочку пассивный режим. Теперь ты можешь перетаскивать папки и файлы прямо в левое дерево, изменять и сохнранять файлы и все это будет кидаться сразу на сервак - ты можешь просто заходить и смотреть изменения прямо на сайт (тестовый). Кроме этого он сохраняет историю изменений каждый день построчно.
По поводу баз скажу одно - wordpress создает таблицы myisam...
По поводу закрытия с глаз долой - используйте параметр в конфиге на тестовом сервере и закрывайте с помощью него доступ незалогиненным пользователям на любой экшен.
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: МиниFAQ для обучения(разработки) online

Сообщение futbolim »

Разрешите вставить своё мнение (небольшое).
Такое чувство, что Вы хотите унести слишком большой кусок.
Я так понял, что Вы начинающий (ну или где то в той степи). Если да, то какой vps ? Берите шаред.
Вы правильно сказали по поводу шишек, что их нужно набить. А судя по тому куску, который Вы хотите отхватить, то у Вас будут не шишки, а сотрясение мозга.
Можно идти семимильными шагами, но постепенно, а не всё сразу.
И помните, сильно хорошо - тоже плохо (:
Аватара пользователя
rhamdeew
Сообщения: 51
Зарегистрирован: 2012.09.02, 19:59

Re: МиниFAQ для обучения(разработки) online

Сообщение rhamdeew »

ТС, может не стоит сразу тратиться на дорогой VPS?

Отметьте для себя что вы хотите изучить сначала, а то ИМХО у вас в голове каша и вы все хотите взять нахрапом. Боюсь так не получится. Нужно все как то постепенно делать.

Я бы предложил такой вариант для разработки:
0) На 99% уверен что в качестве основной ОС у вас дома винда, поэтому инструкция для винды
1) Ставим у себя VirtualBox
2) Накатываем там Ubuntu Server (она попроще). Если нет желания потратить 20 минут на установку Linux можете скачать уже готовый образ виртуальной машины и запустить (http://virtualboximages.com/, http://virtualboxes.org/)
3) По мануалу ставим Guest Addons для виртуалки и прокидываем директорию /var/www на свою систему (в винде появится новый сетевой диск с вашими скриптами)
4) В настройках сети выбираем Nat и пробрасываем 80 порт для веб-сервера. В итоге при обращении на http://localhost у вас будет отвечать виртуальный сервер
5) В виртуалке ставим apache + mod_php и mysql (вам пока не стоит заморачиваться с более производительными решениями, ставим что попроще). Тут вообще все ограничится парой комманд в консоли (мануалов в сети уйма)
6) У себя на винде ставим какую-нить IDE (например NetBeans или PhpStorm, сразу приучаемся работать с хорошим) и работаем со свом проектом прямо на «сетевом диске» (который на самом то деле проброшен из /var/www с сервера)
7) Для работы с БД там же на сервере ставим phpmyadmin (sudo apt-get install phpmyadmin) - он будет доступен по адресу http://localhost/phpmyadmin

В итоге - серверное окружение как никогда близко к реальному, полностью бесплатное решение, работает очень быстро

Для начала думаю самый оптимальный вариант. Если возникнут вопросы в процессе настройки на любом из этапов - обращайтесь, помогу =)

Серверные решения:
Зачем покупать VPS когда есть бесплатные Appfog, Openshift.. Хотя это немного более сложный вариант, но в перспективе более интересный. + не надо заморачиваться с доменом.

Если нужна именно VPS чисто для экспериментов то могу подсказать где взять VPS за 300 рублей в год (1 ядро, 512RAM, 5Gb HDD). Из минусов - сервер в Америке, пинги будут выше. Если нужен технический домен - могу выделить какой-нить свой. Обращайтесь =)
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: МиниFAQ для обучения(разработки) online

Сообщение flashimage »

Если нужна именно VPS чисто для экспериментов то могу подсказать где взять VPS за 300 рублей в год (1 ядро, 512RAM, 5Gb HDD). Из минусов - сервер в Америке, пинги будут выше. Если нужен технический домен - могу выделить какой-нить свой. Обращайтесь =)
в год? круто))
Сам пользую такой вариант с серверами в голландии https://www.digitalocean.com/ (Спасибо anton44eg за наводку).
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Аватара пользователя
greatdane
Сообщения: 408
Зарегистрирован: 2010.10.20, 14:05
Откуда: Электросталь
Контактная информация:

Re: МиниFAQ для обучения(разработки) online

Сообщение greatdane »

Nafania писал(а): 9) Убунту не серверная ось совсем, имхо.
C чего бы? Только из-за того, что у нее ПО в репах не такое замшелое, как в Дебиане? Вполне себе серверная ось, rhamdeew все правильно написал — для выньдузятников идеальный вариант поставить в виртуалбокс ось попроще без иксов, и аналогичную на впс. Тогда и не будет никаких неожиданностей при заливке на сервер,поскольку оси одинаковые (ну, хостеров, предоставляющих впс-ы со своими репами, исключим как редкий курьез).
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: МиниFAQ для обучения(разработки) online

Сообщение lancecoder »

greatdane писал(а): не такое замшелое, как в Дебиане?
вот это не понял
п.с. то что в debian tested, в ubuntu stable, убунту считается дебианоподобной осью
п.п.с.с. убунту самая простая в познании уникс систем
Аватара пользователя
greatdane
Сообщения: 408
Зарегистрирован: 2010.10.20, 14:05
Откуда: Электросталь
Контактная информация:

Re: МиниFAQ для обучения(разработки) online

Сообщение greatdane »

А чего непонятно-то? Убунту — тот же дебиан, только в стэйбл релизах ПО более свежее. А если вы пользуете Дебиан тестинг — то это вот как раз и «не совсем серверная ось», в отличие от стэйбл убунты.
Вы похоже не поняли, что я ответила Нафане, считающему убунту «не серверной осью». У меня на продакшене убунта LTS.
Последний раз редактировалось greatdane 2013.04.20, 19:00, всего редактировалось 1 раз.
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: МиниFAQ для обучения(разработки) online

Сообщение lancecoder »

greatdane писал(а):только в стэйбл релизах ПО более свежее.
:o
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: МиниFAQ для обучения(разработки) online

Сообщение lancecoder »

у меня дебиан стоит 7, на впс, он пока тестед, 4-5 мая релиз, но вроде не подводит, да и на рабочем компе такая же ос, только с иксами
Аватара пользователя
greatdane
Сообщения: 408
Зарегистрирован: 2010.10.20, 14:05
Откуда: Электросталь
Контактная информация:

Re: МиниFAQ для обучения(разработки) online

Сообщение greatdane »

lancecoder писал(а):
greatdane писал(а):только в стэйбл релизах ПО более свежее.
:o
Вы так и будете куски из контекста вырывать? В стэйбл релизах убунты более свежее ПО, чем в стэйбл релизах дебиана — так понятно?
Ответить