Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
wiki:apachemysqlphp [2012/05/10 23:54] Перевел части про отдельную настройку и установку apache и php |
wiki:apachemysqlphp [2013/05/26 17:15] [LAMP] |
||
---|---|---|---|
Строка 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=bash>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 ===== | ||
- | |||
Если требуется установить только веб-сервер Apache 2 используйте [[установка_программ|любой метод]] для того, чтобы установить пакет ''apache2''. | Если требуется установить только веб-сервер Apache 2 используйте [[установка_программ|любой метод]] для того, чтобы установить пакет ''apache2''. | ||
Для того, чтобы Apache заработал его следует перезапустить: | Для того, чтобы Apache заработал его следует перезапустить: | ||
Строка 26: | Строка 21: | ||
==== Возможные ошибки ==== | ==== Возможные ошибки ==== | ||
- | |||
Если при запуске появляется следующая ошибка\\ | Если при запуске появляется следующая ошибка\\ | ||
''apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName''\\ | ''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'' , со следующим содержанием: | + | запустите свой любимй текстовый редактор (например ''sudo [[nano|nano]]'' или ''gksu [[gedit|gedit]]'') и создайте файл ''/etc/apache2/conf.d/fqdn'' , со следующим содержанием: |
<file>ServerName localhost</file> | <file>ServerName localhost</file> | ||
Это так же можно сделать выполнив комманду: | Это так же можно сделать выполнив комманду: | ||
Строка 35: | Строка 29: | ||
==== Виртуальные хосты ==== | ==== Виртуальные хосты ==== | ||
- | |||
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=bash>sudo chown -R $USER:$USER /var/www </code> | ||
- | + | Вы также можете создать собственные сайты. | |
- | Вы также можете создать свои сайты. | + | |
Для примера мы создадим новый сайт в папке ///home/user/public_html/// : | Для примера мы создадим новый сайт в папке ///home/user/public_html/// : | ||
* Создаем копию стандартного конфиг-файл сайта и переименуем его | * Создаем копию стандартного конфиг-файл сайта и переименуем его | ||
<code=bash>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'', например: | |
- | * Редактируем новый конфиг-файл в текстовом редакторе "sudo nano" в консоли или "gksudo gedit" , для примера: gksudo gedit /etc/apache2/sites-available/mysite | + | .. <code=bash>gksudo gedit /etc/apache2/sites-available/mysite</code> |
+ | * Добавляем строчку с параметром //ServerName//. Для примера, //ServerName mysite// | ||
+ | * Добавляем строчку с параметром //ServerAlias//. Для примера, //ServerAlias www.mysite// | ||
* Изменяем параметр //DocumentRoot// на новое месторасположение сайта. Для примера, ///home/user/public_html/// | * Изменяем параметр //DocumentRoot// на новое месторасположение сайта. Для примера, ///home/user/public_html/// | ||
- | |||
* Изменяем параметр //Directory//, заменив //<Directory /var/www/>// на //<Directory /home/user/public_html/>// | * Изменяем параметр //Directory//, заменив //<Directory /var/www/>// на //<Directory /home/user/public_html/>// | ||
- | |||
* Вы можете иметь раздельные log-файлы для ваших сайтов. Для этого измените //ErrorLog// и //CustomLog// параметры. | * Вы можете иметь раздельные log-файлы для ваших сайтов. Для этого измените //ErrorLog// и //CustomLog// параметры. | ||
+ | * Сохраняем файл. | ||
- | * Сохраните файл | + | Теперь вы можете деактивировать ваш старый сайт и включить новый. Ubuntu содержит две маленькие утилиты для помощи в этом: ''a2ensite'' (**a**pache**2en**able **site**) и ''a2dissite'' (**a**pache**2dis**able **site**). |
- | + | ||
- | Теперь вы можете деактивировать ваш старый сайт и включить новый. Ubuntu содержит две маленькие утилиты для помощи в этом: **a2ensite** (apache2enable сайт) и **a2dissite** (apache2disable сайт). | + | |
<code=bash>sudo a2dissite default && sudo a2ensite mysite</code> | <code=bash>sudo a2dissite default && sudo a2ensite mysite</code> | ||
- | + | Осталось только перезапустить Apache2: | |
- | Теперь осталось только перезапустить Apache2: | + | |
<code=bash>sudo /etc/init.d/apache2 restart</code> | <code=bash>sudo /etc/init.d/apache2 restart</code> | ||
+ | Если вы не создали папку ///home/user/public_html///, то получите сообщение с предупреждением об этом. | ||
- | Если вы не создали папку // /home/user/public_html/ //, то получите сообщение с предупреждением | + | Для проверки вашего нового сайта создайте файл в папке ///home/user/public_html//: |
- | + | ||
- | Для проверки вашего нового сайта создайте файл в папке // /home/user/public_html/ //: | + | |
<code=bash>echo '<b>Hello! It is working!</b>' > /home/user/public_html/index.html</code> | <code=bash>echo '<b>Hello! It is working!</b>' > /home/user/public_html/index.html</code> | ||
- | |||
И откройте в браузере адрес http://localhost/ | И откройте в браузере адрес http://localhost/ | ||
===== Установка PHP 5 ===== | ===== Установка PHP 5 ===== | ||
- | Если требуется установить только веб-сервер Apache 2 используйте [[установка_программ|любой метод]] для того, чтобы установить пакет ''libapache2-mod-php5''. | + | Чтобы установить модуль PHP для Apache используйте [[установка_программ|любой метод]] для того, чтобы установить пакет ''libapache2-mod-php5''. |
Включить модуль PHP 5 в Apache можно выполнив: | Включить модуль PHP 5 в Apache можно выполнив: | ||
<code=bash>sudo a2enmod php5</code> | <code=bash>sudo a2enmod php5</code> | ||
Строка 88: | Строка 73: | ||
==== Проверка PHP ==== | ==== Проверка PHP ==== | ||
- | В папке ''/var/www'' создайте файл ''test.php'' , дайте права на чтение из него всем (или хотя бы пользователю ''apache'') и запишите в него следующую строку: | + | В папке ///var/www// создайте файл //test.php//, дайте права на чтение из него всем (или хотя бы пользователю ''apache'') и запишите в него следующую строку: |
<file=php><?php phpinfo(); ?></file> | <file=php><?php phpinfo(); ?></file> | ||
- | Теперь попробуйте в своем браузере перейти на страницу http://localhost/test.php . Если вы видите описание установленного PHP, значит вы все настроили правильно. | + | Теперь попробуйте в своем браузере перейти на страницу [[http://localhost/test.php]]. Если вы видите описание установленного PHP, значит вы все настроили правильно. |
==== Возможные ошибки ==== | ==== Возможные ошибки ==== | ||
Строка 103: | Строка 88: | ||
Не забывайте очищать кеш браузера перед тем как снова тестировать свой сайт. | Не забывайте очищать кеш браузера перед тем как снова тестировать свой сайт. | ||
- | Помните, что Apache будет обрабатывать файл только если URI начинается с [[http://]] . Если адрес начинается с [[file://]] , то файл будет отображатся напрямую браузером, по этому вы увидите только CSS и (X)HTML, но не PHP. Если вы не конфигурировали виртуальные хосты, то локальный адрес будет иметь вид http://127.0.0.1 , http://localhost или [[http://]]ваш_IP . | + | Помните, что Apache будет обрабатывать файл только если URI начинается с [[http://]] . Если адрес начинается с [[file://]] , то файл будет отображатся напрямую браузером, по этому вы увидите только CSS и (X)HTML, но не PHP. Если вы не конфигурировали виртуальные хосты, то локальный адрес будет иметь вид http://127.0.0.1 , http://localhost или [[http://ваш_IP]]. |
- | =====Для работы с MySql через веб-интерфейс===== | + | =====Установка MySQL и его модулей для PHP 5===== |
- | устанавливаем утилиту | + | Чтобы установить MySQL используйте [[установка_программ|любой метод]] для того, чтобы установить пакеты ''mysql-server libapache2-mod-auth-mysql php5-mysql''. |
+ | |||
+ | =====PhpMyAdmin===== | ||
+ | Все задачи которые требуется выполнить при момощи [[MySQL]] можно делать используя графический интерфейс программ ''phpmyadmin''. | ||
+ | Устанавливаем утилиту | ||
<code=bash>sudo apt-get install phpmyadmin</code> | <code=bash>sudo apt-get install phpmyadmin</code> | ||
- | при установке она запросит пароли | + | При установке она запросит пароли которые были заданы при установке MySQL. |
Зайти в него можно с адреса http://localhost/phpmyadmin/ | Зайти в него можно с адреса http://localhost/phpmyadmin/ | ||
- | =====Полезное===== | ||
- | Конфиги: | ||
- | <code=bash> | ||
- | gksudo gedit /etc/apache2/apache2.conf | ||
- | gksudo gedit /etc/php5/apache2/php.ini | ||
- | </code> | ||
===== FAQ ===== | ===== FAQ ===== | ||
- | **Как включить отображение ошибок PHP?** | ||
- | В используемом конфиге [[http://docs.php.net/manual/ru/ini.php|php.ini]], точное местоположение которого подскажет функция [[http://ru2.php.net/manual/en/function.phpinfo.php|phpinfo()]] (для дефолтного апача например ''/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|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]]. | + | === Где лежат настройки Apache/PHP/MySQL? === |
+ | ^Путь^Описание^ | ||
+ | |///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_на_предприятии}} | {{tag>Администрирование apache php mysql lamp Server Linux_на_предприятии}} |