在我的 Linux PC 上,我想以启动时登录的用户身份运行 nginx,并且希望它在该用户的主目录中查找配置文件。
有没有办法安装 nginx 来执行此操作,而不是始终以同一用户身份运行(例如 nginx 用户)并查找 /etc 或 /usr 中的某些配置目录?
答案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)。您必须将服务器配置为侦听其他端口。
答案2
如果配置文件夹是硬编码的(意味着没有可用的命令行参数来更改它们),则必须自己编译它并使用--prefix
等更改参数。