我正在开发几个 php 项目,我想将这些项目部署到同一个 NGINX 网络服务器(同名)上,但使用不同的别名。例如:http://localhost/project1, http://localhost/project2
。我以为在 sites-avaible 和 enabled 中添加多个配置就足够了,但这样做不行。如果可能的话,我想将配置保存在单独的文件中。这些配置单独工作正常。
这是我的 configs.php 信息页面:
server {
listen 80;
root /var/www/html/;
index index.php index.html index.htm index.nginx-debian.html;
server_name localhost;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~* .(ico|jpg|webp|jpeg|gif|css|png|js|ico|bmp|zip|woff)$ {
access_log off;
log_not_found off;
add_header Pragma public;
add_header Cache-Control "public";
expires 14d;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
站点1:
server {
listen 80;
root /var/www/html/site1/app/webroot;
index index.php index.html index.htm index.nginx-debian.html;
server_name localhost/site1;
location /crade_web {
try_files $uri $uri/ /index.php?$args;
}
location ~* .(ico|jpg|webp|jpeg|gif|css|png|js|ico|bmp|zip|woff)$ {
access_log off;
log_not_found off;
add_header Pragma public;
add_header Cache-Control "public";
expires 14d;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
答案1
server_name
是主机名,所以不能localhost/site1
。
如果您将所有项目放在单独的子文件夹中,则无需创建不同的服务器。即从 nginx 的角度来看,您只有一个站点。
如果你想创建不同的网站,你可能需要给出不同的服务器名称,例如
myproject1.local
myproject2.local
myotherproject.local
请注意,您必须编辑hosts
文件以将所有这些名称解析为 127.0.0.1。