Сейчас 126 заметки.
Установка и настройка веб-сервера LEMP на Arch Linux
Это руководство предоставляет пошаговую инструкцию по установке полнофункционального стека LEMP на Arch Linux. Вы получите инструкции по установке Nginx, MySQL и PHP.
Инструкции которые содержатся в этом руководстве протестированы на платформе http://Clodo.ru
Это руководство предполагает, что вы вошли в систему как суперпользователь root.
Перед установкой web-сервера nginx, убедитесь в том, что ваша система использует последние версии репозиториев, выполнив команду:
pacman -Sy
Установка nginx выполняется командой:
pacman -S nginx
Регулярно обновляйте вашу систему командой “pacman -Su”, чтобы использовать последние версии ПО и исправления безопасности. При обновлении системы внимательно изучайте вывод pacman и следите за новостями в Arch Linux Community, чтобы избежать нежелательных сторонних эффектов или конфликтов с пакетами, которые вы собрали сами.
Настройка виртуальных хостов (virtual hosts) в Nginx
По-умолчанию, при установке Nginx, основной файл конфигурации расположен по следующему пути:
/etc/nginx/conf/nginx.conf
Есть несколько вариантов настройки Nginx. Независимо от выбранного подхода к конфигурации, все настройки, касающиеся виртуальных хостов, собраны в блоке конфигурации сервера, заключенных в блок http в файле nginx.conf.
Пример настройки сервера:
server { listen 80; server_name www.yoursite.com yoursite.com; access_log /srv/http/yoursite.com/logs/access.log; error_log /srv/http/yoursite.com/logs/error.log; location / { root /srv/http/yoursite.com/public; index index.html index.htm; } }
Создайте директории, указанные в конфигурации сервера:
mkdir -p /srv/http/example.com/public mkdir -p /srv/http/example.com/logs
Добавлять множество блоков server в секцию http может быть затруднительным для чтения и правки. Вы можете использовать систему настройки, как в Debian-based системах. Создайте папки sites-available и sites-enabled и добавьте строку добавления этих папок в nginx.conf:
http { # [...] include /etc/nginx/sites-enabled/*; # [...] }
В директории sites-available нужно сохранить файлы с описанием параметров виртуальных хостов, и создать символическую ссылку на файл в папке sites-enabled.
Чтобы изменения вступили в силу, вам нужно перезапустить nginx. Перед перезапуском, рекомендуется выполнить проверку конфигурации. Это можно сделать командой “nginx -t”. Перезапустить сервер можно командой:
/etc/rc.d/nginx restart
Также, стоит добавить Nginx в список демонов при загрузке системы. Для этого добавьте nginx в массив DAEMONS=(... nginx ...) в файле
/etc/rc.conf
Подключение PHP средствами FastCGI
Если ваша web-страница содержит PHP-код, вам нужно установить FastCGI для обработки PHP. Следующая последовательность команд выполнит установку пакетов, необходимых для обработки PHP-кода.
pacman -S sudo base-devel php-cgi spawn-fcgi cd /opt wget http://aur.archlinux.org/packages/spawn-fcgi-php/spawn-fcgi-php.tar.gz tar -zxvf spawn-fcgi-php.tar.gz cd /opt/spawn-fcgi-php makepkg --asroot pacman -U spawn-fcgi-php*.pkg.*
Поскольку вы собираете этот пакет из исходников, следует время от времени проверять страницы этого пакета в AUR (Arch User Repository) на наличие обновлений.
Чтобы запустить PHP FastCGI выполните команду:
/etc/rc.d/spawn-fcgi-php start
В стандартной конфигурации, spawn-fcgi-php порождает четыре дочерних процесса php-cgi. Протестируйте данную конфигурацию с обычной нагрузкой. Количество дочерних процессов можно, изменив в файле /etc/conf.d/spawn-fcgi-php.conf значение переменной PHP_FCGI_CHILDREN. Добавьте демон spawn-fcgi-php в массив DAEMONS=() в файле /etc/rc.conf, чтобы он стартовал при загрузке.
Приведем в пример следующую конфигурацию Nginx.
server { server_name www.yoursite.com yoursite.com; access_log /srv/http/yoursite.com/logs/access.log; error_log /srv/http/yoursite.com/logs/error.log; root /srv/http/yoursite.com/public_html; location / { index index.html index.htm index.php; } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /srv/http/example.com/public_html$fastcgi_script_name; } }
Внимание: если вы планируете запускать приложения, поддерживающие загрузку файлов на сервер, настройка, представленная выше может привести к уязвимости в системе.
Чтобы избежать этой проблемы, включите в конфигурацию директиву try_files. Данное действие требует нахождения Nginx и php-fcgi на одном сервере.
location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /srv/http/yourite.com/public_html$fastcgi_script_name; }
Хорошим тоном является защита директорий, используемых приложениями для загрузки файлов. Следующая конфигурация является примером такой настройки:
location ~ \.php$ { include /etc/nginx/fastcgi_params; if ($uri !~ "^/images/") { fastcgi_pass 127.0.0.1:9000; } fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /srv/http/example.com/public_html$fastcgi_script_name; }
После окончания процесса настройки web-сервера, проверьте правильность настройки:
nginx -t
пример успешного результата:
nginx: the configuration file /etc/nginx/conf/nginx.conf syntax is ok nginx: configuration file /etc/nginx/conf/nginx.conf test is successful
Для того, чтобы настройки вступили в силу, перезапустите web-сервер:
/etc/rc.d/nginx restart
Настройка PHP окончена. Теперь PHP код будет обрабатываться должным образом.
Установка и настройка СУБД MYSQL
СУБД MySQL является популярнейшей СУБД с открытым кодом.
Установить MYSQL можно командой:
pacman -S mysql
Запуск демона MYSQL производится командой:
/etc/rc.d/mysqld start
Добавьте MySQL в список демонов при загрузке системы, добавив mysql в массив “DAEMONS = ()” в файле /etc/rc.conf.
Для настройки MySQL выполните команду:
mysql_secure_installation
Следуйте инструкции по установке.
Чтобы получить доступ к оболочке MySQL, воспользуйтесь командой:
mysql -u root -p
Введите пароль от пользователя root. Теперь вы можете создать новых пользователей для работы с MySQL. Пример создания новый БД и пользователя для работы с ней.
CREATE DATABASE userdatabase; CREATE USER 'user' IDENTIFIED BY 'i4j89UJd'; GRANT ALL PRIVILEGES ON userdatabse.* TO 'user'; exit;
Теперь можно передать данные пользователя user приложению, для использования БД userdatabase. Также, для того, чтобы PHP функции могли обратиться к MySQL, перезапустите службу spawn-fcgi-php:
/etc/rc.d/spawn-fcgi-php restart
Настройка LEMP завершена.