LEMP и WordPress на Manjaro: локальный стек для разработки

Я держу эту сборку на планшете Chuwi Hi10 GO: в поездках удобно поднять локальный LEMP и крутить WordPress без облака и без «вечной» аренды VPS.

Chuwi Hi10 GO с Manjaro и локальным LEMP

LEMP – это Linux, Nginx, MariaDB/MySQL и PHP. Ниже – рабочий порядок установки на Manjaro (Arch-based): от обновления системы до первого входа в установщик WordPress. Пакеты и пути актуальны для типичной Manjaro с systemd; если у вас другой PHP-сокет, поправьте его в конфиге Nginx.

1. Обновление системы

Если Manjaro ещё не стоит – ISO с официального сайта, установка по мастеру. Дальше сразу в терминал:

sudo pacman -Syu

После крупного обновления ядра иногда нужен reboot. Без свежих пакетов дальше часто ловите конфликты зависимостей.

2. Nginx

sudo pacman -S nginx
sudo systemctl enable --now nginx

Базовый конфиг: /etc/nginx/nginx.conf и/или сайты в /etc/nginx/sites-available (или conf.d – зависит от пакета). Для WordPress понадобится location ~ \.php$ с fastcgi_pass на сокет PHP-FPM. Проверка синтаксиса перед рестартом:

sudo nginx -t
sudo systemctl restart nginx

3. MariaDB (или MySQL)

На Manjaro удобнее MariaDB из репозитория. После установки – инициализация данных и secure-скрипт:

sudo pacman -S mariadb
sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
sudo systemctl enable --now mariadb
sudo mysql_secure_installation

Задайте пароль root (или перейдите на unix_socket auth, если так принято у вас), отключите удалённый root и тестовую БД. Для локальной разработки хватит и «мягких» настроек, но пароль всё равно лучше не оставлять пустым.

4. PHP и PHP-FPM

sudo pacman -S php php-fpm php-mysql
sudo systemctl enable --now php-fpm

Конфиг пула: обычно /etc/php/php-fpm.d/www.conf. Смотрите listen (unix-сокет или порт) и user/group – они должны совпасть с тем, что указано в Nginx. После правок:

sudo systemctl restart php-fpm
sudo systemctl restart nginx

Для WordPress полезны расширения: mysqli/mysqlnd, curl, gd/imagick, mbstring, xml, zip. На Arch/Manjaro часть из них идёт отдельными пакетами (php-gd, php-imagick и т.д.).

5. База под WordPress

sudo mysql -u root -p
CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Пароль и имена – свои. Не копируйте «your_password» на продакшен как есть.

6. Файлы WordPress

Скачайте архив с wordpress.org или через wget, распакуйте в document root (часто /usr/share/nginx/html или свой vhost-каталог):

cd /usr/share/nginx/html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz
sudo chown -R http:http wordpress

Пользователь веб-сервера на Arch/Manjaro обычно http, не www-data. Права на wp-content должны позволять загрузку медиа и обновления (осторожно с 777 – только для локалки в крайнем случае).

Скопируйте конфиг и пропишите БД:

cd /usr/share/nginx/html/wordpress
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wordpress_user');
define('DB_PASSWORD', 'your_password');
define('DB_HOST', 'localhost');

Ключи AUTH_KEY и остальные лучше сгенерировать на api.wordpress.org/secret-key и вставить в тот же файл.

7. Nginx и PHP для WordPress

Минимальный server-блок (пути и сокет подставьте свои):

server {
    listen 80;
    server_name localhost;
    root /usr/share/nginx/html/wordpress;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
    }

    location ~* /\. {
        deny all;
    }
}

Точный путь сокета смотрите в www.conf (listen = ...). После правок: nginx -t и reload.

8. Установщик в браузере

Откройте http://localhost/wordpress (или IP/хост вашего vhost). Язык, название сайта, админ-логин – и установка завершена. Если белый экран или 502 – почти всегда PHP-FPM не запущен или сокет в Nginx неверный.

Короткий чеклист

  • systemctl status nginx mariadb php-fpm – все active
  • nginx -t без ошибок, PHP отдаётся через FPM
  • БД создана, пользователь с правами только на свою базу
  • Владелец файлов – пользователь веб-сервера
  • На «боевом» хосте – HTTPS, сильные пароли, регулярные обновления

На планшете такой стек закрывает локальную разработку: темы, плагины, черновики постов без интернета. Для продакшена логика та же, только жёстче безопасность и бэкапы.

Источники и ссылки


Комментарии загружаются…