LAMP (apache mysql php) Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:apachemysqlphp [2010/02/26 16:07]
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 позволяет создавать различные конфигурационные файлы для сайтов. Они находятся в папке ///​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>​ 
 + 
 +==== Виртуальные хосты ==== 
 +Apache2 позволяет создавать различные конфигурационные файлы для сайтов. Они находятся в папке ///​etc/​apache2/​sites-available//​. По-умолчанию создается только один сайт default, на который можно зайти введя в браузере ​ http://​localhost или http://​127.0.0.1. ​ 
 + 
 +Директория для файлов сайта находится в ///​var/​www//​. Необходимы права root для доступа к этой папке. Но вы можете изменить права на нее командой 
 +<​code=bash>​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" +
-</​code>​+
  
-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 barBy 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_на_предприятии}}