Мета-пакет LAMP

Абревіатура LAMP позначає ряд продуктів вільного програмного забезпечення, використовуваного спільно, щоб працювати з динамічними веб-сторінках або серверами:
Linux: операционная система
Apache, веб-сервер
MySQL, менеджер баз даних або сервер баз даних
Perl, PHP і / або Python: скриптові мови

Увага: Комп'ютер, на якому щодня працюють, не повинен служити як сервер. Для сервера підійде тільки той комп'ютер, який не зайнятий іншими завданнями!

Можливості застосування сервера
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 folder with phpinfo() як показано нижче:

mcedit /var/www/test.php

# test.php
<?  phpinfo(); ?>

Наберіть в браузері адресу:

http://localhost/test.php
or
http://yourip:80/test.php

і Ви побачите конфігурацію PHP і основні установки.

Ви можете редагувати необхідні значення або налаштування віртуальних доменів за допомогою конфігураційного файлу Apache.

Якщо ви хочете перевірити вашу установку, перейдіть в браузер і введіть наступну адресу

http://youripaddress/apache2-default/

Якщо появлиться на дисплеї вітальне повідомлення, тоді установка виконана правильно.

За замовчуванням кореневим каталогом для apache2 є /var/www Змініть це на:

mkdir /home/myself/www
ln -s /home/myself/www /var/www

Роблячи вище команди, ви не можете редагувати свої веб-сайти в Вашому домашному розділу зі правами звичайного користувача.

FTP клієнти

Використовуйте SSH та прочитайте уважно SSH topic , в aptosid є ще один, вбудований в Konqueror клієнт FTP, яким Ви також можете завантажувати файли.

Активації захисних протоколів

Брандмауери

Позбавлений брандмауера, сервер залишається абсолютно НЕЗАХИЩЕНИМ. Блокуйте все, поки воно не знадобиться, а потім знову блокуйте.

21 (ftp)
22 (SSH)
25 110 (email)
443 (SSL http or https)
993 (imap ssl)
995 (pop3 ssl)
80 (http)
and any other port going!

Захист файлів сервера за замовчуванням

За замовчуванням сервер Apache, надає клієнтам необмежений доступ (доступ за замовчуванням) до всіх файлів, до яких може знайти шлях за допомогою звичайних правил відображення URL. (Це важливий і часто упускаємий аспект!)

Наприклад:

 1. # cd /; ln -s / public_html
 2. Accessing http://localhost/~root/

Это позволит клиентам обращаться ко всей файловой системе! Чтобы не допустить этого, необходимо добавить к конфигурации сервера следующее:

<Directory />
   Order Deny,Allow
   Deny from all
</Directory>

Таким способом Ви забороните доступ до кореневої папки файлової системи. Таким же чином додайте блокування <Directory> до конфігурації, щоб дозволити доступ тільки до дозволеним областям. наприклад:

<Directory /usr/users/*/public_html>
    Order Deny,Allow
    Allow from all
</Directory>
<Directory /usr/local/httpd>
    Order Deny,Allow
    Allow from all
 </Directory>

Особливу увагу має приділятися узгодженості команд <Location> та <Directory> Навіть якщо команда <Directory /> забороняє доступ, команда <Location /> може обійти цю заборону.

Уникайте експериментів з командою UserDir, якщо Ви поставите щось подібне це буде мати той-же ефект, що і в першому прикладі, тільки для кореня "/".. Для версії 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

Він автоматично згенерує символічне посилання між модами доступних і модов з підтримкою

Зробіть копію '/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/
(or)
#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. наприклад:

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

Сторінка останний раз переглянута 14/08/2010 0100 UTC