如何修改Web服务器配置,为不同域名设置不同APP_ID
Symfony多应用拆分后Apache与NGINX设置APP_ID的配置方法
本地Apache配置
针对后台应用(admin),需新增独立虚拟主机配置,指定专属域名并设置APP_ID=admin环境变量:
<VirtualHost *:80> ServerName admin.localhost DocumentRoot /Users/alexandra/dev/Web/PROJECT/public # 配置APP_ID环境变量,绑定当前虚拟主机到admin应用 SetEnv APP_ID admin <Directory /Users/alexandra/dev/Web/PROJECT/public> Require all granted AllowOverride None DirectoryIndex index.php Options -Indexes <IfModule mod_negotiation.c> Options -MultiViews </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$ RewriteRule .* - [E=BASE:%1] RewriteCond %{HTTP:Authorization} .+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0] RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ %{ENV:BASE}/index.php [L] </IfModule> <IfModule !mod_rewrite.c> <IfModule mod_alias.c> RedirectMatch 307 ^/$ /index.php/ </IfModule> </IfModule> </Directory> </VirtualHost>
- 原有
localhost虚拟主机保留,作为主应用访问入口; - 修改本地
hosts文件,添加127.0.0.1 admin.localhost,确保域名解析到本地; - 重启Apache服务使配置生效。
线上NGINX配置
为后台应用新增server块,绑定admin专属域名,并在FastCGI参数中添加APP_ID=admin:
server { server_name admin.yourdomain.com; listen 443 ssl; ssl_certificate ...; # 替换为你的SSL证书路径 ssl_certificate_key ...; # 替换为你的SSL证书密钥路径 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_stapling on; ssl_stapling_verify on; add_header Strict-Transport-Security max-age=15768000; root /var/www/PROJECT/public/; location / { try_files $uri /index.php$is_args$args; } location ~ ^/index\.php(/|$) { fastcgi_pass unix:/var/run/php/php-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; # 配置APP_ID环境变量,绑定当前server到admin应用 fastcgi_param APP_ID admin; internal; } location ~ \.php$ { return 404; } error_log ...; # 替换为你的错误日志路径 access_log ...; # 替换为你的访问日志路径 }
- 原有
server块保留作为主应用入口; - 确保
admin.yourdomain.com已解析到线上服务器; - 重启NGINX服务使配置生效。
内容的提问来源于stack exchange,提问作者user18482403
相关产品推荐
相关产品推荐

