Веб сервер под Debian/Apache2
Ни на что не претендуя, опишу последовательность действий для apache, mysql, php и т.д.
Участники забега:
![]() |
![]() |
![]() |
![]() |
![]() |
Имеем сервер с двумя белыми ip-адресами и Debian+KVM на нем. На хостовой машине настраиваем бридж kvmbr0->eth0 для будущих гостевых ОС и ставим в качестве одной из них – еще один Дебиан.
Меняем порт по умолчанию SSH.
Из веб-серверов остановимся на самом типичном, ведь у нас типичный пост:
1 |
apt-get install apache2 |
Для размещения нескольких доменов настроим виртуальный хостинг – в файле /etc/apache2/ports.conf укажем наш нетипичный IP-адрес:
1 |
NameVirtualHost 11.22.33.44:80 |
Закрывшись с помощью iptables наглухо, не помешает иметь под рукой следующие временные правила (открыть на время необходимого для себя удаленного доступа):
1 2 3 4 5 6 7 8 |
# mysql: вставить правило пятой линией (выше дропов), разрешающее открыть порт 3306 iptables -I INPUT 5 -p tcp -m tcp --dport 3306 -j ACCEPT # разрешаем доступ по FTP iptables -A INPUT -p tcp -m tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT iptables -I OUTPUT 5 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT # proftpd: в конфиге сервера указал порты 1024 1024 пассивными и iptables -I INPUT 5 -p tcp -m tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT -m comment --comment "Allow passive inbound connections" iptables -I OUTPUT 5 -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT |
1 2 |
apt-get install mysql-server php5-mysql php5 phpmyadmin mysql_secure_installation |
У каждого домена/сайта будет собственный конфиг (носящий имя домена/сайта) в каталоге /etc/apache2/sites-available/
Создаем файл /etc/apache2/sites-available/own.com.sd
1 2 3 4 5 6 7 8 9 10 |
ServerAdmin sap@sap.sd ServerName sap.sd ServerAlias www.sap.sd DocumentRoot /var/public_html/sap.sd/ ErrorLog /usr/logs/sap.sd/error.log CustomLog /usr/logs/sap.sd/access.log combined RewriteEngine On # здесь содержимое .htaccess RewriteCond %{REQUEST_FILENAME} !-d |
указанные в конфиге подкаталоги создаем тут же.
Далее даем очень известные команды:
1 2 |
a2ensite own.com invoke-rc.d apache2 restart |
отключить сайт – a2dissite
Теперь создадим базу данных – входим командой mysql -u root -p и даем команду:
CREATE DATABASE database_name;
если у вас есть ранее выгруженные данные в формате sql, вы можете импортировать их на этом шаге:
1 2 3 4 |
опционально: [mysql -uroot -p --default-character-set=utf8 database_name] use database_name; опционально: [SET names 'utf8'] source /home/rooslan/sap_sd.sql; |
Выдаем права на базу
1 2 |
grant all on database_name.* to 'rooslan'@'localhost' identified by 'qwertyKakoiKrutoiParol'; flush privileges; |
распаковав файлы данных (cms, etc) в, скажем, /var/public_html/own.com делаем ее владельцем Апач:
1 |
chown -R www-data:www-data /var/public_html/own.com |
Далее настроим phpMyAdmin – в самый конец файла /etc/apache2/apache2.conf добавим строчку
1 |
Include /etc/phpmyadmin/apache.conf |
и рестартим апач.
Конечным шагом я обычно проверяю, что exim4+sendmail будет корректно работать для php:
1 |
echo "Subject: sendmail test" | sendmail -v sap@sap.sd |
Uchla
07.02.2015 @ 13:06
Как сгенерировать запрос на удаление в phpMyAdmin всех таблиц с определенным префиксом: