В связи с тем что уже реально заколебался каждый раз напрягать мозг и гуглить когда надо прикрутить «Лампу» решил сделать заметку для себя. Инфы в инетах много, но реально «стоящей» мало...
LAMP server — аббревиатура: Linux, Apache, MySQL, PHP/Perl/Python (плюс, сюда часто добавляют Ruby On Rails).
Устанавливается достаточно просто, можно при помощи одной команды:
$ sudo apt-get install lamp-server^
но это довольно тупо и как показала практика неэффективно... (для профессиональных танцоров с бубном подойдёт, ну или сервер планируется «не замысловатый»). А так...
- Linux — как установить и правильно настроить сервер на Linux надо отдельную статейку создавать, предполагается что он есть! (ubuntu 10.04 рулит!)
- Apache. Установка веб-сервера Apache довольно проста:
$ sudo apt-get install apache2
- PHP. Не забываем модуль для работы с мускулом:
$ sudo apt-get install php5 libapache2-mod-php5 php5-mysql
хотя на много лучше:
$ sudo apt-get install libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev
php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming
php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
последняя команда добавит модули PHP. Занимает не так много места, но мало ли что в жизни случиться...
(После данной операции, объём занятого дискового пространства возрастёт где-то на 60MB, но зато готовы ко всем превратностям судьбы). Если стрёмно или впадлу, но требуются дополнительные модули PHP, то полный список пакетов доступных в репозитарии, можно получить, введя
$sudo apt-cache search php5
- Пакеты для «мускула» устанавливаются командой:
$ sudo apt-get install mysql-server mysql-client
В процессе установки должен появиться запрос на ввод пароля администратора базы данных. Если установку прошла в тихом режиме (а такого я ни разу не встречал!), не задавая вопросов, то надыть установить пароль root вручную:
$ sudo mysqladmin -u root password пароль
После данной операции, объём занятого дискового пространства возрастёт ещё на 50MB
ну типо всё... а нет!
$ sudo /etc/init.d/apache2 restart (для деликатного ребута : $ sudo /etc/init.d/apache2 reload)
Проверить что у на выхлопе получилось необходимо так:
Набираем в браузере строку http://localhost, – в ответ мы должны увидеть надпись «It works! и бла-бла-бла». Чтобы проверить работу PHP, создаем файл test.php и пробуем к нему обратиться:
$ sudo echo '<?phpinfo()?>' > /var/www/test.php
и в браузере http://localhost/test.php
В ответ появиться таблица с настройками PHP. Если вместо счастья ахинея типа «404» или вообще ошибка, следует просмотреть логи веб-сервера, расположенные в каталоге /var/log/apache2. Тут как правило багатенно информативных подсказок и косяки озвучиваются.
- web-сервер без виртуальных хостов (создания нескольких сайтов для одного ip-шника) - «унылость» и провокация (с возможностью наживы для разработчика в будущем!) Поэтому кратко:
Существует 2 папки - /etc/apache2/sites-available — там список потенциально возможных сайтов, и /etc/apache2/sites-enabled — тут рабочие сайты.
В папке sites-available есть готовый шаблон как правильно оформить виртуальный хост (его лучше оставить как памятку на будущие). На базе этого шаблона надо создать новый файл с таким содержанием:
<VirtualHost *:80> ServerAlias Алиас_сайта #будет отдельная статья (указывать не обязательно, также рулится на уровне доменных имён) ServerAdmin webmaster@localhost #мыло админа ;) ServerName site1.lg.ua # имя сайта DirectoryIndex index.php index.html index.htm # порядок поиска индексных файлов DocumentRoot /var/www/site1.lg.ua # путь (любой) к папке с сайтом <Directory> <Directory /var/www/site1.lg.ua> # настройка доступа для директории Options -Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ….. ErrorLog /var/log/apache2/error.log # лог ошибок # Possible values include: debug, info, notice, warn, error, crit,alert, emerg. LogLevel debug #логировать все ошибки и предупреждения CustomLog /var/log/apache2/access.log combined # лог доступа </virtualHost>
Все каталоги указанные в этом конфиге должны быть созданы в ручную, а название сайта продублировано в /etc/hosts!
О! Чтобы сайт включить необходимо после всех вышеозначенных манипуляций воспользоваться командой
Пы.Пы.сы. Имеет смысл сразу поставить
#a2ensite /etc/apache2/sites-available/имя_сайта
Чтобы выключить соответсвенно
#a2dissite /etc/apache2/sites-available/имя_сайта
Ну или прибить в папке sites-enabled одноимённый конфиг.
Пы.Сы. При первом запуске веб-сервера в консоли выводится сообщение о том, что Апач не может определить доменное имя данного хоста:
«apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName»
ну или как-то так.... Это не проблема, но реально кумарит! Чтобы его убрать, следует установить значение переменной ServerName в apache2.conf. (Иногда эта настройка вынесена в отдельный файл /etc/apache2/conf.d/fqdn).
ServerName пофиг-что
Пы.Пы.сы. Имеет смысл сразу поставить
phpmyadmin...
Веб-сервер работает с правами пользователя: USER=www-data GROUP=www-data
Основные конфигурационные файлы LAMP в Ubuntu
- /etc/network/interfaces – настройка сетевых интерфейсов
- /etc/hostname – сетевое имя узла
- /etc/hosts – соответствие имени и IP (локальный DNS)
- /etc/resolv.conf – IP-адреса DNS-серверов
- /etc/apt/sources.list – используемые APT-репозитарии пакетов
- /etc/mysql/my.cnf – настройка MySQL
- /etc/apache2 – каталог с конфигурационными файлами веб-сервера
- /etc/apache2/apache2.conf – основной файл настройки Apache
- /etc/apache2/conf.d/fqdn – имя (ServerName) веб-сервера по дефолту
- /etc/apache2/envvars – основные переменные Apache
- /etc/apache2/sites-available/default – сайт по-умолчанию
- /etc/php5 – файлы настроек PHP5
Большинство взято от сюда: http://www.xakep.ru/magazine/xa/120/120/1.asp ну и из личного опыта (само собой).