activecollab 5 nginx url 重写不工作
activecollab 5 nginx url rewrite not working
我试图按照 instructions here 安装 Activecollab。
我的 nginx 虚拟主机配置是 here
server {
listen *:80;
server_name collab.example.com;
access_log /var/log/nginx/ac.access.log;
error_log /var/log/nginx/ac.error.log;
set $root_path /usr/share/nginx/html/collabs/public;
root $root_path;
index index.html index.htm index.php router.php;
charset utf-8;
if (!-e $request_filename) {
rewrite ^/assets/(.*)$ /assets/ last;
rewrite ^/avatars/(.*)$ /avatars/ last;
rewrite ^/wallpapers/(.*)$ /wallpapers/ last;
rewrite ^/verify-existence$ /verify.php last;
rewrite ^/proxy.php$ /proxy.php last;
rewrite ^/api/v([0-9]*)/(.*)$ /api.php?path_info=&api_version= last;
rewrite ^$ /router.php last;
rewrite ^(.*) /router.php?path_info= last;
}
location ~ ^/(assets|avatars|wallpapers)/ {
root $root_path;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 150;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
nginx -V
的输出
nginx version: nginx/1.10.3 (Ubuntu)
built with OpenSSL 1.0.2g 1 Mar 2016
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads
我遇到错误
Error — URL rewriting is not enabled. Invalid URL rewrite check response:
感谢任何帮助。
在 Tarun 的帮助下,我设法解决了这个问题。我们所做的是
- 确认这与nginx和规则无关
- 在配置文件中禁用了 REDIRECT_CHECK。
现在似乎工作正常。
正如在聊天和 teamviewer 调试会话中讨论的那样。 config.php
中有一个标记 REDIRECT_CHECK
用于 activecollab。您需要通过在 config
中定义此名称来禁用此重定向
define('REDIRECT_CHECK',false);
此外,您还应该从
更改以下部分 nginx 配置
if (!-e $request_filename) {
rewrite ^/assets/(.*)$ /assets/ last;
rewrite ^/avatars/(.*)$ /avatars/ last;
rewrite ^/wallpapers/(.*)$ /wallpapers/ last;
rewrite ^/verify-existence$ /verify.php last;
rewrite ^/proxy.php$ /proxy.php last;
rewrite ^/api/v([0-9]*)/(.*)$ /api.php?path_info=&api_version= last;
rewrite ^$ /router.php last;
rewrite ^(.*) /router.php?path_info= last;
}
到
location / {
if (!-e $request_filename) {
rewrite ^/assets/(.*)$ /assets/ last;
rewrite ^/avatars/(.*)$ /avatars/ last;
rewrite ^/wallpapers/(.*)$ /wallpapers/ last;
rewrite ^/verify-existence$ /verify.php last;
rewrite ^/proxy.php$ /proxy.php last;
rewrite ^/api/v([0-9]*)/(.*)$ /api.php?path_info=&api_version= last;
rewrite ^$ /router.php last;
rewrite ^(.*) /router.php?path_info= last;
}
try_files $uri $uri/ /router.php?path_info=$uri&$args;
}
我试图按照 instructions here 安装 Activecollab。
我的 nginx 虚拟主机配置是 here
server {
listen *:80;
server_name collab.example.com;
access_log /var/log/nginx/ac.access.log;
error_log /var/log/nginx/ac.error.log;
set $root_path /usr/share/nginx/html/collabs/public;
root $root_path;
index index.html index.htm index.php router.php;
charset utf-8;
if (!-e $request_filename) {
rewrite ^/assets/(.*)$ /assets/ last;
rewrite ^/avatars/(.*)$ /avatars/ last;
rewrite ^/wallpapers/(.*)$ /wallpapers/ last;
rewrite ^/verify-existence$ /verify.php last;
rewrite ^/proxy.php$ /proxy.php last;
rewrite ^/api/v([0-9]*)/(.*)$ /api.php?path_info=&api_version= last;
rewrite ^$ /router.php last;
rewrite ^(.*) /router.php?path_info= last;
}
location ~ ^/(assets|avatars|wallpapers)/ {
root $root_path;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 150;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
nginx -V
nginx version: nginx/1.10.3 (Ubuntu)
built with OpenSSL 1.0.2g 1 Mar 2016
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads
我遇到错误
Error — URL rewriting is not enabled. Invalid URL rewrite check response:
感谢任何帮助。
在 Tarun 的帮助下,我设法解决了这个问题。我们所做的是
- 确认这与nginx和规则无关
- 在配置文件中禁用了 REDIRECT_CHECK。
现在似乎工作正常。
正如在聊天和 teamviewer 调试会话中讨论的那样。 config.php
中有一个标记 REDIRECT_CHECK
用于 activecollab。您需要通过在 config
define('REDIRECT_CHECK',false);
此外,您还应该从
更改以下部分 nginx 配置if (!-e $request_filename) {
rewrite ^/assets/(.*)$ /assets/ last;
rewrite ^/avatars/(.*)$ /avatars/ last;
rewrite ^/wallpapers/(.*)$ /wallpapers/ last;
rewrite ^/verify-existence$ /verify.php last;
rewrite ^/proxy.php$ /proxy.php last;
rewrite ^/api/v([0-9]*)/(.*)$ /api.php?path_info=&api_version= last;
rewrite ^$ /router.php last;
rewrite ^(.*) /router.php?path_info= last;
}
到
location / {
if (!-e $request_filename) {
rewrite ^/assets/(.*)$ /assets/ last;
rewrite ^/avatars/(.*)$ /avatars/ last;
rewrite ^/wallpapers/(.*)$ /wallpapers/ last;
rewrite ^/verify-existence$ /verify.php last;
rewrite ^/proxy.php$ /proxy.php last;
rewrite ^/api/v([0-9]*)/(.*)$ /api.php?path_info=&api_version= last;
rewrite ^$ /router.php last;
rewrite ^(.*) /router.php?path_info= last;
}
try_files $uri $uri/ /router.php?path_info=$uri&$args;
}