Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:apachemysqlphp [2010/02/26 15:47] |
wiki:apachemysqlphp [2013/11/25 20:15] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | Это перевод статьи: https://help.ubuntu.com/community/ApacheMySQLPHP | + | ====== 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 в Ubuntu 7.04 (Feisty Fawn) и новее == | + | ===== Установка стандартного набора LAMP ===== |
- | + | Начиная с Ubuntu 7.04 (Feisty Fawn) поумолчанию установлена полезная утилита [[https://help.ubuntu.com/community/Tasksel|Tasksel]](англ.). Она поможет вам установить LAMP. | |
- | Ваша система уже содержит полезную утилиту Tasksel. Она поможет вам установить LAMP. Просто выполним команду: | + | Просто выполним команду: |
- | sudo tasksel install lamp-server | + | <code=bash>sudo tasksel install lamp-server</code> |
- | При установке будет запрошен пароль для создания администратора БД MySQL. | + | При установке будет запрошен пароль для создания администратора БД [[MySQL]]. |
- | + | ||
- | = Удаление LAMP == | + | |
+ | ===== Удаление LAMP ===== | ||
Для удаления LAMP вам придется удалить его компоненты отдельно: | Для удаления LAMP вам придется удалить его компоненты отдельно: | ||
- | {{{ | + | <code> |
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 | 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 | ||
- | }}} | + | </code> |
- | === Виртуальные хосты === | + | ===== Установка Apache 2 ===== |
+ | Если требуется установить только веб-сервер Apache 2 используйте [[установка_программ|любой метод]] для того, чтобы установить пакет ''apache2''. | ||
+ | Для того, чтобы Apache заработал его следует перезапустить: | ||
+ | <code=bash>sudo /etc/init.d/apache2 restart</code> | ||
- | Apache2 позволяет создавать различные конфигурационные файлы для сайтов. Они находятся в папке /etc/apache2/sites-available. По-умолчанию создается только один сайт default, на который можно зайти введя в браузере http://localhost или http://127.0.0.1. Вы можете создать свои сайты. | + | ==== Возможные ошибки ==== |
+ | Если при запуске появляется следующая ошибка\\ | ||
+ | ''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> | ||
- | Для примера мы создадим новый сайт в папке /home/user/public_html/ : | + | ==== Виртуальные хосты ==== |
- | * Создаем копию стандартного конфиг-файл сайта и переименуем его | + | Apache2 позволяет создавать различные конфигурационные файлы для сайтов. Они находятся в папке ///etc/apache2/sites-available//. По-умолчанию создается только один сайт default, на который можно зайти введя в браузере http://localhost или http://127.0.0.1. |
- | sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mysite | + | |
- | * Редактируем новый конфиг-файл в текстовом редакторе "sudo nano" в консоли или "gksudo gedit" , для примера: gksudo gedit /etc/apache2/sites-available/mysite | + | Директория для файлов сайта находится в ///var/www//. Необходимы права root для доступа к этой папке. Но вы можете изменить права на нее командой |
+ | <code=bash>sudo chown -R $USER:$USER /var/www </code> | ||
+ | Вы также можете создать собственные сайты. | ||
- | * Изменяем параметр DocumentRoot на новое месторасположение сайта. Для примера, /home/user/public_html/ | + | Для примера мы создадим новый сайт в папке ///home/user/public_html/// : |
+ | * Создаем копию стандартного конфиг-файл сайта и переименуем его | ||
+ | <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// параметры. | ||
+ | * Сохраняем файл. | ||
- | * Изменяем параметр Directory, заменив <Directory /var/www/> на <Directory /home/user/public_html/> | + | Теперь вы можете деактивировать ваш старый сайт и включить новый. 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///, то получите сообщение с предупреждением об этом. | ||
- | * Вы можете иметь раздельные log-файлы для ваших сайтов. Для этого измените ErrorLog и CustomLog параметры. | + | Внесем имя сайта в список хостов сервера: |
+ | <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> | ||
- | * Сохраните файл | + | Для проверки вашего нового сайта создайте файл в папке ///home/user/public_html//: |
+ | <code=bash>echo '<b>Hello! It is working!</b>' > /home/user/public_html/index.html</code> | ||
+ | И откройте в браузере адрес http://localhost/ | ||
- | Теперь вы можете деактивировать ваш старый сайт и включить новый. Ubuntu содержит две маленькие утилиты для помощи в этом: a2ensite (apache2enable сайт) и a2dissite (apache2disable сайт). | + | ===== Установка 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. | ||
- | sudo a2dissite default && sudo a2ensite mysite | + | Для того, чтобы изменения вступили в силу перезапустите 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, значит вы все настроили правильно. | ||
- | Теперь осталось только перезапустить Apache2: | + | ==== Возможные ошибки ==== |
- | sudo /etc/init.d/apache2 restart | + | Ваш браузер предлагает вам скачивать PHP-страницы, а не показывает вам их? Если Apache не обрабатывает PHP-страницы после того как вы ео перезапустили, попробуйте установить пакет ''libapache2-mod-php5'' . Обычно он устанавливается вместе с пакетом ''php5'', но он может быть удален изза конфликта пакетов, которым нужна другая версия PHP. |
- | Если вы не создали папку /home/user/public_html/, то получите сообщение с предупреждением | + | Если при выполнении команды ''sudo a2enmod php5'' вы получаете в ответ |
+ | <code>This module does not exist!</code> | ||
+ | попробуйте полностью удалить пакет ''libapache2-mod-php5'' | ||
+ | <code=bash>sudo apt-get purge libapache2-mod-php5</code> | ||
+ | и установить его заново. | ||
- | Для проверки вашего нового сайта создайте файл в папке /home/user/public_html/: | + | Не забывайте очищать кеш браузера перед тем как снова тестировать свой сайт. |
- | echo '<b>Hello! It is working!</b>' > /home/user/public_html/index.html | + | |
- | И откройте в браузере адрес http://localhost/ | + | Помните, что Apache будет обрабатывать файл только если URI начинается с [[http://]] . Если адрес начинается с [[file://]] , то файл будет отображатся напрямую браузером, по этому вы увидите только CSS и (X)HTML, но не PHP. Если вы не конфигурировали виртуальные хосты, то локальный адрес будет иметь вид http://127.0.0.1 , http://localhost или [[http://ваш_IP]]. |
+ | |||
+ | =====Установка MySQL и его модулей для PHP 5===== | ||
+ | Чтобы установить MySQL используйте [[установка_программ|любой метод]] для того, чтобы установить пакеты ''mysql-server libapache2-mod-auth-mysql php5-mysql''. | ||
+ | |||
+ | =====PhpMyAdmin===== | ||
+ | Все задачи которые требуется выполнить при момощи [[MySQL]] можно делать используя графический интерфейс программ ''phpmyadmin''. | ||
+ | Устанавливаем утилиту | ||
+ | <code=bash>sudo apt-get install phpmyadmin</code> | ||
+ | При установке она запросит пароли которые были заданы при установке MySQL. | ||
- | ====Для управления всеми задачами работы с MySql в графическом виде==== | + | Зайти в него можно с адреса http://localhost/phpmyadmin/ |
- | устанавливаем утилиту | + | |
- | phpmyadmin | + | |
- | при установке она запросит пароли | + | |
- | Зайти в него можно http://localhost/phpmyadmin/ | + | |
- | конфигурационные файлы: | + | При ошибке 404 внесите в файл /etc/apache2/apache2.conf строчку Include /etc/phpmyadmin/apache.conf |
- | gksudo "gedit /etc/apache2/apache2.conf" | + | |
- | gksudo "gedit /etc/php5/apache2/php.ini" | + | |
+ | ===== FAQ ===== | ||
- | You can access apache by typing 127.0.0.1 or http://localhost (by default it will be listening on port 80) in your browser address bar. By default the directory for apache server pages is /var/www . It needs root access in order to put files in. | + | === Где лежат настройки Apache/PHP/MySQL? === |
+ | ^Путь^Описание^ | ||
+ | |///etc/mysql/my.cnf//|Файл настроек [[MySQL]]| | ||
+ | |///etc/apache2/apache2.conf//|Файл настроек Apache 2| | ||
+ | |///etc/php5/apache2/php.ini//|Файл настроек PHP5| | ||
- | if you want to make /var/www your own. (Use only for non-production web servers - this is not the most secure way to do things.) | + | === Как включить отображение ошибок 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]] -- вывод ошибок в результирующую страницу. | ||
- | $ sudo chown -R $USER:$USER /var/www | + | ===== Ссылки ===== |
+ | * [[https://help.ubuntu.com/community/ApacheMySQLPHP|Статья на английской Ubuntu Wiki]] | ||
+ | * [[wpru>LAMP|Статья на Wikipedia]] | ||
+ | {{tag>Администрирование apache php mysql lamp Server Linux_на_предприятии}} |