LINUX.ORG.RU
ФорумAdmin

Разработка на локалхосте

 , , ,


0

1

Периодически делаю халтурки для веб и не только, соотв. исп. Apache и MySQL, PostgreSQL.

Выглядит это так: Включаю нужные сервера. Захожу от рута в MySQL, создаю БД, даю на нее полные права пользователю dev. Аналогично создаю виртуальный хост в Apache на ~/Projects/Freelance/name.

Это вообще нормально? По-моему, более логично смотрелся бы запуск всего этого от пользователя на портах выше 1024, ну или какие-нибудь пользовательские конфиги (не mod_userdir конечно же).


Вопрос-то в чём?
Если вопрос в том, нормально ли то, что биндятся порты < 1024, то да, это нормально.

blackst0ne ★★★★★
()
Ответ на: комментарий от blackst0ne

Вопрос в том - есть ли альтернативные решения? Запустить все это от пользователя оказалось не так просто, проще даже просто в папку пользователя поставить. Просто мне такое положение дел - для того чтобы что-нибудь написать с исп. MySQL нужно заходить от рута, не кажется нормальным.

dearboy
() автор топика
Ответ на: комментарий от dearboy

dearboy

Вопрос в том - есть ли альтернативные решения? Запустить все это от пользователя оказалось не так просто, проще даже просто в папку пользователя поставить. Просто мне такое положение дел - для того чтобы что-нибудь написать с исп. MySQL нужно заходить от рута, не кажется нормальным.


Совершенно не понял конкретных проблем. Но заранее могу предложить sudo.

blackst0ne ★★★★★
()
Ответ на: комментарий от blackst0ne

Хорошо, пожалуйста. У меня есть машина за которой работают два человека. Обоим нужен MySQL всего лишь через сокет дабы создавать там over9000 БД. Сам я их создавать не хочу, будучи админом.

Т. к. машина для разработки, то я хотел бы чтобы у них было по собственному процессу mysqld с собственными БД. Т. е. чтобы они вообще никак друг с другом не пересекались.

dearboy
() автор топика

Для начала нужно заходить PostgreSQL, вместо MySQL, если в проектах, всё таки, используется первый.

VirRaa ★★★
()
Ответ на: комментарий от xtraeft

Подозреваю что можно. Но черт возьми, что мне нужно: запустить MySQL от пользователя. Не рута, а обычного пользователя. Даже на порту выше 1024.

dearboy
() автор топика
Ответ на: комментарий от dearboy

В /etc/apache/apache.conf инклудь директорию где-нить в пределах доступности твоего пользователя. В неё складывай файлы виртхостов(в которых и порт виртхоста прописывай хоть 1024, хоть 10000), пользователю дай sudo на apache2ctl restart.

Для мускля создай пользователя, которому дай права на добавление таблиц и пользователей и создавай юзверей с таблицами хоть пачками. Хотя я сам вообще, когда подрабатывал быдлокодером, на локалхосте держал мускуль с пустым паролем для root'а(только мусклю разрешил слушать исключительно локалхост). Всё-равно там нет никаких данных, что прятать? Получил заказ, накатил базу, доработал, сделал дамп, снёс базу.

При желании автоматизируй это всё дело скриптом типа такого.

#!/bin/bash

SITENAME=$1
VHOST_DIR=/home/user/apache2/vhosts.d/ # эта директория инклудится в apache2.conf
TEMPLATE=/home/usr/apache2/template.conf # здесь лежит стандартный шаблон конфига виртхоста с __SITENAME__ вместо имени сайта во всех местах конфига.
MYSQL_USER=root
MYSQL_PASS=superpassword # или считай пароль с помощью read при запуске скрипта
MYSQL_COMMAND="create table $SITENAME; создать пользователя $SITENAME, дать ему права и т.д."

mysqladmin -u $MYSQL_USER -p $MYSQL_PASS $MYSQL_COMMAND

cat $TEMPLATE | sed -e "s/__SITENAME__/$SITENAME/g" > $VHOST_DIR/$SITENAME.conf
sudo apache2ctl restart

Скрипт писал прямо в окне набора сообщения ЛОРа, поэтому не стоит брать его за основу - это всего лишь идея.

shell-script ★★★★★
()

А виртуалку еще не предлагали? Не Xen, но хотя бы virtualBox.. много проще дать доступ к тому, чего не жалко, чем извращаться с настройками безопасности на критически важном хосте. Из плюсов, номно накатить дистр и по как в продакшине. Производительность в разработке, мне кажется, не особо важна.

naszar
()
Ответ на: комментарий от naszar

если смотреть в сторону виртуализации lxc подойдет намного лучше

menzoberronzan
()
Ответ на: комментарий от dearboy

Mysql и так работает на порту выше 1024. И ЕМНИП, он запускается от пользователя на ура. Нужно только подсунуть ему конфиг, где будут указаны альтернативные пути к сокетам и т.д.

Pinkbyte ★★★★★
()

А чем виртуалка с нужным набором софта не устраивает?

ololoid ★★★★
()

Захожу от рута в MySQL, создаю БД, даю на нее полные права пользователю dev.

Я конечно могу ошибаться. Но ведь автор не отождествляет рута мускуловского и рута системного? Можно ведь от пользователя заходить рутом в MySQL, ну и т.д.

mysql -u root -p **sqlrootpass**

naszar
()
Ответ на: комментарий от shell-script

Ну вот, дельно. С MySQL косячок, если дать пользователю права на создание/удаление таблиц, то это дает права на все БД. А чтобы назначить на каждую БД, то надо сначала ее создать.

Ну это все конечно далекие от дела вопросы. Мне просто было интересно узнать - есть ли ПРОСТОЙ способ работать с LAMP стеком без рутового доступа.

И еще тогда вопрос - как настраивали рабочую директорию хоста?

Просто чтобы указать DocumentRoot в ~/Projects/Freelance/name нужно SELinux заткнуть включив httpd_enable_homedirs и сделать +x на домашнюю директорию, чего как-то не хочется. В то же время держать все в /var/www/name как-то не прикольно. Сделал mount -o bind, в /var/www/name. Я нормален или есть какие-то более адекватные способы? Жесткую ссылку не сделать же на директорию. При каждом малейшем изменении которое хочется посмотреть копировать все как-то не хочется, можно конечно rsync'ом синхронизировать.

dearboy
() автор топика
Ответ на: комментарий от dearboy

Ну вот, дельно. С MySQL косячок, если дать пользователю права на создание/удаление таблиц, то это дает права на все БД.

В изначальном посте, на который я отвечал, ничего не говорилось про двух пользователей. Можно действительно, как советовали выше, запустить несколько копий мускля.

есть ли ПРОСТОЙ способ работать с LAMP стеком без рутового доступа

То, что я выше описал, довольно просто, как мне кажется. :) Эти настройки и скрипт надо сделать один раз, а в дальнейшем просто пользоваться. Хотя, может мой админский мозг просто привык.

И еще тогда вопрос - как настраивали рабочую директорию хоста?

Пользователь, от которого я работал состоял в группе www-data(от которой и апач запущен), директории с сайтами и логами находились в /var/www/ а в /home был сделан симлинк на /var/www/.

shell-script ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.