Давайте рассмотрим самую базовую и самую простую задачу, установить три компонента (Apache2, PHP5 и MySQL) на вашу свежую Ubuntu 11.10 и ораганизовать «быстрый» Web-сервер.
Здесь стоит напомнить, что Apache2 это один из самых популярных серверов, с большими возможностями, такими как: кросплатформенность (свой первый Apache-сервер я завел под Windows), надёжность и гибкость конфигурации (httpd.conf и .htaccess), возможность подключать внешние модули для предоставления данных, механизм виртуальных хостов, интеграция с другим ПО и языками программирования и многое-многое другое. Прочиать больше вы можете конечно же в Wikipedia – Apache2. Как установить и настроить Apache2, PHP5 и MySQL в Ubuntu 11.10 (LAMP) читайте под катом.
LAMP
LAMP — это набор серверных программ. Данная реализация веб сервера является наиболее популярной в Интернете на сегодняшний день.
Компоненты LAMP:
Linux — ОС Linux;
Apache — Web-сервер;
MySQL — база данных;
PHP — язык программирования, используемый для создания веб-приложений.
Linux — ОС Linux;
Apache — Web-сервер;
MySQL — база данных;
PHP — язык программирования, используемый для создания веб-приложений.
Кстати есть еще одно название, очень популярное, это BAMP, где B это BSD система, т.е. Unix.
Установка LAMP в Ubuntu 11.10
Начнем с СУБД MySQL:
- sudo su
- apt-get install mysql-server mysql-client
Система попросит вас ввести логин и пароль для учетной записи рута:
New password for the MySQL «root» user: <-- вашRootПарольДляMySQL
Repeat password for the MySQL "root" user: <-- вашRootПарольДляMySQL
New password for the MySQL «root» user: <-- вашRootПарольДляMySQL
Repeat password for the MySQL "root" user: <-- вашRootПарольДляMySQL
Убедитесь, что MySQL запущена:
- ps -ef | grep mysql
- mysql 5478 1 1 15:41 ? 00:00:00 /usr/sbin/mysqld
Поставим Apache2:
- apt-get install apache2
Убедитесь, что Apache2 запущен:
- ps -ef | grep apache2
- root 5974 1 0 15:43 ? 00:00:00 /usr/sbin/apache2 -k start
- www-data 5977 5974 0 15:43 ? 00:00:00 /usr/sbin/apache2 -k start
- www-data 5979 5974 0 15:43 ? 00:00:00 /usr/sbin/apache2 -k start
- www-data 5980 5974 0 15:43 ? 00:00:00 /usr/sbin/apache2 -k start
проверить работу вы можете пройдя по адресу http://localhost/
Установка PHP5:
- apt-get install php5 libapache2-mod-php5
Рестартуем Apache2:
- /etc/init.d/apache2 restart
Помним, что document root по умолчанию в Ubuntu получается вот тут /var/www/, там же лежит дефолтная HTML страничка, которую мы увидели по адресу http://localhost/.
Стандартная проверка PHP5 на работоспособность, это создания тестого php файла в document root, т.е. в /var/www/. Кстати, если вам, как и мне не нравится местрасположения дефолтной директории, ее можно будет сменить, но это чуток позже.
Создаем файл:
- nano /var/www/info.php
Туда пишем:
- <?php
- phpinfo();
- ?>
Любуемся результатом перейдя в браузере по адресу http://localhost/info.php
Поддержка MySQL в PHP5:
- apt-get install php5-mysql php5-curl php5-gd php5-idn php-pearphp5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-psphp5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpcphp5-xsl
И снова рестарт серверу:
- /etc/init.d/apache2 restart
И любуемся на результат, т.е. обновите страничку info.php и найдете теперь там раздел о поддержке MySQL.
Поздравляю, с установкой покончено, осталось только доставить один удобный елемент, это phpmyadmin, для удобной работы с базами данных:
- apt-get install phpmyadmin
По ходу установки вам зададут пару вопросов:
Web server to reconfigure automatically: <-- apache2
Configure database for phpmyadmin with dbconfig-common? <-- No
Web server to reconfigure automatically: <-- apache2
Configure database for phpmyadmin with dbconfig-common? <-- No
Далее смотрим на результат http://localhost/phpmyadmin
Логин это root, пароль вы задовали, когда ставили СУБД MySQL.
Логин это root, пароль вы задовали, когда ставили СУБД MySQL.
Если вы ничего не увидели, то сделайте символьную ссылку (я этого не делал):
- sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
- sudo /etc/init.d/apache2 restart
Вот это PhpMyAdmin – программа управлениея базами данных, созданием, редактированием, бэкапами.
Конфигурация и настройка LAMP
1) httpd.conf
Вся конфигурация и настройка сервера Apache2 осуществляется через файл — httpd.conf httpd.conf — содержит директивы, управляющие работой сервера, работой виртуальных хостов и т.д.
Вся конфигурация и настройка сервера Apache2 осуществляется через файл — httpd.conf httpd.conf — содержит директивы, управляющие работой сервера, работой виртуальных хостов и т.д.
Стоит отметить, что окрыв файл /etc/apache2/httpd.conf вы обнаружете, что он пуст, так и есть, настройки сервера лежат в /etc/apache2/apache2.conf, меня это не напрягает, есть люди которых это выбешивает, и они переименовывают apache2.conf в httpd.conf. Кому как нравится.
2) .htaccess
Еще один важный конфигурационный файл .htaccess — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла.
Еще один важный конфигурационный файл .htaccess — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла.
.htaccess является подобием httpd.conf с той разницей, что действует только на каталог, в котором располагается, и на его дочерние каталоги. Возможность использования .htaccess в том или ином каталоге указывается в httpd.conf (директива AllowOverride).
Файл используется для настроек доступа катологов, авторизации и аутентификации а так же для изменения URL-адресов.
3) .htpasswd
.htpasswd — файл, содержащий пароли для доступа к ресурсу у веб-сервера Apache. Метод авторизации с использованием такого файла носит название базового (англ. basic authentication).
.htpasswd — файл, содержащий пароли для доступа к ресурсу у веб-сервера Apache. Метод авторизации с использованием такого файла носит название базового (англ. basic authentication).
Структура Web-сервера
У каждого уважающего себя Web-сервера должна быть правильная структура, я имею ввиду не структуру прикладной программы Apache, а структуру папок и катологов, виртуальных хостов, расположения логов и их ротация. Я приведу простой, но в то же время самый популярный пример схематично (мой хостер использует именно такую структуру)
Здесь всё просто, существует головной каталог /home/ в нем распологаются каталоги пользователей.
Условия:
- Каждый пользователь получает доступ к каталогу по FTP и http протоколам
- Каждый пользователь заперт в своем домашнем каталоге и не может подняться на уровень выше в условиях FTP & http
- У каждого пользователя есть скрытая папка admin доступ к которой он может получить только по средствам аутентификации по логину и паролю
- У каждого пользователя есть папка logs в которой ведуться все его логи.
- Для Apache существует отдельная папка logs где ведуться логи
- Раз в неделю должна производится ротация логов
На заметку:
Про FTP читайте тут.
Про ротацию логов тут.
Про аутентификацию для Apache можно читать здесь.
Про FTP читайте тут.
Про ротацию логов тут.
Про аутентификацию для Apache можно читать здесь.
В файле /etc/apache2/apache2.conf вы можете подключить модули, настроить работу файлов.htaccess, указать от какого пользователя и какой группы запускать сервер, указать каталог ServerRoot, куда будут складироваться логи и где будут находится логи сервера, все строчки файла хорошо прокоментированны (англ.) но в сети вы можете найти подробные переводы, это не новость.
Я обращу внимание на настройки видимости .htaccess, откройте файл /etc/apache2/apache2.conf:
- su root
- nano /etc/apache2/apache2.conf
Найдите там следующие строки и проследите, что-бы они остались раскомментированными:
- ....
- AccessFileName .htaccess
- <Files ~ "^\.ht">
- Order allow,deny
- Deny from all
- Satisfy all
- </Files>
- ....
Как результат:
Логи расположены вот тут /var/log/apache2/.
Тут все банально, лог access.log содержит в себе всю инфу о соединения которые были установленны с сервером.
Лог error.log содержит в себе всю инфу об ошибках. Я уже говорил, что вы можете поменять расположения логов в файле apache2.conf.
Тут все банально, лог access.log содержит в себе всю инфу о соединения которые были установленны с сервером.
Лог error.log содержит в себе всю инфу об ошибках. Я уже говорил, что вы можете поменять расположения логов в файле apache2.conf.
/etc/apache2/sites-available/default – очень важный файл, в нем происходит настройка виртуальных хостов сервера.
Но об Виртуальных Хостах в Apache мы поговорим позже, сейчас я предлагаю избрать немного другой путь. И настроить локальный сервер для обслуживания нескольких сайтов без использования VirtualHost в Apache. Метод не самый правильный, но у него есть свои плюсы.
Вы можете сделать так, в вашей RootDocument, сделать папки /wordpress , /drupal/ , /joomla , /logs , /other и установить соостветсвующие сайты в эти директории.
Теперь обратившись в браузере по адресу: http://localhost/drupal/ вы увидите ваш сайт на Drupal, а перейдя по адресу http://localhost/wordpress/ вы увидите ваш сайт на WordPress. Это удобно, вы можете иметь бесконечное колличество сайтов, и работать с ними одновременно.
Вот как это будет выглядеть
При этом у вас будет только один виртуальный хост. Настройки просты:
- nano /etc/apache2/sites-available/default
Вот минимальное содержание:
- <VirtualHost *:80>
- ServerAdmin localhost
- DocumentRoot /var/www/users/ #Тут лежат все сайты
- <Directory />
- Options FollowSymLinks
- AllowOverride None
- </Directory>
- #Logs #Где лежат логи
- ErrorLog /var/www/users/logs/error.log
- CustomLog /var/www/users/logs/access.log combined
- Alias /doc/ "/usr/share/doc/"
- <Directory "/usr/share/doc/">
- Options Indexes MultiViews FollowSymLinks
- AllowOverride None
- Order deny,allow
- Deny from all
- Allow from 127.0.0.0/255.0.0.0 ::1/128
- </Directory>
- </VirtualHost>
После конфигурации файла, перезапустите Apache и приступайте к работе.
Источник "вдохновения"
Комментариев нет:
Отправить комментарий