Articles of PHP的

在Nginx的子目录中运行辅助PHP应用程序

我有一个build立在Kirby平面文件CMS上的网站,并且它在根目录中运行得很好,但是我试图让一个在上面的项目的子目录(称为crm )中运行的FlightPHP实例。 这个FlightPHP实例将处理表单提交,所以我需要能够正确映射url。 使用Apache和.htaccess,很简单: # make forms/crm links work RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^crm/(.*) crm/index.php [L] 我似乎无法得到这与Nginx的工作,这是我迄今为止: server { listen 80; listen [::]:80; root /var/www/mainsite; index index.php index.html index.htm; server_name mydomain.com; autoindex on; access_log off; # Kirby Specific Directories rewrite ^/site/(.*) /error permanent; rewrite ^/kirby/(.*) /error permanent; add_header X-UA-Compatible "IE=Edge,chrome=1"; location ~ […]

stream明+ nginx =错误500,重写或内部redirect周期,同时在内部redirect到“/index.php”

我试图设置stream明 – 在Laravel的组件之上构build的“微观框架”。 在服务器端有nginx + php-fpm。 这是我的nginxconfiguration: server { server_name lumen.dev; root /var/www/lumen; location / { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_NAME /index.php; fastcgi_param SCRIPT_FILENAME /var/www/lumen/public/index.php; try_files $uri $uri/ /index.php?$query_string; } } 这个configuration工作正常,当我调用定义的路线,例如我看到“stream明”。 回应时打开http://lumen.dev 。 但是,当我尝试打开像http://lumen.dev/404未定义的路线,我在浏览器中看到“500内部服务器错误”,此消息在nginx错误日志中: 重写或内部redirect周期,而内部redirect到“/index.php”,客户端:127.0.0.1,服务器:lumen.dev 我怎样才能修复我的nginx conf使它工作?

使用无效的操作数types:array_uintersect期望数组(s)

我有下面的代码,获取可变数量的数组的交集。 $intersection = call_user_func_array('array_uintersect', $params); 使用testing数据,这工作得很好。 但是,使用真实数据(这是一个更大的数据集,使用相同的代码,但在hhvm和nginx上运行时, 比较三个或更多数组时,会出现以下错误: Invalid operand type was used: array_uintersect expects array(s) 比较两个arrays工作正常。 我已经检查了$params在服务器上的输出,它肯定有正确的值。 $params所有元素都是数组,最后一个元素是一个数组,其值是: array_compare ,这是我的自定义数组比较函数的名称。 什么可能导致这个错误? 更新: 我更新HHVM到最新的夜间版本,并升级我的服务器的内存,只是为了看看是否会有所帮助。 但是,它没有。 更新: 我现在意识到,Laravel Homestead默认情况下不使用hhvm ,打开后: sites: – map: homestead.app to: /home/vagrant/Code/project hhvm: true 错误也使用我的testing数据进行复制。 当closureshhvm时,十字路口完美地工作。

nginx docker实例多个应用程序

所以,我正在Dockerizing我的架构,其中包含多个PHP应用程序在Apache上运行。 如果我是正确的,我需要: 1个nginx容器 , 1个php容器和多个数据容器来容纳在nginx容器中。 我将如何能够有多个数据容器链接到我的nginx容器? 所以例如,我得到了app1.domain.com volumed到/data/app1和app2.domain.com volumed到/data/app2等等

Docker容器closures脚本

当closures容器时,有没有办法让bash脚本执行? 用例: 有一个主容器运行nginx + php-fpm 有一个foo (项目)容器使用卷和链接到主 Ubuntu 14.04被用作所有图像的基础 当foo启动时,它会在vhostconfiguration文件中为nginx使用(以及将项目添加到webroot等等) 我们想要实现的是,当foo被停止时,它将执行清理(删除vhosts文件,从webroot中删除项目等) 设置/ etc / rcX / KX-cleanup不起作用。 唯一的另外一个select就是在entryscript中有一个bash-sigterm监听器在无限循环中(这会浪费宝贵的CPU周期吗?)

css,js和静态文件的更改不反映在nginx docker容器上

我创build了一个关于php的多容器应用程序。 当我修改php文件时,我可以看到浏览器中的更改。 但是,当我修改静态文件,如CSS和JS,浏览器没有改变。 以下是我的Dockerfile代码: Dockerfile `FROM nginx:1.8 `ADD default.conf /etc/nginx/conf.d/default.conf `ADD nginx.conf /etc/nginx/nginx.conf `WORKDIR /Code/project/ `RUN chmod -R 777 /Code/project/ `VOLUME /Code/project default.conf `server { listen 80; server_name localhost; root /Code/project/public; index index.html index.htm index.php; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { try_files $uri $uri/ /index.php?$query_string; } #error_page 404 /404.html; # redirect server error […]

用nginx掩盖PHP GET url

我有一个使用PHP的网站。 这是一个允许某人使用PHP GET调用来search数据库的网站。 然后显示所有符合search的项目。 有许多searchfilter(价格,来源网站,类别)。 这是search后,用户input“蓝色车”和“达拉斯” http://example.com/after_search.php?search_title=blue+cars&search_location=Dallas&price-0=index&price_max=&price_min=&category=every-cat&store=all&max_number=20 有没有办法让它看起来像这样: http://example.com/s/blue+cars/l/Dallas 而不改变代码结束的任何GETfunction? 我也有在网站上运行的JQuery,如果这是可以用来解决这个问题。 注意:我正在使用nginx 编辑1 鉴于下面的build议这似乎是一个nginx的问题。 这是我目前的/ etc / nginx / sites-available / default文件: server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; server_name server_domain_name_or_IP; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 […]

错误与php5-fpm

当我试图查看我的一个网站时,我刚刚安装了nginx和php-fpm。 当我检查nginx错误日志时,我看到了一些权限被拒绝的情况,但是我也注意到了这一点: /var/run/php5-fpm.sock failed (2: no such file or directory) 但是我安装了php-fpm,为什么要加载php5-fpm? 我难住,有什么想法? 谢谢。 编辑:default.conf中的服务器块 server { listen 81 default_server; server_name _; #charset koi8-r; #access_log logs/host.access.log main; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; […]

Nginx成功密码保护PHP文件,但随后会提示您下载它们

在前面的问题中,我试图用.htpasswd和正则expression式使用Nginx来保护我的/ admin /和子文件夹目录。 这是成功的,但现在,密码authentication完成后,Nginx提示“下载”PHP文件,而不是简单地加载它们。 当新的位置“身份validation”块被注释掉时,这不会发生。 例如,在这个代码示例中,PHP页面加载没有任何问题: location / { try_files $uri $uri/ =404; } #location "~^/admin/.*$" { # try_files $uri $uri/ =404; # auth_basic "Restricted"; # auth_basic_user_file /etc/nginx/.htpasswd; #} location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } 我怎样才能解决这些(显然是冲突)的位置块,所以/pipe理/部分是密码保护,但PHP文件仍然加载?

Docker撰写:Nginx和PHP-FPM不能正常工作

我正在testingdocker与Nginx和php-fpm组合,但是这个失败了。 我的docker-compose.yml: version: '2' services: nginx: container_name: nginx build: context: ./dockerfiles/nginx/ dockerfile: Dockerfile volumes: – ./project/:/usr/share/nginx/html/ ports: – "8000:80" links: – php php: container_name: php-fpm image: php:7-fpm volumes: – ./project/:/var/www/html/ ports: – "9000:9000" 这是我的dockerfile Nginx: FROM nginx:latest COPY config/default.conf /etc/nginx/conf.d/ 和dafault.conf文件: server { listen 80; server_name localhost; root /usr/share/nginx/html; location / { try_files $uri /index.php$is_args$args; […]