当前位置: 首页 > 知识库问答 >
问题:

带FPM和Laravel的Nginx

农永宁
2023-03-14

我有一个docker图像与几个容器(nginx,api,反应,...)和两个服务器块内nginx.conf这给了我通过domain.comapi.domain.com.

如果我通过域访问,到目前为止一切正常。com,它将指示我反应容器和端口3000。如果我通过api访问。领域com,它将指向laravel应用程序(php fpm端口9000)。

现在,如果我键入domain,我想“中断”配置以指向laravel。com/api域。com/api/anything/here,但要让react仍然工作。

我几乎明白了,它将指向laravel容器(api容器),但问题是它不能正确解析PHP(请记住,它通过api.doamin.com可以正常工作)。我可以看到一些laravel输出,但是是纯文本。

这是我在方块内的反应(domain.com):

location /api {
    alias /var/www/api/public/;   
    try_files $uri $uri/ /index.php?$query_string;
}
    
location ~ \.php$ {
    root /var/www/api/public;
    
    resolver 127.0.0.11;
    set $api api;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;

    fastcgi_pass $api:9000;
    fastcgi_index index.php;
    include fastcgi_params; 
    fastcgi_param SERVER_NAME $host;

    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_param PATH_INFO $fastcgi_path_info;
}

# This part still works fine
location / {
    index index.html;
    root /var/www/app;
    resolver 127.0.0.11;
    set $reactjs reactjs;
    proxy_pass http://$reactjs:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

顺致敬意,

共有1个答案

景德海
2023-03-14

如果您已经安装了php-fpm扩展(取决于您的php版本),您应该将fpm版本路径添加到您的配置文件中。示例:

PHP7.2的php fpm扩展

 sudo apt-get install php7.2-fpm 

PHP8.0的php fpm扩展

 sudo apt-get install php8.0-fpm 

ngnix配置的一部分:

location ~ \.php$ {
    root /var/www/api/public;
    
    resolver 127.0.0.11;
    set $api api;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;

    fastcgi_pass $api:9000;
    fastcgi_index index.php;
    include fastcgi_params; 
    fastcgi_param SERVER_NAME $host;

    fastcgi_param SCRIPT_FILENAME $request_filename;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    #new config lines
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.0-fpm.sock; 
}
 类似资料:
  • 我在设置多docker容器环境时遇到问题。这个想法相当标准: 一个容器运行php fpm 我的phpfpm Docker文件非常简单: Nginx更是如此: 其中文件夹中有一个文件 还有docker-compose.yml 这种精确的设置在AWS Elastic Beanstalk上非常有效。但是,在我的本地docker上,我遇到了如下错误: 2016/11/17 09:55:36[错误] 6#6

  • 我正在尝试使用Apache2.2和PHP-FPM mod_fcgi设置获得一个基本的CakePHP 2.4应用程序设置,我遇到了内部重定向问题,我似乎无法解决。 apache只有所需的模块加载和基本设置 PHP Fastcgi进程设置如下所示 使用默认的CakePHP 2.4分支,我得到以下错误 我已经尝试了几乎每一个建议和技巧,我可以找到的蛋糕重定向问题,但它似乎归结为php-fpm设置 我的重

  • 我得到了一个可用的php fpm docker容器,作为nginx前端的php后端。我所说的工作,是指它按照预期在浏览器中呈现phpinfo输出。我的php fpm容器是由devilbox docker repo的php-fpm-7.4产品生产的。它已启用OCI8。 问题:在尝试oci_connect时,我一直收到ORA-28547 我所做的: 1——将/usr/lib/oracle/client

  • fpm

    fpm 是一个软件包管理器,目标是使构建软件包(如 rpm、deb、OSX 软件包等)变得容易且快速。

  • 配置 Ubuntu服务器11.10 64位 亚马逊AWS,Ec2,云端托管 t1。微实例 在我写任何其他东西之前,我想声明我已经检查了nginx 502坏网关和nginx PHP-FPM 502坏网关线程,不幸的是,这在这方面对我没有帮助。 这个问题似乎很常见:nginx或php fpm的错误配置可能导致错误,这是我一直无法解决的问题。请注意,即使在我转到我的域根目录时,也会出现这种情况,而不指定

  • 我已经尝试在我的nginx/php5 fpm堆栈上安装mediawiki大约一天了,我在这个堆栈上安装了许多其他框架,从Wordpress、Magento到OpenEMON,所有这些都工作得很好: Ubuntu 12.04 LTS 如果你看这里:http://wiki.qubmc.co.uk/mw-config/index.php 按继续只会出现会话错误: 会话是由PHP为这个应用程序和其他应用程