Lamp стек описание его компонентов. Установка и настройка LAMP-сервера на Ubuntu

Говоря об Apache, MySQL и PHP, большинство админов имеют в виду стек LAMP, подразумевающий установку этого набора софта в один из многочисленных дистрибутивов Linux. Между тем выбор FreeBSD в этом случае может оказаться более подходящим.

В этой статье я расскажу о всех шагах, которые необходимо выполнить для того, чтобы поднять FreeBSD вместе со стеком (L)AMP и несколькими инструментами администрирования на абсолютно голом сервере и сделать так, чтобы все это работало вместе без сбоев и непредвиденных ситуаций.

Шаг 1. Устанавливаем FreeBSD

Для начала нам понадобится сама операционная система. Идем на официальную страничку FreeBSD (www.freebsd.org), жмем по ссылке «Get FreeBSD Now», далее выбираем версию ОС (на момент написания статьи доступны были две версии: 8.2-RELEASE и 7.4-RELEASE), архитектуру (amd64 или i386), нажимаем на ссылку и видим список доступных образов. Всего их пять: bootonly - загрузочный образ для установки по сети, disk1 - ISO образ для записи на CD, dvd1 - образ для записи на DVD, livefs - LiveCD без графического интерфейса, memstick для записи на USB-брелок. В нашем случае подходящими будут только первый и второй, а если в сети нет DHCP-сервера, то только второй (DVD-образ качать смысла нет, потому как CD содержит все нам необходимое).

Итак, скачиваем ISO-образ, нарезаем его на болванку, вставляем в привод сервера и сбрасываем/включаем его. Ждем пока ОС загрузится. После окончания загрузки на экране должно появиться окно выбора страны и меню инсталлятора sysinstall, состоящее из двенадцати пунктов. Нас интересует только один из них: «Express», он позволяет установить операционную систему максимально быстро, пропустив многие предупреждающие сообщения, вопросы и настройки. Выбираем его, жмем .

Появится окно программы для разбивки диска. Здесь можно либо просто нажать для использования всего диска, либо , чтобы создать новый раздел в свободной области. Однако, имей в виду, что FreeBSD использует двухуровневую схему разметки диска при которой один стадартный DOS-раздел (в терминологии FreeBSD именуемый слайсом) может содержать в себе несколько BSD-разделов, поэтому на этом шаге понадобится создать только один раздел. По окончании нажимаем , чтобы выйти из программы.

Следующее окно: вопрос об установке загрузчика, просто жмем чтобы установить загрузчик в MBR. Сразу после него появится окно разметчика созданного ранее раздела на BSD-разделы. Здесь можно поэкспериментировать, но я бы рекомендовал просто нажать чтобы программа сама разметила диск. Далее жмем , чтобы подтвердить изменения.

Следующее окно: выбор источника установки. По дефолту в качестве источника используется CD/DVD, поэтому просто жмем . Подтверждаем выбор нажатием в следующем окне. Теперь начнется процесс копирования файлов, по окончании которого на экран будет выведено сообщение с вопросом о возвращении в главное меню инсталлятора. Нажимаем , далее , «Yes» и . Операционная система должна перезагрузиться. Не забываем вынуть установочный диск из привода, чтобы ОС загрузилась с жесткого диска.

По окончании загрузки вводим имя пользователя root и получаем доступ к командному интерпретатору.

Шаг 2. Настройка

Мы только что установили FreeBSD, но она еще не готова к тому, чтобы выполнять роль полноценного сервера: сеть не работает, root не имеет пароля, в системе только один пользователь. Исправим это. Перво-наперво, установим пользователю root пароль:

На экране будут появляться вопросы, на большинство из которых можно не давать ответов (жать ), важными являются только имя пользователя, дефолтовый командный интерпретатор (лучше выбрать tcsh) и пароль. В конце команда выведет на экран получившийся список настроек пользователя, в ответ на который следует ввести слово «yes», и в ответ на следующий вопрос ввести «no».

Чтобы пользователь смог получать права root, добавим его в группу wheel:

# pw groupmod wheel -m имя_пользователя

Исправим файл /etc/fstab так, чтобы никто не смог запускать файлы, расположенные на разделах /tmp и /var. Для этого добавим флаги «noexec» в поле Options каждого из этих разделов.

Установим более жесткие ограничения на доступ к системным файлам:

# chmod 0600 /etc/syslog.conf

chmod 0600 /etc/rc.conf

chmod 0600 /etc/newsyslog.conf

chmod 0600 /etc/hosts.allow

chmod 0600 /etc/login.conf

Теперь нам нужно настроить сетевое соединение. Во FreeBSD все глобальные настройки хранятся в файле /etc/rc.conf, поэтому открываем его с помощью редактора и добавляем следующие строки:

# ee /etc/rc.conf
hostname="host.com"
ifconfig_em0="inet 1.2.3.4 netmask 0xffffffff"
defaultrouter="5.6.7.8"

Здесь em0 во второй строке - это имя настраиваемого сетевого интерфейса. Список всех доступных сетевых интерфейсов можно получить с помощью команды ifconfig. В качестве значения опции можно указать DHCP, тогда для конфигурирования интерфейса будет использован dhclient. Также сразу добавим несколько важных для нас опций:

# ee /etc/rc.conf

Отключаем переадресацию пакетов и

регистрируем все попытки переадресации

icmp_drop_redirect="YES"
icmp_log_redirect="YES"

Запрещаем ответы на широковещательные ping-запросы

icmp_bmcastecho="NO"

Очищаем каталог /tmp при каждой загрузке

clear_tmp_enable="YES"

Запрещаем обновление файла /etc/motd при каждой загрузке

update_motd="NO"

Не принимаем пакеты с одновременно установленными

флагами SYN и FIN

tcp_drop_synfin="YES"

Отключаем sendmail

sendmail_enable="NO"
sendmail_submit_enable="NO"

Включаем SSH

sshd_enable="YES"

Чтобы выйти из редактора, нажимаем и два раза . Добавим адрес DNS-сервера в /etc/resolv.conf:

# ee /etc/resolv.conf
nameserver 8.8.8.8

Чтобы сетевые настройки вступили в силу, выполняем следующую команду:

# /etc/rc.d/netif retstart

Проверяем доступность сети:

# ping execbit.ru

Добавим несколько полезных строк в файл /etc/sysctl.conf:

# ee /etc/sysctl.conf

Не отвечать на попытки подключения к закрытым портам

(спасет от некоторых видов DoS-атак и затруднит

сканирование портов)

net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1

Разрешаем смотреть список всех процессов только root

kern.ps_showallprocs=0

Защитим SSH-сервер от брутфорс-атак:

# echo "MaxStartups 5:50:10" >> /etc/ssh/sshd_config

/etc/rc.d/sshd restart

Теперь SSH-сервер будет отбрасывать 50% новых подключений в случае, если будет произведено пять неправильных регистраций. Когда их станет десять, сервер перестанет отвечать вовсе.

При использовании экспресс-установки, система портов (фреймворк для установки стороннего ПО в ОС) не устанавливается во FreeBSD автоматически, поэтому нам надо сделать это вручную (это хорошо, потому что так мы получим самый свежий срез портов, не содержащий устаревшего дырявого ПО):

# portsnap fetch extract

Также можно обновить базовую систему, однако это делать не обязательно:

# freebsd-update fetch

freebsd-update install

shutdown -r now

После того как порты будут обновлены, установим в систему инструмент rkhunter, нужный для отлова руткитов, которые могут быть установлены в систему в будущем:

# cd /usr/ports/security/rkhunter

make install clean

Отредактируем конфигурационный файл /usr/local/etc/rkhunter.conf так, чтобы опция MAIL-ON-WARNING содержала email, на который следует слать сообщения об обнаруженных аномалиях.

Заставим инструмент проверить себя на обновления:

# rkhunter --update

После этого создадим снимок системных файлов, который будет использоваться в качестве эталона во время поиска руткитов:

# echo "daily_rkhunter_update_enable="YES"" > /etc/periodic.conf

echo "daily_rkhunter_check_enable="YES"" > /etc/periodic.conf

Все, теперь все сообщения о подозрительной системной активности будут помещаться в лог /var/log/rkhunter.log и отсылаться на указанный в конфигурационном файле email.

# crontab -e 0 2 * * * root /usr/local/sbin/ntpdate pool.ntp.org

Наконец, установим и Webmin, web-ориентированный интерфейс для удаленного управления сервером (те, кто предпочитает использовать для администрирования SSH, могут пропустить этот шаг):

# cd /usr/ports/sysutils/webmin

make install clean

echo "webmin_enable="YES"" >> /etc/rc.conf

# /usr/local/lib/webmin/setup.sh

На вопросы можно отвечать нажатием , однако когда дело дойдет до ввода пароля (строка «Login password:»), следует ввести пароль на доступ к Webmin (лучше, если он будет отличаться от остальных паролей). Далее можно запустить Webmin:

# /usr/local/etc/rc.d/webmin start

И протестировать его работу, введя адрес «https://host.com:10000/» в адресную строку ближайшего браузера.

AMP

Теперь настало время установить стек AMP, то есть - веб-сервер Apache, базу данных MySQL и интерпретатор PHP. Сначала займемся Apache. Идем в порты и устанавливаем последнюю версию:

# cd /usr/ports/www/apache22

make confi g install clean

На экране должно появиться окно конфигуратора, с помощью которого ты можешь выбрать установку опциональных компонентов сервера. Что-либо менять здесь смысла нет, поэтому можешь смело жать . После окончания сборки и установки не забудь добавить сервер в автозапуск (если поддержка SSL не требуется, вторую строку можно пропустить):

# echo "apache22_enable="YES"" >> /etc/rc.conf

echo "apache22ssl_enable="YES"" >> /etc/rc.conf

Также в конфигурационный файл следует добавить инструкцию для загрузки модуля accf_http, который будет буферизировать HTTP-соединения, что разгрузит сервер и поможет в борьбе с SYN-флудом:

# echo "accf_http_ready="YES"" >> /etc/rc.conf

kldload accf_http

# cd /usr/ports/lang/php5

make config install clean

Убедись, что опция «Build Apache module» выбрана. Плюс несколько расширений к нему:

# cd /usr/ports/lang/php5-extensions

make config install clean

Важно, чтобы на шаге конфигурирования PHP ты не забывал отметить пункт «MySQL database support», принуждающий систему портов к установке модуля PHP для работы с MySQL. Без него ничего не заработает.

Теперь открываем конфигурационный файл Apache в текстовом редакторе (во FreeBSD он запрятан далеко: /usr/local/etc/apache22/ httpd.conf) и изменяем в нем следующее:

1. После строк LoadModule добавляем следующие две строки:

AddType application/x-httpd-php.php
AddType application/x-httpd-php-source.phps

2. Находим опцию ServerAdmin и прописываем в качестве ее значения свой почтовый адрес:

ServerAdmin [email protected]

3. В опции DocumentRoot указываем каталог, в котором будут храниться все файлы нашего веб-сайта:

DocumentRoot "/home/www/data"

Не забываем создать этот каталог:

# mkdir /home/www

mkdir /home/www/data

mkdir /home/www/cgi-bin

Я предпочитаю использовать в качестве корневого каталога / home/www так как, во-первых, каталог /home обычно находится на самом большом разделе (автоконфигуратор разделов, который мы использовали в ходе установки, отводит под /home большую часть пространства), а во-вторых, с ним проще работать, чем с какимнибудь /usr/local/www/apache22/data, запрятанным во множество подкаталогов.

4. Находим следующую строку:

И меняем ее так, чтобы в качестве каталога был указан DocumentRoot:

5. Меняем следующие строки:


DirectoryIndex index.html


DirectoryIndex index.php index.html

6. Внутри директивы заменяем строку:

ScriptAlias /cgi-bin/ "/usr/local/www/apache22/cgi-bin/"

Вот этой:

ScriptAlias /cgi-bin/ "/home/www/cgi-bin/"

7. Следующую строку:

Заменяем этой:

Сохраняем файл и создаем файл настроек PHP:

# cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

Этого будет достаточно для нормальной работы Apache совместно с PHP. Теперь можно приступить к установке MySQL. Идем в порты и делаем следующее:

# cd /usr/ports/databases/mysql50-server

make WITH_OPENSSL=yes install clean

Создадим рудиментарный конфигурационный файл, которого хватит на первое время:

# ee /etc/my.cnf
port=29912
port=29912
bind-address=127.0.0.1

Добавим MySQL в автозагрузку и запустим сервер:

# echo "mysql_enable="YES"" << /etc/rc.conf

/usr/local/etc/rc.d/mysql-server start

Установим пароль на доступ к базе данных:

# mysqladmin -u root password пароль

mysql -u root -p

Теперь MySQL должна нормально функционировать, но управлять базами данных вручную не очень удобно, к тому же, для некоторых это будет первый опыт установки MySQL, а с наскоку разобраться с ней не так-то просто. Поэтому установим веб-интерфейс управления MySQL под названием PHPMyAdmin:

# cd /usr/ports/databases/phpmyadmin

make install clean

Поправим конфигурационный файл PHPMyAdmin, указав пароль на доступ к web-интерфейсу:

# cd /usr/local/www/phpMyAdmin

cp config.sample.inc.php config.inc.php

ee config.inc.php

$cfg["blowfi sh_secret"] = "пароль";

Теперь вновь открываем конфигурационный файл Apache и делаем следующее:

1. В секцию добавляем следующую строку:

Alias /phpmyadmin /usr/local/www/phpMyAdmin

2. В конец секции добавляем следующие строки:


Order allow,deny
Allow from all

Здесь вместо «Allow from all» можно добавить что-то вроде «Allow from 123.456.789.0/12», чтобы разрешить доступ к PHPMyAdmin только из определенной подсети. Перезапускаем Apache:

Это все, теперь (L)AMP должен работать.

HTTPS

PHPMyAdmin для корректной работы требует поддержку HTTPS, и вполне возможно, что в будущем тебе понадобится этот протокол для установления безопасного зашифрованного соединения между клиентом и сайтом. Поэтому сделаем так, чтобы Apache его понимал.

Для начала исправим конфигурационный файл OpenSSL (/etc/ssl/openssl.cnf), добавив в него следующие строки:

# Каталог для хранения сертификатов
dir = /root/sslCA

Срок действия сертификата (~10 лет)

default_days = 3650

Теперь подготовим каталог и создадим сертификаты для собственного центра сертификации:

mkdir sslCA

chmod 700 sslCA

chmod 700 sslCA

mkdir private

cd sslCA

openssl req -new -x509 -days 3650 -extensions v3_ca

Keyout private/cakey.pem -out cacert.pem
-config /etc/ssl/openssl.cnf

Проверим, что сертификаты были созданы успешно:

# ls -l cacert.pem private/cakey.pem

Сгенерируем сертификаты для Apache и поместим их в каталог /etc/ssl:

# cd /root/sslCA

openssl req -new -nodes -out имя_хоста-req.pem

Keyout private/имя_хоста-key.pem -config /etc/ssl/openssl.cnf

openssl ca -confi g /etc/ssl/openssl.cnf -out

имяхоста-cert.pem -infiles имя хоста-req.pem

cp /root/sslCA/имя_хоста-cert.pem /etc/ssl/crt

cp /root/sslCA/private/имя_хоста-key.pem /etc/ssl/key

Снова открываем конфигурационный файл Apache, находим следующую строку и раскомментируем ее:

# ee /usr/local/etc/apache22/httpd.conf

Include etc/apache22/extra/httpd-ssl.conf

Вносим следующие изменения в файл /usr/local/etc/apache22/extra/http-ssl.conf:

# ee /usr/local/etc/apache22/extra/http-ssl.conf

Имя HTTPS-сервера

ServerName ssl.host.com

Путь до файла, содержащего сертификат и ключ

SSLCertificateFile /etc/ssl/crt/yourhostname-cert.pem
SSLCertificateKeyFile /etc/ssl/key/yourhostname-key.pem

То же, что и в главном конфиге

DocumentRoot "/home/www/data"

Куда писать логи

ErrorLog "/var/log/httpd-error.log"
TransferLog "/var/log/httpd-access.log"

Перезапускаем Apache:

# /usr/local/etc/rc.d/apache22 restart

Что дальше?

В этой статье я показал, как поднять полностью работоспособный стек (L)AMP на базе FreeBSD (так что это скорее FAMP), и все, что тебе теперь нужно сделать, это скачать свой любимый сайтовый движок и развернуть его в каталог /home/www/data (не забыв положить скрипты в /home/www/cgi-bin). Все остальное возьмет на себя (L)AMP.


Стек LAMP (Linux/apache/mysql/php) является наиболее полулярным среди разработчиков набором технологий для создания сайтов. Исходя из имеющегося у нас опыта мы разработали несколько готовых образов VDS для быстрого развертывания на них мини хостинга, ориентированного на работу в LAMP. Общим принципом при разработке этих образов было обеспечение однотипности настроек, чтобы сайты, размещенные на одном VDS легко перемещались на другой VDS, даже базирующийся на другом образе (другом наборе базового ПО) и все основные задачи по администрированию любого из VDS на базе любого из предлагаемых образов выполнялись однотипно. Мы так же решили, что крайне важно, чтобы добавление новых сайтов на сервер было не сложнее, чем просто создание папки с именем сайта. В итоге мы создали на базе дистрибутивов Debian Wheezy, Ubuntu Precise Pangolin и Ubuntu Trusty Tahr со следующим набором ПО:

  • Nginx + Apache2 + PHP 5.4 (FastCGI) + MariaDB 5.5 + phpMyAdmin + sftp
  • Nginx + Apache2 + PHP 5.4 (mod_php) + MariaDB 5.5 + phpMyAdmin + sftp
  • Nginx + PHP 5.4 (php-fpm) + MariaDB 5.5 + phpMyAdmin + sftp

1. Общее описание готовых образов

Все образы построены исходя из того, чтобы главным и единственным пользователем в системе, от имени которого работают скрипты и выполняются все остальные действия, был пользователь web . Аналогично принятому в Ubuntu порядку вещей, в образах на базе Debian прямая работа от имени root не приветствуется (заблокирована) и вместо этого пользователю web через sudo предоставлена возможность выполнять любые команды с привилегиями суперпользователя. Таким образом, для входа на вновь созданный VDS по ssh необходимо выполнить команду:

$ ssh web@ip-address-of-vds

Кроме входа по ssh так же поддерживается протокол sftp. Подключение производится с тем же логином web и либо паролем, который был сгенерирован при создании VDS, либо с помощью ключа, так же указанного при создании VDS.

После входа в систему вы окажетесь в папке /var/www/web , которая является основной для наших образов VDS. Здесь вы найдете папку sites - это папка, в которой будут размещаться ваши сайты. Чтобы добавить новый сайт, достаточно внутри папки sites создать подпапку с именем нового сайта без префикса www. . Подробнее об этом ниже.

Логи посещения размещенных у вас сайтов apache будет писать в папку /var/log/apache2 , а nginx, если установлен, в папку /var/log/nginx . В случае, если у PHP-скриптов возникнут ошибки в работе, информация о них будет писаться в файл /var/www/web/php-errors.log

2. Добавление сайтов

Добавление сайтов - наиболее часто востребованная операция для массового виртуального хостинга, поэтому мы постарались максимально ее упростить. Для добавления нового сайта mycompany.ru на ваш сервер вам потребуется сделать два простых действия:

  1. В папке /var/www/web/sites нужно создать подпапку с именем mycompany.ru , то есть с именем размещаемого домена без www. . Внутрь этой папки в дальнейшем нужно будет выкладывать скрипты, относящиеся к этому сайту.
  2. Через редактор DNS у вашего провайдера, предоставляющего вам услугу парковки домена в DNS, необходимо будет добавить A-записи, указывающие на ip-адрес вашего VDS: одну для имени mycompany.ru , другую для www.mycompany.ru .

Добавление алиаса (альтернативного имени для вашего сайта) является не менее простой операцией. Если к сайту mycompany.ru нужно добавить алиас www.mycompany.ru , то потребуется всего два действия:

  1. Создать символьную ссылку (symlink): cd /var/www/web/sites && ln -s mycompany.ru www.mycompany.ru
  2. Создать A-записи в DNS, указывающие на ip-адрес вашего сервера: для имени c www. и без www.

Напоминаем вам, что сервис парковки доменов в dns мы предоставляем для всех наших клиентов бесплатно и без ограничений. Инструкции по делегированию доменов на наши ns-сервера приведены по ссылке .

3. Работа с MySQL (MariaDB)

Для вновь созданных VDS пароль доступа пользователем root в MySQL генерируется случайным образом. Узнать пароль можно командой

Sudo cat /root/.my.cnf

Если же вы хотите поработать с MySQL из консоли, то достаточно будет запустить команду sudo -H mysql без параметров и вы сразу попадете в консоль MySQL без необходимости вводить пароль. Если такая настройка системы вас не устраивает, смело можете удалить файл.my.cnf , предварительно сохранив себе записанный в нем пароль.

Файл настроек MySQL расположен в стандартном месте, но для его редактирования вам потребуются права суперпользователя:

Sudo nano /etc/mysql/my.cnf

Чтобы изменения вступили в силу, необходимо перезапустить MySQL:

Sudo service mysql restart

4. Настройка PHP и установка расширений

Поскольку в системе установлен стандартный PHP из репозиториев Debian/Ubuntu, настройка PHP и установка расширений производится стандартным для debian based дистрибутивов образом. Файл php.ini собирается из нескольких составных частей: из основного php.ini и из содержимого директории conf.d . Для FastCGI версии PHP настройки берутся из папки /etc/php5/cgi , для mod_php - из папки /etc/php5/apache2 , для CLI версии (это /usr/bin/php , то есть та версия php, которая используется для заданий cron и других задач, выполняемых в консоли) - /etc/php5/cli . Версия php-fpm, соответственно, использует php.ini из папки /etc/php5/fpm .

Вы можете легко посмотреть какие расширения php установлены в вашей системе, выполнив в консоли сервера команду:

$ dpkg -l | grep php

Посмотреть список доступных расширений php вы можете по команде:

$ apt-cache search php5

Перед самым первым вызовом команд apt-cache/apt-get на свежеустановленной системе не забудьте выполнить sudo apt-get update .

Установить требуемое расширение из списка очень просто. Допустим, мы хотим добавить в систему акселератор XCache. Соответствующий пакет будет называться php5-xcache , а команда по его установке, требующая привелегий суперпользователя, будет такая:

$ sudo apt-get install php5-xcache

Поскольку php начиная с версии 5.4 требует явного указания временной зоны в настройках (date.timezone), по-умолчанию устанавливается временная зона UTC . Эта настройка задается в файле /etc/php5/apache2/conf.d/local.ini . Вам необходимо изменить ее в соответствии со своими предпочтениями.

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

5. Запуск Django с использованием uWSGI

Django (Джанго) это свободный фреймворк, позволяющий быстро и качественно разрабатывать динамические веб-приложения на языке Python.

    Установка выполняется таким образом, чтобы не нарушать работу сайтов, расположенных в /var/www/

    Действия на сервере выполняются от имени пользователя root.

Показать инструкции по установке

5.1 Установка пакетов и запуск uWSGI

Установим необходимые для работы пакеты, а так же выберем версию uwsgi из pip как версию по-умолчанию:

Apt-get update && apt-get install -y python-pip python-dev uwsgi-plugin-python uwsgi && pip install virtualenv virtualenvwrapper uwsgi && update-alternatives --install /usr/bin/uwsgi uwsgi /usr/local/bin/uwsgi 80

На установку потребуется 2-3 минуты и установленные пакеты займут порядка 300 Мб на диске.

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

Useradd -s /bin/bash -m -p $(pwgen -1 -N 1) project1 && su - project1 -c "echo "export WORKON_HOME=~/Env" >> ~/.bashrc && echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc" && su - project1

Создадим виртуальное окружение, установим в нем django и создадим наш проект

Cd ~ && mkvirtualenv firstsite && pip install django && django-admin.py startproject firstsite

Для удобства перечитывания проекта создадим файл

Touch ~/firstsite/touch_reload

В дальнейшем достаточно будет выполнить эту же команду от имени пользователя project1 чтобы передать команду uwsgi перечитать конфигурацию проекта. Это может быть очень удобно, когда разработкой проекта занимается отдельный специалист без root доступа к серверу - администратору сервера не нужно будет каждый раз заходить от пользователя root для перезапуска uwsgi.

Вернемся к сессии пользователя root воспользовавшись сочетанием клавиш Ctrl + D .

Теперь создадим конфигурационный файл uwsgi для нашего проекта

Mcedit /etc/uwsgi/apps-enabled/firstsite.ini

И скопируем в него (вносить изменения в скопированный текст не требуется):

Project = firstsite userhomedir = /home/project1 chdir = %(userhomedir)/%(project) home = %(userhomedir)/Env/%(project) module = %(project).wsgi:application processes = 4 threads = 2 chown-socket = www-data uid = project1 gid = project1 vacuum = true touch-reload = %(userhomedir)/%(project)/touch_reload buffer-size = 8192 listen = 128 harakiri = 300

Для сохранения в mcedit достаточно нажать F2 на клавиатуре.

Запустим uwsgi сервер

/etc/init.d/uwsgi start

5.2 Создание конфигурационного файла для nginx

Нам потребуется выяснить IP адрес сервера. Его можно посмотреть выполнив команду

Hostname -I

Создадим сам конфигурационный файл для nginx

Mcedit /etc/nginx/sites-available/firstsite

И заполним его следующим текстом

Server { listen serverip:80; server_name sitenameru; location = /favicon.ico { access_log on; log_not_found off; } location /static/ { root /home/project1/firstsite; } location / { include uwsgi_params; uwsgi_pass unix:///run/uwsgi/app/firstsite/socket; } }

В этом конфигурационном файле потребуется изменить serverip на ip адрес Вашего сервера, а sitenameru - на имя домена, по которому будет открываться ваш проект.

Активируем только что созданный конфигурационный файл и передадим сигнал nginx для перечитывания конфигурации

Ln -s /etc/nginx/sites-available/firstsite /etc/nginx/sites-enabled/ && nginx -s reload

Готово! Если А запись в DNS для домена sitenameru указывает на IP адрес сервера, то ваш проект уже должен быть доступен по адресу sitenameru .

5.3 Оптимизация отображения статических файлов

Когда проект будет загружен и потребуется оптимизировать статические файлы, то достаточно будет выполнить команды

Su - project1 workon firstsite

Добавим в конец файла firstsite/firstsite/settings.py упоминание о расположении статических файлов

Echo "STATIC_ROOT = os.path.join(BASE_DIR, "static/")" | tee -a ~/firstsite/firstsite/settings.py

Запустим скрипт сбора статических файлов

~/firstsite/manage.py collectstatic

Для начала работы скрипта потребуется напечатать yes .

В данной статье рассмотрим свободно распространяемый и практически бесплатный набор программного обеспечения под названиям LAMP. Как правильно расшифровывается данная аббревиатура? Она состоит из 4-ех популярных технологий, которые состоят в данной связке: Linux - операционная система; - веб-сервер ; MySQL - СУБД; - язык программирования, с помощью которого создают веб-ресурсы.

Данный набор ПО устанавливают на сервер для отображения динамических веб-сайтов и веб-приложений. Эта платформа позволяет установить (развернуть) большинство типов веб-сайтов и сетевого программного обеспечения на вашем сервере.

Комбинация LAMP – это:

  1. серверная ОС Linux для выполнения нужных задач;
  2. веб-сервер Apache, для которого создано множество дополнительных модулей, которые решают вопрос совместной работы веб-сервера и сценариев, написанных на самых разных языках программирования;
  3. серверный язык динамических сценариев PHP (либо Perl);
  4. СУБД MySQL, которая демонстрирует отличную скорость выполнения SQL-запросов и идеально подходит для малых и средних проектов. MySQL работает на и , отличается особенным удобством в работе.

Для чего может понадобиться LAMP?

  • в случае необходимости окружения для веб-разработки и тестирования приложений, которые написаны для LAMP. Это как и для собственных приложений, так и для любых необходимых Вам CMS. Вы можете работать на Windows и на Ubuntu;
  • если Вам необходимо сделать на или на выделенном сервере производительный веб-сервер для хостинга своих проектов;
  • если Вам нужен сервер для систем контроля версий;
  • для самообучения администрирования;
  • в экономических целях, для создания собственного сервера.

Как весомое преимущество данной сборки : она замечательно подходит для быстрого развертывания приложения, из-за простой конфигурации, но все же она дает мало функций в плане масштабируемости и изоляции компонентов.

Среди недостатков подобной сборки следует выделить следующие:

Приложение и база данных используют одни и те же ресурсы сервера (CPU, память, I/O и т.д.), что дает низкую производительность и затрудняет определение источника (приложение или база данных) этой проблемы. Так же есть помехи в осуществлении горизонтального масштабирования.

Установка LAMP (Linux + Apache + MySQL + PHP/Perl/Python) является довольно широко используемым вариантом настройки серверов с Ubuntu. Есть большое количество приложений, которые имеют открытый исходный код и написаны с использованием стека приложений LAMP. Популярные приложения LAMP: wiki энциклопедии, системы управления содержимым (CMS) и управляющие приложения, например, phpMyAdmin.

Важное преимущество LAMP гибкость при подборе баз данных, web серверов и языков сценариев. Актуальной заменой для MySQL служат PostgreSQL и SQLite. Python, Perl и Ruby можно заменить PHP. А Nginx, Cherokee и Lighttpd альтернатива Apache.

Для быстрой установки LAMP используется tasksel. Tasksel – инструмент Debian/Ubuntu, который устанавливает несколько зависимых пакетов в вашу систему в качестве единой задачи.

Если Вам необходимо наладить работу LAMP на наших VPS серверах , обращайтесь в нашу круглосуточную техническую поддержку! Компания Hyper Host™ желает Вам приятной работы!

Технологии, которые поддерживает хостинг HyperHost подробнее .

9946 раз(а) 2 Сегодня просмотрено раз(а)

Под стеком web-приложений мы будем подразумевать множество программных продуктов с открытым исходным кодом: операционная система, web -сервер, сервер БД и среду исполняемого кода. Наиболее известным и обыденным стеком является LAMP. Это акроним для стека web-приложений на базе бесплатных решений с открытым исходным кодом.

LAMP -акроним, обозначающий набор (комплекс)серверногопрограммного обеспечения, широко используемый воВсемирной паутине. LAMP назван по первым буквам входящих в его состав компонентов:

    L inux-операционная системаLinux;

    A pache -веб-сервер;

    M ariaDB/M ySQL-СУБД;

    P HP-язык программирования, используемый для созданиявеб-приложений(помимо PHP могут подразумеваться другие языки, такие ж какPerlиPython).

Акроним LAMP может использоваться для обозначения:

    Инфраструктуры веб-сервера

    Парадигмы программирования

    Пакета программ

Хотя изначально эти программные продукты не разрабатывались специально для работы друг с другом, такая связка стала весьма популярной из-за своей гибкости, производительности и низкой стоимости (все её составляющие являются открытымии могут быть бесплатно загружены изИнтернета). Набор LAMP входит в состав большинствадистрибутивовLinuxи предоставляется многимихостинговыми компаниями.

Линукс обеспечивает приём/передачу запросов (контролирует железо) и является ядром для всего вышестоящего – сервер, СУБД, поддержка языка.

Установка на Ubuntu

Необходимо установить следующие пакеты:

После выполнения команды apt-get update для обновления локального списка пакетов вы сможете установить эти пакеты с помощью одной команды apt-get install:

После выполнения приведенной выше команды вам будет предложено установить эти пакеты и некоторые другие зависимости. Нажмите «y», а затем клавишу ВВОД, чтобы продолжить, и следуйте остальным указаниям по установке административного пароля для MySQL.

Это позволит вам установить минимальный набор расширений PHP, необходимый для использования PHP с MySQL.

Особенности и достоинства ос Линукс

Бесплатность.

Надежность. Корректная работа аппаратной части вашего ПК, позволитLinux’у работать годы без перезагрузки и зависаний. А кнопка Reset вообще никогда не понадобится.

Безопасность. В Linux практически нету вирусов. Само построение операционной системы исключает работу вредоносных программ.

Открытый исходный код . Это дает возможность использовать и модифицировать код по своему желанию.

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

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM , поддерживающие полнотекстовый поиск, так и таблицы InnoDB , поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

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