Мета-пакет LAMP
Аббревиатура LAMP обозначает ряд продуктов свободного программного обеспечения, используемого совместно, чтобы работать с динамическими веб-страницами или серверами:
Linux: операционная система
Apache: веб-сервер
MySQL: менеджер баз данных или сервер баз данных
Perl, PHP и/или Python: скриптовые языки
Внимание: Компьютер, на котором ежедневно работают, не должен служить как сервер. Для сервера подойдёт только тот компьютер, который не занят другими задачами.
Возможности применения сервера:
a) локальный тестовый сервер для веб-дизайнеров без интернетa-связи (смотрите эту главу)
b) частный файловый сервер с интернет-связью
c) частный веб-сервер с обширной интернет-связью
d) коммерческий веб-сервер (не рассматривается в этом руководстве)
Минимальные требования
Для использования сервера, вам нужен минимум 256 МБ оперативной памяти (RAM). При меньшем количестве будут проблемы, так как сервер MySQL нуждается в большом количестве памяти для нормальной производительности. Когда недостаточно памяти, MySQL выдает следующее сообщение об ошибке: "cannot connect to mysql.sock".
Установите следующие пакеты:
apache2 apache2-utils apache2-mpm-prefork php5 php5-common mysql-server mysql-common libapache2-mod-php5 php5-mysql phpmyadmin
Внимание!
apt-get remove --purge splashy
Стартовая анимация Splashy конфликтует с mysql, удаляем её (если она установлена).
Файл конфигурации для Apache находится в: /etc/apache2/apache2.conf, а Ваш веб-каталог здесь: /var/www. Не меняйте начальных настроек debian'а в 'mpm-worker/mpm-prefork', это не имеет смысла и приведёт только к путанице.
Чтобы проверить, инсталлирован ли php и правильно ли он работает, создайте файл test.php в/var/www с функцией phpinfo (), как показано ниже:
mcedit /var/www/test.php # test.php <? phpinfo(); ?>
Наберите в браузере адрес:
http://localhost/test.php или http://ваш_ip:80/test.php
и Вы увидите конфигурацию php и основные настройки.
Вы можете подкорректировать необходимые значения, или настроить виртуальные домены с помощью конфигурации Apache.
Чтобы проверить инсталляцию, наберите в браузере:
http://ваш-ip-адрес/apache2-default/
Если Вы увидите приветственное сообщение, значит всё в порядке.
Корневым каталогом для документов у apache2 является /var/www. Сделайте следующее:
mkdir /home/myself/www ln -s /home/myself/www /var/www
Теперь Вы можете редактировать веб-страницу в домашнем каталоге, с правами простого пользователя.
Клиенты FTP
Для использования SSH внимательно прочтите руководство по SSH, в aptosid имеется ещё один, встроенный в Konqueror клиент FTP, которым Вы также можете загружать файлы.
Активации защитных протоколов для веб-сервера
Брандмауер
Лишённый брандмауэра, сервер остаётся совершенно незащищённым. Блокируйте всё, пока оно не понадобится, а потом снова блокируйте.
21 (ftp) 22 (SSH) 25 110 (email) 443 (SSL-http или https) 993 (imap ssl) 995 (pop3 ssl) 80 (http) а также каждый другой использованный порт!
Принципы защиты данных сервера
По умолчанию сервер Apache предоставляет клиентам неограниченный доступ (default access) ко всем файлам, к которым может найти путь посредством обычных правил отображения URL.(Это важный и зачастую упускаемый аспект!)
Например:
1. # cd /; ln -s / public_html 2. Accessing http://localhost/~root/
Это позволит клиентам обращаться ко всей файловой системе! Чтобы не допустить этого, необходимо добавить к конфигурации сервера следующее:
<Directory /> Каталог Deny,Allow Deny from all </Directory>
Таким способом Вы запретите доступ к корневой папке файловой системы. Таким же образом добавьте блокировки <Directory> к конфигурации, чтобы разрешить доступ только к дозволенным областям. Например:
<Directory /usr/users/*/public_html> Каталог Deny,Allow Allow from all </Directory> <Directory /usr/local/httpd> Каталог Deny,Allow Allow from all </Directory>
Особенное внимание должно уделяться согласованности команд <Location> и <Directory>. Даже если команда <Directory/> запрещает доступ, команда <Location/>, может обойти этот запрет.
Избегайте экспериментов с командой UserDir; если Вы поставите что-то вроде ". / " это будет иметь тот же эффект, что и в первом примере, только для root. Для версии Apache 1.3 или выше, мы настойчиво рекомендуем вставлять следующую строку в файле конфигурации:
UserDir disabled root
SSL
Запустите скрипт “apache2-ssl-certificate”
# apache2-ssl-certificate
Вы увидите следующий диалог, внесите необходимые изменения:
Creating self-signed certificate replace it with one signed by a certification authority (CA) enter your ServerName at the Common Name prompt. If you want your certificate to expire after x days call this programm with -days x ----- Generating a 1024 bit RSA private key -------- writing new private key to '/etc/apache2/ssl/apache.pem' -------- You are about to be asked to enter information that will be incorporated into your certificate request. ----------- What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank. For some fields there will be a default value, ---------- If you enter '.', the field will be left blank.
Country Name (2 letter code) [GB]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company; recommended) []: Organizational Unit Name (eg, section) []: server name (eg. ssl.domain.tld; required!!!) []: Email Address []:
Запустите скрипт “a2enmod ssl” i.e
# a2enmod ssl
Он автоматически сгенерирует символическую ссылку между mods-available и mods-enabled.
Затем сделайте копию файла '/etc/apache2/sites-available/default' в папку /etc/apache2/sites-available/ и назовите его 'ssl':
# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
Создайте символическую ссылку на этот новый файл конфигурации, чтобы использовать его
# ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ (или) #a2ensite ssl
После того, как измените базовые настройки в /etc/apache2/apache2.conf или измените маршрут документа в /etc/apache2/sites-available/default, перезапустите сервер Apache.
Сервер Apache перезапускается следующей командой:
#service apache2 restart
Теперь отредактируйте адреса портов в /etc/apache2/ports.conf. По умолчанию прослушивается порт 80, но так как мы устанавливаем SSL , надо изменить на порт 443.
Listen 443
Отредактируйте файл /etc/apache2/sites-available/ssl (или как Вы назвали свой файл конфигурации ssl) измените порт сайта 80 на 443.
Добавьте две строки в /etc/apache2/apache2.conf:
SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem
Введите путь для файлов сертификата и ключей сертификата в файл SSLCertificateFile /etc/apache2/ssl/apache.pem. Например:
Ex:- SSLCertificateFile /etc/apache2/ssl/online.test.net.crt SSLCertificateKeyFile /etc/apache2/ssl/online.test.net.key
Чтобы отключить ServerSignature, добавьте в /etc/apache2/apache2.conf строки:
ServerSignature Off ServerTokens ProductOnly
Если Вы хотите разрешить другие типы индексных файлов, добавьте в файл /etc/apache2/apache2.conf:
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml
Перезапустите сервер Apache
service apache2 restart
Теперь у Вас есть "Песочница" - тестовый сервер. Этот тестовый сервер НЕ ДОЛЖЕН БЫТЬ СВЯЗАН С ИНТЕРНЕТОМ. Делайте это только на компьютере, предназначенном для веб-сервера!
Источники:
http://www.mysql-apache-php.com
http://httpd.apache.org/docs/1.3/misc/security_tips.html
http://www.debianhelp.co.uk/webserver.htm