Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:apachemysqlphp [2010/02/26 16:12] |
wiki:apachemysqlphp [2013/11/25 20:15] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | <note>Статья основана на: https://help.ubuntu.com/community/ApacheMySQLPHP</note> | + | ====== LAMP (apache mysql php)====== |
- | Заметка поможет установить и настроить [[http://ru.wikipedia.org/wiki/LAMP|LAMP]] (**L**inux-**A**pache-**M**ySQL-**P**HP) сервер в Ubuntu включающий Apache 2, PHP 5, и MySQL 5.0. | + | В этой статье описана установка и настройка [[wpru>LAMP|LAMP]] (**L**inux-**A**pache-**M**ySQL-**P**HP) сервера на базе Ubuntu включающего Apache 2, PHP 5, и MySQL 5.0. |
===== Установка стандартного набора LAMP ===== | ===== Установка стандартного набора LAMP ===== | ||
- | + | Начиная с Ubuntu 7.04 (Feisty Fawn) поумолчанию установлена полезная утилита [[https://help.ubuntu.com/community/Tasksel|Tasksel]](англ.). Она поможет вам установить LAMP. | |
- | В Ubuntu 7.04 (Feisty Fawn) и новее уже содержится полезная утилита [[https://help.ubuntu.com/community/Tasksel|Tasksel]]. Она поможет вам установить LAMP. | + | |
Просто выполним команду: | Просто выполним команду: | ||
- | <code>sudo tasksel install lamp-server</code> | + | <code=bash>sudo tasksel install lamp-server</code> |
- | При установке будет запрошен пароль для создания администратора БД MySQL. | + | При установке будет запрошен пароль для создания администратора БД [[MySQL]]. |
===== Удаление LAMP ===== | ===== Удаление LAMP ===== | ||
- | |||
Для удаления LAMP вам придется удалить его компоненты отдельно: | Для удаления LAMP вам придется удалить его компоненты отдельно: | ||
<code> | <code> | ||
- | apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl | + | apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 php5-common php5-mysql |
- | libdbi-perl libmysqlclient15off libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.0 mysql-common mysql-server | + | |
- | mysql-server-5.0 php5-common php5-mysql | + | |
</code> | </code> | ||
- | ===== Виртуальные хосты ===== | + | ===== Установка Apache 2 ===== |
+ | Если требуется установить только веб-сервер Apache 2 используйте [[установка_программ|любой метод]] для того, чтобы установить пакет ''apache2''. | ||
+ | Для того, чтобы Apache заработал его следует перезапустить: | ||
+ | <code=bash>sudo /etc/init.d/apache2 restart</code> | ||
+ | ==== Возможные ошибки ==== | ||
+ | Если при запуске появляется следующая ошибка\\ | ||
+ | ''apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName''\\ | ||
+ | запустите свой любимй текстовый редактор (например ''sudo [[nano|nano]]'' или ''gksu [[gedit|gedit]]'') и создайте файл ''/etc/apache2/conf.d/fqdn'' , со следующим содержанием: | ||
+ | <file>ServerName localhost</file> | ||
+ | Это так же можно сделать выполнив комманду: | ||
+ | <code=bash>echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn</code> | ||
+ | |||
+ | ==== Виртуальные хосты ==== | ||
Apache2 позволяет создавать различные конфигурационные файлы для сайтов. Они находятся в папке ///etc/apache2/sites-available//. По-умолчанию создается только один сайт default, на который можно зайти введя в браузере http://localhost или http://127.0.0.1. | Apache2 позволяет создавать различные конфигурационные файлы для сайтов. Они находятся в папке ///etc/apache2/sites-available//. По-умолчанию создается только один сайт default, на который можно зайти введя в браузере http://localhost или http://127.0.0.1. | ||
- | Директория для файлов сайта находится в // /var/www //. Необходимы права root для доступа к этой папке. Но вы можете изменить права на нее командой | + | Директория для файлов сайта находится в ///var/www//. Необходимы права root для доступа к этой папке. Но вы можете изменить права на нее командой |
- | + | <code=bash>sudo chown -R $USER:$USER /var/www </code> | |
- | <code>$ sudo chown -R $USER:$USER /var/www </code> | + | Вы также можете создать собственные сайты. |
- | + | ||
- | Вы также можете создать свои сайты. | + | |
Для примера мы создадим новый сайт в папке ///home/user/public_html/// : | Для примера мы создадим новый сайт в папке ///home/user/public_html/// : | ||
* Создаем копию стандартного конфиг-файл сайта и переименуем его | * Создаем копию стандартного конфиг-файл сайта и переименуем его | ||
- | <code>sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysite </code> | + | <code=bash>sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysite </code> |
+ | ** Отредактируем новый конфиг-файл в текстовом редакторе выполнив в консоли ''sudo nano'' или ''gksudo gedit'', например: | ||
+ | .. <code=bash>gksudo gedit /etc/apache2/sites-available/mysite</code> | ||
+ | * Добавляем строчку с параметром //ServerName//. Для примера, //ServerName mysite// | ||
+ | * Добавляем строчку с параметром //ServerAlias//. Для примера, //ServerAlias www.mysite// | ||
+ | * Изменяем параметр //DocumentRoot// на новое месторасположение сайта. Для примера, ///home/user/public_html/// | ||
+ | * Изменяем параметр //Directory//, заменив //<Directory /var/www/>// на //<Directory /home/user/public_html/>// | ||
+ | * Вы можете иметь раздельные log-файлы для ваших сайтов. Для этого измените //ErrorLog// и //CustomLog// параметры. | ||
+ | * Сохраняем файл. | ||
- | * Редактируем новый конфиг-файл в текстовом редакторе "sudo nano" в консоли или "gksudo gedit" , для примера: gksudo gedit /etc/apache2/sites-available/mysite | + | Теперь вы можете деактивировать ваш старый сайт и включить новый. Ubuntu содержит две маленькие утилиты для помощи в этом: ''a2ensite'' (**a**pache**2en**able **site**) и ''a2dissite'' (**a**pache**2dis**able **site**). |
+ | <code=bash>sudo a2dissite default && sudo a2ensite mysite</code> | ||
+ | Осталось только перезапустить Apache2: | ||
+ | <code=bash>sudo /etc/init.d/apache2 restart</code> | ||
+ | Если вы не создали папку ///home/user/public_html///, то получите сообщение с предупреждением об этом. | ||
- | * Изменяем параметр //DocumentRoot// на новое месторасположение сайта. Для примера, ///home/user/public_html/// | + | Внесем имя сайта в список хостов сервера: |
+ | <code=bash>sudo gedit /etc/hosts</code> | ||
+ | Дописать в строчку 127.0.0.1 localhost через пробел mysite www.mysite | ||
+ | Перезапустить Apache2 | ||
+ | <code=bash>sudo /etc/init.d/apache2 restart</code> | ||
- | * Изменяем параметр //Directory//, заменив //<Directory /var/www/>// на //<Directory /home/user/public_html/>// | + | Для проверки вашего нового сайта создайте файл в папке ///home/user/public_html//: |
+ | <code=bash>echo '<b>Hello! It is working!</b>' > /home/user/public_html/index.html</code> | ||
+ | И откройте в браузере адрес http://localhost/ | ||
- | * Вы можете иметь раздельные log-файлы для ваших сайтов. Для этого измените //ErrorLog// и //CustomLog// параметры. | + | ===== Установка PHP 5 ===== |
+ | Чтобы установить модуль PHP для Apache используйте [[установка_программ|любой метод]] для того, чтобы установить пакет ''libapache2-mod-php5''. | ||
+ | Включить модуль PHP 5 в Apache можно выполнив: | ||
+ | <code=bash>sudo a2enmod php5</code> | ||
+ | Это создаст символическую ссылку /etc/apache2/mods-enabled/php5 указывающую на /etc/apache2/mods-availble/php5 . | ||
+ | Если не вы используете устаревшие в PHP короткие теги ''<?'' (что крайне нерекомендуемо) вместо ''<?php'' откройте от имени [[sudo|суперпользователя | ||
+ | ]] файл ''/etc/php5/apache2/php.ini'' , найдите в нем строчку | ||
+ | <file>short_open_tag = On</file> | ||
+ | и замените ее на | ||
+ | <file>short_open_tag = Off</file> | ||
+ | Это заставит игнорировать открывающие теги ''<?xml'' в файлах, обрабатываемых PHP. | ||
- | * Сохраните файл | + | Для того, чтобы изменения вступили в силу перезапустите Apache |
+ | <code=bash>sudo service apache2 restart</code> | ||
+ | <note>note</note> | ||
+ | ==== Проверка PHP ==== | ||
+ | В папке ///var/www// создайте файл //test.php//, дайте права на чтение из него всем (или хотя бы пользователю ''apache'') и запишите в него следующую строку: | ||
+ | <file=php><?php phpinfo(); ?></file> | ||
+ | Теперь попробуйте в своем браузере перейти на страницу [[http://localhost/test.php]]. Если вы видите описание установленного PHP, значит вы все настроили правильно. | ||
- | Теперь вы можете деактивировать ваш старый сайт и включить новый. Ubuntu содержит две маленькие утилиты для помощи в этом: **a2ensite** (apache2enable сайт) и **a2dissite** (apache2disable сайт). | + | ==== Возможные ошибки ==== |
+ | Ваш браузер предлагает вам скачивать PHP-страницы, а не показывает вам их? Если Apache не обрабатывает PHP-страницы после того как вы ео перезапустили, попробуйте установить пакет ''libapache2-mod-php5'' . Обычно он устанавливается вместе с пакетом ''php5'', но он может быть удален изза конфликта пакетов, которым нужна другая версия PHP. | ||
- | <code>sudo a2dissite default && sudo a2ensite mysite</code> | + | Если при выполнении команды ''sudo a2enmod php5'' вы получаете в ответ |
+ | <code>This module does not exist!</code> | ||
+ | попробуйте полностью удалить пакет ''libapache2-mod-php5'' | ||
+ | <code=bash>sudo apt-get purge libapache2-mod-php5</code> | ||
+ | и установить его заново. | ||
- | Теперь осталось только перезапустить Apache2: | + | Не забывайте очищать кеш браузера перед тем как снова тестировать свой сайт. |
- | <code>sudo /etc/init.d/apache2 restart</code> | + | |
- | Если вы не создали папку // /home/user/public_html/ //, то получите сообщение с предупреждением | + | Помните, что Apache будет обрабатывать файл только если URI начинается с [[http://]] . Если адрес начинается с [[file://]] , то файл будет отображатся напрямую браузером, по этому вы увидите только CSS и (X)HTML, но не PHP. Если вы не конфигурировали виртуальные хосты, то локальный адрес будет иметь вид http://127.0.0.1 , http://localhost или [[http://ваш_IP]]. |
- | Для проверки вашего нового сайта создайте файл в папке // /home/user/public_html/ //: | + | =====Установка MySQL и его модулей для PHP 5===== |
- | <code>echo '<b>Hello! It is working!</b>' > /home/user/public_html/index.html</code> | + | Чтобы установить MySQL используйте [[установка_программ|любой метод]] для того, чтобы установить пакеты ''mysql-server libapache2-mod-auth-mysql php5-mysql''. |
- | И откройте в браузере адрес http://localhost/ | + | =====PhpMyAdmin===== |
- | + | Все задачи которые требуется выполнить при момощи [[MySQL]] можно делать используя графический интерфейс программ ''phpmyadmin''. | |
- | =====Для работы с MySql в графическом виде===== | + | Устанавливаем утилиту |
- | устанавливаем утилиту | + | <code=bash>sudo apt-get install phpmyadmin</code> |
- | <code>apt-get install phpmyadmin</code> | + | При установке она запросит пароли которые были заданы при установке MySQL. |
- | при установке она запросит пароли | + | |
Зайти в него можно с адреса http://localhost/phpmyadmin/ | Зайти в него можно с адреса http://localhost/phpmyadmin/ | ||
- | =====Полезное===== | + | При ошибке 404 внесите в файл /etc/apache2/apache2.conf строчку Include /etc/phpmyadmin/apache.conf |
- | Конфиги: | + | |
- | <code> | + | ===== FAQ ===== |
- | gksudo "gedit /etc/apache2/apache2.conf" | + | |
- | gksudo "gedit /etc/php5/apache2/php.ini" | + | === Где лежат настройки Apache/PHP/MySQL? === |
- | </code> | + | ^Путь^Описание^ |
+ | |///etc/mysql/my.cnf//|Файл настроек [[MySQL]]| | ||
+ | |///etc/apache2/apache2.conf//|Файл настроек Apache 2| | ||
+ | |///etc/php5/apache2/php.ini//|Файл настроек PHP5| | ||
+ | |||
+ | === Как включить отображение ошибок PHP? === | ||
+ | В используемом файле настроек [[http://docs.php.net/manual/ru/ini.php|php.ini]], точное местоположение которого подскажет функция [[http://ru2.php.net/manual/en/function.phpinfo.php|phpinfo()]] (для устанавливаемого по умолчанию Apache это ///etc/php5/apache2/php.ini//) за отображение ошибок отвечают следующие опции: | ||
+ | * [[http://www.php.net/manual/en/errorfunc.configuration.php#ini.log-errors|log_errors]] -- установка уровня детализации [[http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting|отчетов об ошибках]]. По умолчанию установлено значение ''[[http://www.php.net/manual/en/errorfunc.constants.php|E_ALL & ~E_DEPRECATED]]'', которое отображает все ошибки. | ||
+ | * [[http://www.php.net/manual/en/errorfunc.configuration.php#ini.display-errors|display_errors]] -- вывод ошибок в результирующую страницу. | ||
+ | |||
+ | ===== Ссылки ===== | ||
+ | * [[https://help.ubuntu.com/community/ApacheMySQLPHP|Статья на английской Ubuntu Wiki]] | ||
+ | * [[wpru>LAMP|Статья на Wikipedia]] | ||
+ | {{tag>Администрирование apache php mysql lamp Server Linux_на_предприятии}} |