Дмитрий Сергеевич (axshavan) wrote,
Дмитрий Сергеевич
axshavan

Установка и настройка LAMP-сервера под Ubuntu

Для меня данная тема является настолько тривиальной, что я даже боюсь, что меня засмеют знакомые. Тем не менее, некоторым это может пригодится.

LAMP = Linux + Apache + MySQL + PHP. Это самая, наверное, ходовая комбинация программного обеспечения на веб-серверах мира. Ну, как устанавливать Ubuntu, я рассказывать не стану. Начнём с установки всего, что необходимо.

sudo apt-get install php5 apache2 mysql-server php5-mysql

Вроде бы, ничего больше не потребуется. Вообще, можно запустить Synaptic и установить пакеты в графическом режиме через него. Mysql-server спросит про пароль для пользователя root, это пользователь root, который будет отдельно суперпользователем в MySQL, и не является системным пользователем root. Пароль задайте похитрее, если вы в локальной сети, кишащей школотой. Дальше там всё само сконфигурируется, как надо.

Создание виртуального хоста в Apache.
Заходим в сессию рута и идём в папку /etc/apache2/. Там, помимо всего прочего, есть две папки: sites-available и sites-enabled. По задумке, в первой из них лежат, отдельно в каждом файлике, описания виртуальных хостов, а во второй - символические ссылки на эти описания. Апач подцепляет только те виртуальные хосты, которые упомянуты в sites-enabled (в основном конфигурационном файле apache2.conf есть соответствующая директива: Include sites-enabled/).

Можно делать что угодно, но чтоб было красиво, лучше скопировать файл sites-available/default в какой-нибудь sites-available/my_new_site и сделать на него символическую ссылку из sites-enabled (а ссылку на default удалить нафиг), а потом этот my_new_site редактировать.

Примерно должно получиться вот что:
<VirtualHost *:80>
 ServerAdmin webmaster@localhost
 ServerAlias newsite.local

 DocumentRoot /home/axshavan/www/newsite
 <Directory />
  Options FollowSymLinks
  AllowOverride All
 </Directory>
 <Directory /home/axshavan/www/newsite>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 </Directory>

 ErrorLog /var/log/apache2/error.log

 # Possible values include: debug, info, notice, warn, error, crit,
 # alert, emerg.
 LogLevel warn

 CustomLog /var/log/apache2/access.log combined
</VirtualHost>
Половину оттуда можно, в принципе, выкинуть. Самое важное:

VirtualHost *:80 - указывает интерфейс, на котором висит виртуальный хост. В данном случае он доступен как угодно на 80 порту. Если написать вместо "*:80" "127.0.0.1:81", то виртуальный хост будет доступен только на 127.0.0.1 (то есть не будет доступен снаружи) на 81 порту. Выбирая что-то, отличающееся от *:80, надо это указать в файле /etc/apache2/ports.conf. Там перечислены директивы Listen с указанием портов и интерфейсов, на которые будет цепляться и слушать апач. Если не указать там интерфейс и порт, которые выбраны для виртуального хоста, то виртуальный хост будет недоступен.

ServerAlias - на какое имя будет отзываться апач. То есть вы пишете у себя в /etc/hosts: 127.0.0.1 newsite.local, и при заходе на эту страницу по хттп апач будет выбирать из имеющихся виртуальных хостов именно этот.

DocumentRoot - где лежат файлики с виртуальным хостом. В данном примере я сунул их себе в домашнюю папку, потому что там я девелоплю. Но обычно всё вебовское валяется в /var/www. Соответствующую директиву Directory тоже нужно поменять на то значение, которое установлено для DocumentRoot.

Внутри Directory чаще всего используют следующее:
Options - опции какие-то;
AllowOverride - я всегда пишу All и не парюсь, что у меня .htaccess в той папке не подцепится;
Order allow,deny - это я не помню что;
allow from all - параметр доступа (all - для всех). Можно написать deny from all, чтоб никто не имел доступа к виртуальному хосту. Можно указывать айпишники, ну, там всё довольно просто.

Виртуальный хост сделан. Теперь на всякий случай надо сходить в /etc/apache2/mods-enabled и посмотреть, есть ли там символические ссылки на /etc/apache2/mods-available/php.load и /etc/apache2/mods-available/php.conf. Если нет, то сделать. Заодно можно и на /etc/apache2/mods-available/rewrite.load.

Пхп само должно сконфигурится достаточно нормально.

Запрещение и разрешение соединения с MySQL снаружи.
В файле /etc/mysql/my.cnf есть директива bind-address, которая указывает интерфейсы, которые будет слушать mysqld. По умолчанию там 127.0.0.1, то есть разрешение на соединение только с локалхоста.

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

Оригинал записи http://axshavan.blogspot.com/2010/11/lamp-ubuntu.html
Tags: *nix, web
Subscribe

  • Первый заметный результат диеты

    Ну, конечно, на самом деле не первый. Я же каждое утро взвешиваюсь, скрупулёзно записываю результаты, а потом ещё и строю графики. И ещё чаще…

  • Плёнка №185

    Тематика снимков обычная: городское фото. Время съёмок: март 2021. Плёнка: Fomapan profi line action 400 Фотоаппарат и объектив: Zenit-E + Helios…

  • Фотографии с двух прогулок

    Четвёртого апреля было, хотя и ветрено, но солнечно и относительно тепло. Не то, что сегодня... сегодня погода испортилась и снова стало холодно. К…

  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment