Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Быстрая установка и настройка веб-сервера (mysql + php + apache) в Ubuntu 8.10  (Прочитано 203601 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Что бросилось в глаза воспалённому мозгу:
1. Нет проверки на пустое либо уже существующее $NAME_OF_PROJECT
2. Нет проверки на валидность NAME_OF_PROJECT в качестве имени домена. (Как минимум отсутствие пробелов надо проверить.)
3. Не стоит мешать макросы баша и реальные пути в одном флаконе. Если так хочется создать проект в домашке текущего юзера - используй переменную $HOME, но используй её везде, чтобы не получилось непойми что в итоге.
4. ServerAlias ... я стараюсь не указывать ServerName и ServerAlias в одной конфигурации. Разве что я АБСОЛЮТНО уверен, что мне НЕОБХОДИМО получить доступ к ОДНОМУ сайту под РАЗНЫМИ именами. (Например svn.mylocaldomain.lan(=192.168.ну-ты-понял) и svn.rootdir.org(=реальный-белый-IP-адрес).)
Для остальных сайтов пишу заглушку в стиле
<VirtualHost *:80>
    ServerName www.example.org
    Redirect permanent / http://example.org/
</VirtualHost>
прямо в том же самом файле сайта, вторым блоком.
5. add_to_hosts_conf - а если на этот IP в файле уже есть строчка с другим содержанием?... Поведение системы при нахождении множественных вхождений одного IP в файле hosts не определено. И вообще насиловать файл hosts как-то некультурно. DNS сервер себе заведи уже, что ли, раз массово занимаешься этим делом.
6. Лучше всё таки использовать рекомендованную капитализацию в конфигах апача. Читать приятнее. Я имею в виду VirtualHost, ибо в остальных местах у тебя почему-то всё миленько... :)
7. Не проще тупо создать БД с именем проекта и не заморачиваться?
8. pwgen же ж.
9. Не стоит давать права WITH GRANT OPTION без ОЧЕНЬ уважительной на то причины. Особенно не стоит давать ВСЕ права с правом передачи.
10. На сколько я помню изменения в последних релизах Ubuntu, файл настройки сайта для апача должен иметь расширение .conf. Хотя это ограничение тривиально обходится правкой одной строчки в конфиге...
11. Делать апачу рестарт необходимо только при изменении набора модулей и в редких случаях при изменении конфигурации некоторых модулей. В остальных случаях достаточно reload.
12. Второй скрипт вообще неполезный. a2dissite достаточно.
13. #указываем владельца и права на папку "public"
ХыДе?
chown -R $USER:www-data "$HOME/www/$NAME_OF_PROJECT"
chmod -R u=rwX,g=rsX,o= "$HOME/www/$NAME_OF_PROJECT/public"
chmod o+X "$HOME" "$HOME/www" "$HOME/www/$NAME_OF_PROJECT"
« Последнее редактирование: 13 Марта 2014, 07:44:42 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Да тот коментарий просто так остался, я незаморочился его удалить :)

По всем остальным пунктам: Всё понятно, исправим. Спасибо.
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

Byuik

  • Гость
Да тот коментарий просто так остался, я незаморочился его удалить :)

По всем остальным пунктам: Всё понятно, исправим. Спасибо.
Ну вы просто монстр =) спасибо за пример.

Ставить права 777 неправильно в любом случае. И кроме этого там тоже полно глупости.

По поводу прав 777 это безобидно в моем варианте , ибо юзер за пределы папки http нос не высунет.
Если не так то покажите как этого избежать.


У Byuik я не понимаю, зачем на каждый сайт создавать своего пользователя, а потом еще и пароли от них забыв)).

Если вводить одного и того-же пользователя просто скрипт скажет что он существует и продолжит работу ;) и тд и тп.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Права 777 (а конкретно o=rw) неправильно ставить В ЛЮБОМ СЛУЧАЕ. Я не просто так это подчеркнул.
При такой настройке в папку сайта может записать кто угодно. Вообще кто угодно. Даже не прошедший авторизацию.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Byuik

  • Гость
Права 777 (а конкретно o=rw) неправильно ставить В ЛЮБОМ СЛУЧАЕ. Я не просто так это подчеркнул.
При такой настройке в папку сайта может записать кто угодно. Вообще кто угодно. Даже не прошедший авторизацию.
Я это понимаю и не даром в комментарии к скрипту это подчеркнул.
Согласен надо ставить 775 или 755 , но в ряде случаев приходилось и 777 ставить.
Тут уж кто на что горазд.
Никто не мешает сделать chmod -R 755 ./host после того как... ведь правда ?
« Последнее редактирование: 14 Марта 2014, 03:46:48 от Byuik »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Приведите хотя бы ОДИН случай из указанного вами ряда.
А права нормальные люди ставят u=rwX,g=rsX,o=
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Byuik

  • Гость
Приведите хотя бы ОДИН случай из указанного вами ряда.
А права нормальные люди ставят u=rwX,g=rsX,o=

Вот что вы получите с вашими правами.

Цитировать
Forbidden

You don't have permission to access / on this server.
Apache/2.4.6 (Ubuntu) Server at host Port 80

Потрудитесь теперь и вы объяснить как сделать так чтоб этого не произошло .  :coolsmiley:
« Последнее редактирование: 14 Марта 2014, 04:00:01 от Byuik »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Читайте мой пост выше.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Byuik

  • Гость
Читайте мой пост выше.
Сдаётся мне что вы уважаемый юзаете не php_mod а CGI для запуска скриптов от имени юзера.
Это есть истинное зло.
На каждый запрос создаться отдельный процесс .

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Читайте мой пост выше.

Те права это 770?
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Читайте мой пост выше.
Сдаётся мне что вы уважаемый юзаете не php_mod а CGI для запуска скриптов от имени юзера.
Это есть истинное зло.
На каждый запрос создаться отдельный процесс .
1. К PHP это не относится.
2. SuExec
3. Конкретно имелся в виду пост https://forum.ubuntu.ru/index.php?topic=46573.msg1894933#msg1894933

JmAbuDabi, 2750 для каталогов, 0640 для файлов.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
Так лучше? http://paste.ubuntu.com/7117424/

В скрипте верю на слово, что НЕ будет спецсимволов, хотя вывожу, что что-то проверял). С ДНС разберусь. Понимаю, что для одинакового url две одинаковые записи в /etc/hosts дадут непредсказуемые результаты.

А можно как-то удалять конфиги, после отключения сайта, одной командой, без скриптов?
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Головотяпство
1. if [ ! -d $HOME/www ]; ....... man test же ж...
2. Кавычки везде, где они уместны. I.e. "$HOME/www"
3. Суффикс .local зарезервированный. Если не хочешь, чтобы твою сеть глючило забавным образом - смени.
4. Про hosts a уже писал.
Код: (bash) [Выделить]
HOSTS_PROJECTS="$(grep "^$PROJECT_IP" /etc/hosts)"
test -z "$HOSTS_PROJECTS" && HOSTS_PROJECTS="$PROJECT_IP"
if grep -iv "${NAME_OF_PROJECT}.suff" <<<"$HOSTS_PROJECTS"; then
    TMP_HOSTS="$(mktemp -t "hosts-${NAME_OF_PROJECT}.XXXXXXXX")"
    grep -v "^$PROJECT_IP" /etc/hosts > "$TMP_HOSTS"
    echo "$HOSTS_PROJECTS ${NAME_OF_PROJECT}.suff" >> "$TMP_HOSTS"
    sudo cp -bf /etc/hosts /etc/hosts
    sudo cp "$TMP_HOSTS" /etc/hosts
    rm "$TMP_HOSTS"
fi
5. add_to_apache_conf переделать аналогично. (mktemp, запись во временный файл, копирование, стирание. Бэкап существующего файла, если он уже есть.)
6. Пробел между ; и } кто ставить будет?... Я?
7. Подсказку по правам на папки вы пропустили.

Косметика
1. echo -ne для третьей строчки. И пробел в неё добавь.
2. Всю информацию лучше вывести сначала, и спросить подтверждения пользователя, прежде чем что-то делать. (Посмотри, например, как PEAR устанавливается.)
3. Зачем извращаться с urandom, когда есть pwgen? Ладно бы действительно нужны были рандомные данные...
« Последнее редактирование: 19 Марта 2014, 18:54:22 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн JmAbuDabi

  • Старожил
  • *
  • Сообщений: 2468
  • 나는 빅터 해요. 나는 프로그래머입니다
    • Просмотр профиля
По правам:

Мне Браузер тогда от имени www-data запускать?

pwgen лишняя сущность, её еще доставить надо))Не знаю, кто из них быстрее работает, но это и не принципиально.
« Последнее редактирование: 19 Марта 2014, 19:26:49 от JmAbuDabi »
Покой – это не место, где тихо и мирно, где нет шума и беспокойства.
Покой – это когда при всем этом, вы сохраняете мир и спокойствие в своем сердце.

 

Страница сгенерирована за 0.019 секунд. Запросов: 21.