суббота, 16 апреля 2011 г.

Arch Linux LAMP

LAMP = Linux + Apache + MySQL + PHP.

Собственно, всё описано на специальной странице в вики на сайте арчлинукса, так что подробности всё же лучше искать там. Я же со своей точки зрения постараюсь описать основные отличия деплоймента и администрирования LAMP под арчем от LAMP под убунту.

Во-первых, веб-сервер Apache здесь назвается httpd, но не везде. Чтоб установить, надо написать:

pacman -S apache

Но собственно сам сервер называется httpd, и конфигурационный фал лежит в /etc/httpd. Конфигурационный файл один, и, видимо, предполагается, что все виртуальные хосты можно описывать прямо там. Однако, я сделал папку /etc/httpd/conf/vhosts, куда сложил конфиги виртуальных хостов, по одному фалй на хост, а в /etc/httpd/conf/httpd.cong написал:

Include conf/vhosts/*

Путь указывается относительно ServerRoot, задаваемой в этом же файле в самом начале. По умолчанию у апача включено очень много модулей, и вовсе не обязательно все они будут не лишними. Не меньше половины можно отключить сразу. Модуль для пхп ставится отдельно.

По умолчанию в арче нет service, и рестартовать апач командой service apache2 restart, как я привык делать под убунту, не выйдет. Надо пользоваться apachectl:

apachectl -k restart

Кстати, синтаксис конфигурационных файлов апача должен проверяться не перезагрузкой оного, а следующим образом:

apachectl -t

PHP что в арче, что в убунту, что в любом другом дистрибутиве остаётся всегда PHP, но от дистрибутива к дистрибутиву может разниться коплект модулей, вкомпиленных в само PHP, и, соответственно, набор дополнительных расширений. mysql.so в арче входит в комплект стандартной поставки пакета php:

pacman -S php

В убунту, напомню, надо установить php5-mysql отдельно. Настройки по-умолчанию тоже немного отличаются; например, я сразу столкнулся с тем, что PHP не воспринимает короткую форму открывающихся кавычек (это исправляется в php.ini изменением параметра short_open_tags).

И одна неприятная вещь - mysql-gui-tools есть только в AUR (поддерживаемом сообществом репозитории). Для того, чтоб установить что-то из AUR, потребуется это что-то собрать из исходников.
Если вы это ещё ни разу не делали, то самое время начать! Вам понадобится makepkg, fakeroot, patch, autoconf, make, возможно automake тоже, ну, короче весь метапакет base-devel, а также добавить себя в /etc/sudoers, чтоб pacman мог подтягивать зависимости перед компиляцией. Разумеется, компилировать надо под пользователем с урезанными правами. Найдём какое-нибудь укромное местечко (у меня это /var/abs/local/mysql-gui-tools), куда распакуем найденный в AUR tarball для mysql-gui-tools. И в этой директории запускаем:

makepkg -s

Ключ s означает, что вы хотите подтянуть необходимые зависимости в автоматическим режиме. И... и что-то оно у меня не компилируется, вылетает с ошибкой. Дерьмо!

1 комментарий:

Ублюдочный Гугл поломал форму комментариев. Извините.