1

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

Есть ли способ установить nginx, чтобы сделать это вместо того, чтобы всегда работать от одного и того же пользователя (например, пользователь nginx) и искать какой-либо каталог конфигурации в /etc или /usr?

2 ответа2

1

Есть конечно.

Вы создаете файл nginx.conf в своем домашнем каталоге с аналогичным содержимым (замените [USERNAME] своим логином):

error_log /home/[USERNAME]/nginx.log;
pid        /home/[USERNAME]/nginx.pid;

http {
    include  /etc/nginx/mime.types;
    index   index.php;
    client_body_temp_path /home/[USERNAME]/tmp;
    proxy_temp_path /home/[USERNAME]/tmp;
    fastcgi_temp_path /home/[USERNAME]/tmp;
    uwsgi_temp_path /home/[USERNAME]/tmp;
    scgi_temp_path /home/[USERNAME]/tmp;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for" "$http_cookie" "$sent_http_content_type"';

    access_log  /home/[USERNAME]/nginx-access.log  main  buffer=32k;

    gzip  on;

    server {
        listen       1234;
        server_name  server.example.com;
        root    /home/[USERNAME]/public_html;
        index index.php;

        ... 
    }
}

А затем запустите /usr/sbin/nginx -c /home/[USERNAME]/nginx.conf - он запустит сервер для вашего пользователя. Помните, что только root может связываться с портами ниже 1024 (т.е. 80). Вам нужно будет настроить сервер на прослушивание другого порта.

0

Если папки конфигурации жестко запрограммированы (то есть отсутствуют параметры командной строки для их изменения), вам придется скомпилировать их самостоятельно и изменить параметры с помощью --prefix и т.д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .