[Arch Linux] Настройка Комбинации Apache, Nginx, Php И Percona Db

После перехода с Ubuntu на Arch возникла необходимость настроить эту связку, однако, в отличие от Ubuntu, для Arch не было такого универсального мануала.

Собрав идеи из различных мануалов, в том числе написанных для Ubuntu, я решил написать такое подробное руководство на Хабре.

Сразу хочу сказать, что это базовая установка, без n-штучных виртуальных хостов, просто установка для локальной разработки.

XAMPP мне не подошел просто по идеологическим соображениям.



Итак, давайте начнем.

Предполагается, что яурт он у вас уже установлен и вы хоть немного умеете им пользоваться, а также у вас настроено выполнение root-команд от вашего пользователя (установите пакет судо , затем раскомментируйте строку «%wheel ALL=(ALL) ALL» в файле /etc/sudoers и войдите в систему; При выполнении команд с помощью sudo вводите пароль от своего пользователя, а не от root).

Также перед установкой убедитесь, что у вас подключены экстра- и комьюнити-репозитории.

Для этого:

sudo nano /etc/pacman.conf

И проверяем, чтобы разделы этих репозиториев выглядели одинаково.



[extra]



#SigLevel = PackageOptional



Include = /etc/pacman.d/mirrorlist



[community]



#SigLevel = PackageOptional



Include = /etc/pacman.d/mirrorlist

И синхронизируем списки пакетов.



sudo pacman -Sy



Для начала установим Apache и PHP и соответственно немного подправим конфиги.



sudo pacman -S apache php-apache



yaourt mod-rpaf

Теперь нам нужно отредактировать /etc/httpd/conf/httpd.conf: включить 2 модуля для Apache — rpaf и php5, плюс добавить конфигурацию для rpaf и другие мелочи.



sudo nano /etc/httpd/conf/httpd.conf

  1. Меняем «Прослушивать 80» на «Прослушивать 81», так как порт 80 будет слушать nginx.
  2. Добавьте 2 строки в раздел LoadModule.

    LoadModule rpaf_module modules/mod_rpaf-2.0.so



    LoadModule php5_module modules/libphp5.so

  3. Изменить адрес электронной почты можно в строке «ServerAdmin», хотя это необязательный пункт. Обычно меняю по привычке.

  4. Чуть ниже находится закомментированная строка «ServerName» — раскомментируйте ее и замените на «ServerName 127.0.0.1:81».

  5. Мы проверяем это в разделе « ” строка TypesConfig conf/mime.types не закомментирована
  6. Давайте также раскомментируем строку «MIMEMagicFile conf/magic».

  7. В " " заменим строку с параметром "DirectoryIndex" на такой вид:

    DirectoryIndex index.php

  8. И наконец, в конце файла добавляем.



    Include conf/extra/php5_module.conf



    RPAFenable On



    RPAFproxy_ips 127.0.0.1 10.0.0.1



    RPAFsethostname On



    RPAFheader X-Forwarded-For

Сохраните файл (Ctrl+O) и выйдите (Ctrl+X).

Теперь нам осталось немного изменить второй файл конфигурации Apache.

sudo nano /etc/httpd/conf/ports.conf

Измените «Слушать 80» на «Слушать 81».



На этом мы закончили настройку Apache. Перейдем к PHP.


sudo nano /etc/php/php.ini

  1. Настройка «post_max_size».

    Обычно достаточно 60М, а то и гораздо меньше – в зависимости от ситуации.

    Настраиваем «upload_max_filesize» и «max_file_uploads» таким же образом.

  2. Включаем модули.

    Здесь не может быть какого-то единого решения, но моего варианта должно хватить для большинства нужд( http://pastebin.com/cZwepL0T ).

    Если вам нужны какие-то дополнительные модули, которых нет в списке, в первую очередь ищем в yaourt.

  3. Советую раскомментировать и настроить «date.timezone» ( http://php.net/date.timezone ).

  4. Раскомментируем строку «session.save_path = «/tmp».

Сохраните файл (Ctrl+O) и выйдите (Ctrl+X).

Перезапустите апач.



sudo rc.d restart httpd

Далее давайте создадим файл index.php для проверки.

(Здесь мы вводим пароль не для нашего пользователя, а для root.)

su -c "echo '<Эphp phpinfo(); ?>' > /srv/http/index.php"

После этого, если вы зайдете по адресу http://localhost:81/ , вы должны увидеть страницу с полной информацией о PHP и Apache. Что-то вроде этого.



[Arch Linux] Настройка комбинации Apache, Nginx, PHP и Percona DB



Перейдем к установке и настройке NGINX.
Давайте установим последнюю версию (ветвь разработки).

Если хотите стабильную, то просто напишите «sudo pacman -S nginx» вместо команды ниже.



yaourt nginx-devel

И приведем конфиг к следующему виду.



sudo nano /etc/nginx/conf/nginx.conf

Всё стираем и всё копируем отсюда - http://pastebin.com/2S8KnqkH .

И перезапустите nginx.

sudo rc.d restart nginx

Теперь вы можете получить доступ к порту 80 и также должны увидеть информацию о php, как это было раньше ( http://localhost ).



И последний шаг — установка PerconaDB.
Как известно, MySQL сама по себе далеко не самая быстрая база данных, поэтому я обычно ставлю форк — PerconaDB. Подробнее о функциях можно прочитать на сайте Официальный веб-сайт , от себя скажу лишь, что обратная совместимость с MySQL полная, поэтому неожиданных проблем не возникнет.

sudo pacman -S percona-server

И установите пароль для администратора PerconaDB.

mysql_secure_installation



Вот так мы получили довольно быструю конфигурацию локального веб-сервера.

Надеюсь, эта тема будет кому-то полезна.

п.

с.

Если у вас есть предложения по улучшению материала, пишите в комментариях.

п.

п.

с.

Не могу не чувствовать, что раздел «gzip_types» в конфиге nginx не совсем оптимален — так что тоже прислушаюсь к предложениям.



Забыл написать про автозагрузку сервисов при старте ОС


sudo nano /etc/rc.conf

И в самом низу файла добавляем в массив «DAEMONS»:

@nginx @httpd @mysqld

Теги: #arch #linux #php #MySQL #Nginx #Apache #Разработка веб-сайтов
Вместе с данным постом часто просматривают: