понедельник, 11 июня 2007 г.

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

Недавно имел удовольствие настраивать LAMP сервер на убунту. Так как найти централизированного мануала(да и еще и на русском) мне не удалось, решил написать эту заметку.
Итак присутпим.
Установка всего необходимого для 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, после смены настроек нужно перегрузить апач.

Надеюсь ничего не забыл :)

43 коммент.:

dmpr0 комментирует...

Куул спасибо. Я со своим недоконца прямыми руками долго этим занималсо теперь в следующий раз будет легше.

kruft комментирует...

такой вид конфигурации индейца2 во многих системах, например, в том же старшем брате убунты -- Дебиан.

Анонимный комментирует...

перегружать апач не стоит :) и даже перезагружать - пользователи обидятся :)
apache2ctl graceful
Но для своих серверов я все же предпочитаю debian

ulmen комментирует...

kruft, неудивительно, что в дебиане и убунту система конфигов апача идентична :)

anonymous, какие пользователи при первичной настройке сервера? да и насколько я понимаю грейсфул не поможет при подключении модулей.

Анонимный комментирует...

> Так как найти централизированного мануала(да и еще и на русском) мне не удалось, решил написать эту заметку.
Нет, всё конечно очень хорошо, но блин... Почему бы теперь эту заметку не запостить в официальный вики или на форум.убунту.ру ? Почему бы не помочь сообществу в создании того самого "централизированного" ?

ulmen комментирует...

>почему бы теперь эту заметку не запостить в официальный вики или на форум.убунту.ру ?

Свой блог роднее убунтуфорума, тем более зачастую всеравно гуглем ищут. А по поводу вики - давайте ссылочку на русскую убунту-вики, будет время - помещу туда.

Анонимный комментирует...

http://ubuntu.ru/Wiki
и
https://wiki.ubuntu.com/RussianDocumentation

Lord Tirion комментирует...

В ubuntuguide.org тоже не плохо было запостить.

Алексей Костин комментирует...

Думаю, не мешало бы в примеры конфигов добавить AddDefaultCharset WINDOWS-1251.

Или это только у меня сайты еще не в UTF-8? :)

inf комментирует...

Syntax error on line 3 of /etc/apache2/sites-enabled/ssl:
Invalid command '...', perhaps misspelled or defined by a module not included in the server configuration

я чего-то неправильно сделал? :)

Alexandr комментирует...
Это сообщение было удалено автором.
Анонимный комментирует...

debconf: DbDriver "config": could not write /var/cache/debconf/config.dat-new: Permission denied
что я делаю неправильно

Druss комментирует...

Syntax error on line 3 of /etc/apache2/sites-enabled/ssl:
Invalid command '...', perhaps misspelled or defined by a module not included in the server configuration
я чего-то неправильно сделал? :)


три точки писать не нада.... Имеется ввиду что место "..." идут дерективы


Syntax error on line 3 of /etc/apache2/sites-enabled/ssl:
Invalid command '...', perhaps misspelled or defined by a module not included in the server configuration
я чего-то неправильно сделал? :)


используй sudo

ar4i-s комментирует...

art@Sarks:/etc/apache2/sites-enabled$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 Syntax error on line 20 of /etc/apache2/sites-enabled/ssl:
SSLCertificateFile: file '/etc/apache2/ssl/apache.pem' does not exist or is empty


Выдает такуч ошибку. Как ее исправить и с юем она свзана?
нет вообще папки /etc/apache2/ssl..
хотя я установил все пакеты, которые нужны(в статье была команда, которая ставила все нужные пакеты).

Анонимный комментирует...

Вообще в случае ошибок типа Invalid command '...', perhaps mis-spelled or defined by a module not included in the server configuration
Нужно загружать необходимые модули, т.е в httpd.conf прописать например LoadModule access_module /etc/httpd/modules/mod_access.so

Анонимный комментирует...

Спасибо Вам огромное :) наконецто я разобрался))

df-yz комментирует...

Огромное спасибо, очень помогло в своё время)

Написал очень похожую статью, но про LANMP - вот тут

Sergey комментирует...

Спасибо за статью.
Добавил в закладки

Анонимный комментирует...

Спасибо огромное!

df-yz комментирует...

Прошу прощения, предыдущий линк мёртв. Случайно увидел, как кто-то стучался в него, посему - рабочий линк.

Жека комментирует...

спасибо большое... настороить то я настроил, но как мне конкретно сделать так чтоб мой ком превратился в сервер и чтоб можно было с другого компа входить на страничку... я уже кучу всего прочитал а как конкретно это сделать нигде немогу найти

Dex комментирует...

Вопросик небольшой.
Если создать два вирт-хоста с именами скажем example2.com и example2.com и в описаниях хостов (файлов в sites-available) :
VirtualHost *:80
то при перезагрузке апача ошибка:
_default_ VirtualHost overlap on port 80, the first has precedence. Понятно, что лезут два на один порт.
IP-шники им дал раздельные в /etc/hosts : 127.0.0.4 и 127.0.0.5 (это тестовая локаль).
Чего не так?

Df_Yz комментирует...

Dex, Apache наплевать на то, какие IP назначены именам его виртуальных хостов в /etc/hosts.conf. Посему, их надо указать явно: "127.0.0.4:80" и "127.0.0.5:80" соответственно.

Dex комментирует...

Спасибо df_yz, получилось.

Анонимный комментирует...

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

yanzykov комментирует...

а как проверить работоспособность сервака по локальной сетке. Вроде все без ошибок, но что дальше делать что увидеть сайт в браузере на соседнем компе не знаю((( Надоумите плиз

Арман комментирует...

при рестарте apache2 выдает:
(98) Address already in use: make_sock: could not bind to addres 0.0.0.0:443

Lazy комментирует...

Спасибо за статью!!!

Анонимный комментирует...

А к стати подскажите как запустить CGI скрипт?
А то простое копирование файла с расширением cgi ничего не даёт.
А на странице выводит текст скрипта.

It works! например когда на
//localhost печатает
А когда указываю например
//localhost/cgi-bin/test1.cgi
с простым скриптом
Код:

#!/usr/bin/perl
use CGI;
use strict;

print header;
print "Hello, World!";


то выдаёт просто текст скрипта, как будто не может интерпретировать.
перл стоит,
сервер запускается,
моды какие нашёл установил...

В чём может быть дело?...

Анонимный комментирует...

А к стати подскажите как запустить CGI скрипт?
А то простое копирование файла с расширением cgi ничего не даёт.
А на странице выводит текст скрипта.

It works! например когда на
//localhost печатает
А когда указываю например
//localhost/cgi-bin/test1.cgi
с простым скриптом
Код:

#!/usr/bin/perl
use CGI;
use strict;

print header;
print "Hello, World!";


то выдаёт просто текст скрипта, как будто не может интерпретировать.
перл стоит,
сервер запускается,
моды какие нашёл установил...

В чём может быть дело?...

calibra комментирует...

Я пользуюсь денвером, простой в пользовании, установил и работай.

Анонимный комментирует...

calibra, а разве есть денвер под линукс? я что то не встречал

Анонимный комментирует...

Закачать QIP, ICQ, Trillian, RQ, Miranda, ICQ Lite, ICQtoolz на вебсайте в http://www.cufeedu.com.cn/FCKeditor/editor/filemanager/browser/default/connectors/php/connectorUserFiles/File/a-ya-yai_vash_virtualnyi_sobesednik.html

Анонимный комментирует...

I found this site using [url=http://google.com]google.com[/url] And i want to thank you for your work. You have done really very good site. Great work, great site! Thank you!

Sorry for offtopic

Анонимный комментирует...

Who knows where to download XRumer 5.0 Palladium?
Help, please. All recommend this program to effectively advertise on the Internet, this is the best program!

Анонимный комментирует...

[b]GPS оборудование [/b]

GPS - глобальная система позиционирования, определение местоположения путём измерения расстояний до объекта от точек с известными координатами — спутников. Расстояние вычисляется по времени задержки распространения сигнала от посылки его спутником до приёма антенной GPS-приёмника. То есть, для определения трёхмерных координат GPS-приёмнику нужно знать расстояние до трёх спутников и время GPS системы[1]. Таким образом, для определения координат и высоты приёмника, используются сигналы как минимум с четырёх спутников.

[b]GSM оборудование [/b]

GSM-системы (on-line системы) позволяют получать информацию от оборудования мониторинга по каналам передачи операторов мобильной связи. Таким образом, съем информации с оборудования происходит в любой момент времени без непосредственного доступа к нему. В этом состоит основное преимущество GSM-систем перед off-line системами, требующими непосредственного подключения модулей мониторинга к персональному компьютеру. Наше оборудование поддерживает все технологии передачи информации по сети GSM: SMS, CSD, GPRS, Voice.

[b]Счетчики топлива [/b]

Применение топливных счетчиков позволяет предприятиям получить объективную информацию о времени работы машин, вести постоянный контроль реального потребления горючего. При помощи DFM можно разработать нормы расхода ГСМ на отдельных маршрутах и технологических операциях.
Экономический эффект применения приборов учета топлива различен на разных предприятиях, обычно от 10 до 40 %, в зависимости от запущенности исходной ситуации и настойчивости менеджмента автопредприятия.

Link: http://gps-group.at.ua/

Анонимный комментирует...

Good day !.
You re, I guess , perhaps curious to know how one can manage to receive high yields .
There is no initial capital needed You may start earning with as small sum of money as 20-100 dollars.

AimTrust is what you thought of all the time
The company represents an offshore structure with advanced asset management technologies in production and delivery of pipes for oil and gas.

It is based in Panama with offices around the world.
Do you want to become a happy investor?
That`s your chance That`s what you desire!

I`m happy and lucky, I started to get real money with the help of this company,
and I invite you to do the same. If it gets down to choose a proper partner utilizes your money in a right way - that`s AimTrust!.
I make 2G daily, and what I started with was a funny sum of 500 bucks!
It`s easy to start , just click this link http://rujifoviwu.virtue.nu/tahofug.html
and go! Let`s take this option together to feel the smell of real money

Анонимный комментирует...

Good day !.
You may , probably very interested to know how one can manage to receive high yields .
There is no need to invest much at first. You may begin to receive yields with as small sum of money as 20-100 dollars.

AimTrust is what you thought of all the time
The company incorporates an offshore structure with advanced asset management technologies in production and delivery of pipes for oil and gas.

Its head office is in Panama with structures everywhere: In USA, Canada, Cyprus.
Do you want to become a happy investor?
That`s your chance That`s what you really need!

I`m happy and lucky, I started to take up income with the help of this company,
and I invite you to do the same. If it gets down to select a proper partner who uses your funds in a right way - that`s AimTrust!.
I make 2G daily, and what I started with was a funny sum of 500 bucks!
It`s easy to start , just click this link http://cyropepeqi.greatnow.com/zysafy.html
and lucky you`re! Let`s take our chance together to get rid of nastiness of the life

Анонимный комментирует...

Да уж. Как говорится в устоявшемся выражении:
Мы придумали водородную бомбу, автомобиль «Жигули» и много других страшных вещей.

Анонимный комментирует...

Да уж. Как говорится в устоявшемся выражении:
Это мы гордимся НАШИМ великим русским языком и выражаем ему респект.

Анонимный комментирует...

Конфиг это конечно хорошо! Но если можно, объясните пожалуйста значения всех опций используемых в конфиге. Мне как человеку впервые столкнувшемуся с индейцем это очень бы помогло. Заранее спасибо.

Анонимный комментирует...

Радует, который ваш блог ежеминутно развивается. Такие посты исключительно прибавляют популярности.

Анонимный комментирует...

[url=http://pittsburghmom.com/members/Pokimon2010/default.aspx/][img]http://i048.radikal.ru/0910/57/9a759e833d4a.jpg[/img][/url]

10605 movies of premium DVD quality

We secure thousands of the hottest movies you've been waiting to ready for! And they're stylish available in Hi-Def!
These movies are playable on most viewing devices including iPod, PDA (HandHelds), PC, DVD & DivX players.
There are definitely no limits. Download as much as you penury with incredibly gamy speeds. No additional software is required!
Unreservedly click on a tie, download a cinema and superintend it on your favorite player.

[size=4][url=http://pittsburghmom.com/members/Pokimon2010/default.aspx]Sign Up[/url] today and forget about buying or renting DVDs offline. [/size]


[url=http://movies.aoaoaxxx.ru/][img]http://s43.radikal.ru/i102/0910/37/6c734f3ca5fb.jpg[/img][/url]





























[url=http://pittsburghmom.com/members/Pokimon2010/default.aspx][b]TOP 40 BEST Movies:[/b][/url]
Conan the Barbarian
Ocean's Twelve
Suffering Man's Charity aka Ghost Writer
Oliver Twist
Harry Potter and the Half-Blood Prince
Awake
Owning Mahowny
Heartbreakers
Importance of Being Earnest, The
Cocktail
On Golden Pond
Shoot on Sight
Shrink
Opportunists, The
Poseidon
Dishdogz
Prestige, The
Into the Blue
Best of the Best 4: Without Warning
Phantasm
Little Kidnappers, The
Naughty Stewardesses
Return of the Texas Chainsaw Massacre, The
Assassination of Jesse James by the Coward Robert Ford, The
Deathline
Johnny Handsome
Above the Law
Franklyn
Family Man, The
Kiss Before Dying, A


[url=http://labnet.cc.isel.ipl.pt/members/ilijatrepov21.aspx]In the Mouth of Madness [/url]
[url=http://nsigcommunity.com/members/ahdjacjuk10.aspx]Lost Voyage [/url]
[url=http://coredeveloper.net/members/klarissagolutv.aspx]Heatstroke [/url]
[url=http://airlinemanpower.com/communityserver/members/rustamsavastee.aspx]Rear Window [/url]
[url=http://navaly.org/members/klimperehodov7.aspx]Stuart Little 2 [/url]
[url=http://ishug.is/members/nuzartimoshenko.aspx]Into the Wild [/url]
[url=http://askmecode.com/members/suhajljakuvikin.aspx]Celestine Prophecy, The [/url]
[url=http://forums.pmy.myclassifiedsite.com/members/valerijaosiik60.aspx]Rocky II [/url]
[url=http://nsigcommunity.com/members/ahdjacjuk10.aspx]Siege, The [/url]
[url=http://james-e-morris.com/csjem/members/evgenijkrivoshe.aspx]Cat In The Brain, A [/url]