LAMPP - запуск от обычного пользователя.
Сейчас существует множество сборок apache+php+mysql для упрощения работы веб-разработчиков, которые позволяют легко и быстро настроить у себя на компьютере все, что нужно для веб-программирования. В рунете наиболее популярным пакетом является Денвер, третье поколение которого не так давно стало доступно публике. Однако, самый популярный - не значит “единственный”. Из всех существующих, наибольшую конкуренцию Денверу может составить пакет XAMPP от проекта ApacheFriends. Впрочем, за рубежом он уже давно завоевал большое сообщество пользователей и единственное, что мешает ему потеснить Денвер - отсутствие русской локализации, которое отпугивает многих новичков.
Сегодня мы поговорим о версии XAMPP для Linux, известного так же как LAMPP. Те, кто пользовались им, знают, что для запуска сервера необходимы права root, но вводить всякий раз пароль - дело не веселое. Поэтому я сегодня расскажу о способе, позволяющему избавить себя от этой нудной необходимости.
Немного теории.
В большинстве файловых систем, используемых ОС семейства *NIX (и Linux в том числе), Есть такое свойство файла - SUID-бит, установка которого в 1 обеспечивает запуск исполняемого файла с правами владельца.
Чтобы установить такой бит для файла file_name, нужно от имени root выполнить команду
chmod u+s file_name
Перейдем к практике. Для того, чтобы управляющий скрипт (/opt/lampp/lampp) согласился работать и от имени простого пользователя, необходимо перед кждой из этих строк добавить символ решетки:
|
|
Теперь приступим к самому главному. Первым делом, научим запускаться от простого пользователя apache :) Для этого выполним от имени root следующие действия:
|
|
Отлично, теперь от имени простого пользователя набираем: /opt/lampp/lampp startapache и если при это не возникает ошибок, то можно приступать к настройке mysql.
Для этогонам нужно будет проделать следующие действия:
- Добавить в файл /opt/lampp/etc/my.cnf в секцию [mysqld] строку
user=aleks
где вместо aleks вы должны подставить имя своего пользователя. - Выполнить от имени root команды
1 2
chmod -R 0775 /opt/lampp/var/mysql chown -R root:users /opt/lampp/var/mysql # вместо users опять подставляем имя группы вашего пользователя.
Все, теперь mysql должен без проблем запускаться от простого пользователя B)
ProFTPd и проблемы, связанные с ним.
Тут-то нас и подстерегает жестокий облом. :( ProFTPd ни за что не желает запускаться из-под простого пользователя, несмотря на все мои ухищрения с suid-битами и владельцами файлов. Выяснить, что же именно в нем не работает у меня не было особого желания, да и необходимости - для веб-разработки он практически не нужен. Однако, можно слегка облегчить себе жизнь на тот лучай, если на м все же понадобится его запустить.
Для этого нужно добавить sudo
в файл /opt/lampp/lampp в начало строчек
/opt/lampp/sbin/proftpd > /opt/lampp/var/proftpd/start.err 2>&1
и
kill cat /opt/lampp/var/proftpd.pid
Пароль суперпользователя нам вводить все равно придется, но зато скрипт сам запросит его у нас, избавляя от необходимости набирать лишние команды. :)