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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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 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_на_предприятии}}