doc.3dn.ru
Пятница, 29.03.2024, 10:55
Приветствую Вас Гость | RSS
 
Главная Каталог статейРегистрацияВход
Меню сайта
Категории каталога
LINUX (Server`s) [16]
Windows (Server`s) [3]
Наш опрос
Нужны ли на сайте видео уроки по Flash?
Всего ответов: 489


Главная » Статьи » Сервера » LINUX (Server`s)

Настройка Apache2 + SSL + PHP5 + MySQL5 в Ubuntu

Настройка Apache2 + SSL + PHP5 + MySQL5 в Ubuntu


Установка всего необходимого для LAMP сервера:

sudo apt-get update
sudo apt-get install apache2 php5 php5-mysql mysql-server-5.0

По необходимости доставляются другие php модули типа php5-gd, php5-imagick, php5-curl и другие.

Конфиг apache2 в убунту организован интересным образом. Вот листинг /etc/apache2/ :
apache2.conf
conf.d/
envvars
httpd.conf
mods-available/
mods-enabled/
ports.conf
sites-available/
sites-enabled/

В apache2.conf - основная конфигурация веб сервера.
httpd.conf - пустой, оставлен для совместимости.
mods-available/ - каталог содержащий подключаемые конфигурационные файлы апача, которые активируют тот или иной его модуль.
sites-available/ - каталог содержащий подключаемые конфигурационные файлы апача, которые активируют тот или иной виртуал хост.
Чтобы активировать модуль или виртуал хост созданы утилиты a2enmod и a2ensite.
Пример использования:
ulmen@chtulhu:~$ sudo a2enmod php5
Module php5 installed; run /etc/init.d/apache2 force-reload to enable.


По сути a2enmod, a2ensite, a2dismod и a2dissite создают или удаляют символический линк конфига из sites-available/ в sites-enabled/ (mods- в случае с модулями).

Добавление виртула хоста:
1. Скопировать /etc/apache2/sites-available/default в /etc/apache2/sites-available/example.com
ulmen@chtulhu:~$ cd /etc/apache2/sites-available
ulmen@chtulhu:~$ sudo cp ./default ./example.com

2. Отредактировать example.com
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
ServerAdmin webmaster@example.com

DocumentRoot /var/httpdocs/example.com
<Directory /var/httpdocs/example.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory〉

ErrorLog /var/log/apache2/error.log

LogLevel warn

ServerSignature On

</VirtualHost>


3. Создаем каталог для Document Root:
ulmen@chtulhu:~$ mkdir -p /var/httpdocs/example.com

Настройка SSL:
1. Создание сертификата:
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

(актуально для Feisty, в более старых релизах нужно выполнить apache2-ssl-certificate)
2. Добавить порт 443 в /etc/apache2/ports.conf
Listen 80
Listen 443

3. Скопировать /etc/apache2/sites-available/default в /etc/apache2/sites-available/ssl,
отредактировать default таким образом:
NameVirtualHost *:80
<VirtualHost *:80>
...
</VirtualHost>

также отредактировать /etc/apache2/sites-avaible/ssl:
NameVirtualHost *:443
<VirtualHost *:443>
...
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
...
</VirtualHost>

4. Добавить ssl в examle.com таким же образом как и в файле ssl, пример:
<VirtualHost *:443>
ServerName www.example.com
ServerAlias example.com
ServerAdmin webmaster@localhost

DocumentRoot /var/httpdocs/example.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
<Directory /var/httpdocs/example.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

ErrorLog /var/log/apache2/error.log


LogLevel warn

ServerSignature On

</VirtualHost>

5. Активация модуля и сайта:
ulmen@chtulhu:~$ a2enmod ssl
ulmen@chtulhu:~$ a2ensite ssl

6. Рестарт веб сервера:
ulmen@chtulhu:~$ sudo /etc/init.d/apache2 restart
* Forcing reload of web server (apache2)... [ OK ]

Настройка mysql:
Mysql после установки работоспособна без дополнительных настроек. Так как пользователь базы root без пароля, нужно задать для него пароль:
ulmen@chtulhu:~$ mysqladmin -u root password myPassword

Проверка базы:
ulmen@chtulhu:~$ mysql -u root -p

Настройка PHP: /etc/php5/apache2/php.ini, после смены настроек нужно перегрузить апач.

7. Прячем версию Apache
Как я показал в этой статье, каждый может узнать подробную информацию о вашем сервере, набрав довольно простую команду. 

Речь пойдет о двух директивах Apache: ServerTokens и ServerSignature и как их использовать. Использование данных директив поможет нам дать минимум информацию в банере Apache:

ServerTokens

Эта директива контролирует как сервер отвечает на запрос клиентом поля заголовка, в котором содержится информацио о операционной системе, установленных модулях и прочее.

По умолчанию установлено в Full (ServerTokens Full). Различные дистрибутивы могут менять данный параметр.
Возможные значения:

ServerTokens SettingServer Banner Header
ProductOnlyServer: Apache
Major Server:Apache/2
Minor Server: Apache/2.0
MinimalServer: Apache/2.0.55
OSServer: Apache/2.0.55 (Debian)
Full (or not specified) defaultServer: Apache/2.0.55 (Debian) PHP/5.1.2-1+b1 mod_ssl/2.0.55 OpenSSL/0.9.8b

Начиная с Apache 2.0.44, эта директива также контролирует информацию предоставляемую директивой ServerSignature, описанной ниже. 

ServerSignature

Эта директива отвечает за вывод подвала страницы в документах, сгенерированных сервером (сообщения о ошибках и прочее). 
  • Данная директива может быть выставлена не только глобально, но и для виртуальных хостов, и в .htaccess. 
  • По умолчанию она отключена (ServerSignature Off), но некоторые Linux дистрибутивы могут менять данное значение и включать её. 
Возможные значения: 
Off (default): подавлять вывод 
On: включать строку с указанием версии сервера. 
EMail: включено все, и дополнительно доступно поле "mailto:” ссылающееся на ServerAdmin. 

Вывод: если вы хотите обеспечить минимум выводимой о сервере информации, установите данные значения в конфиге Apache: 
ServerTokens ProductOnly
ServerSignature Off

8. Скрываем версию PHP (X-Powered-By)
Необходимо изменить переменную expose_php в файле php.ini, установив её в значение off.

По умолчанию expose_php имеет значение On.

В файле php.ini (в разныех Linux дистрибутивах он может иметь различное местоплолажение, например /etc/php.ini, /etc/php5/apache2/php.ini, и т.д.) найдите строку содержащую "expose_php On” и установите её значение в Off:

expose_php = Off

После этого ваш веб сервер не будет показывать информацию о версии PHP.


Источник: http://ulmencave.blogspot.com
Категория: LINUX (Server`s) | Добавил: doc (23.07.2008) | Автор: Дмитрий
Просмотров: 13828 | Комментарии: 1 | Рейтинг: 4.5/2 |

Всего комментариев: 1
1 mnv  
0
Спасибо! Сделал по инструкции и заработало.
Один момент, если писать
VirtualHost *:443
то при перезапуске apahce выдавал ошибку

[Mon May 17 09:11:08 2010] [error] VirtualHost *:443 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
[Mon May 17 09:11:08 2010] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

Чтобы от нее избавиться, я прописал
VirtualHost example.com:443

И еще, файлы example.com и example.com_ssl я объединил в один файл.



Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск
Друзья сайта
www.work-zilla.com
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0


Copyright MyCorp © 2024
Бесплатный хостинг uCoz