Мета-пакет 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