nginx部署laravel报错502

4 篇文章 0 订阅

错误详情(php.ini的bug调试打开,默认是关闭的)

Laravel运行环境 Linux Nginx

Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/ssmanager/vendor/autoload.php) is not within the allowed path(s): (/home/wwwroot/ssmanager/public/:/tmp/:/proc/) in  /home/wwwroot/ssmanager/public/index.php on line 24
Warning: require(/home/wwwroot/ssmanager/vendor/autoload.php): failed to open stream: Operation not permitted in /home/wwwroot/ssmanager/public/index.php on line 24
Fatal error: require(): Failed opening required '/home/wwwroot/ssmanager/public/../vendor/autoload.php' (include_path='.:/usr/local/php/lib/php') in /home/wwwroot/ssmanager/public/index.php on line 24

解决方法

1、找到Nginx中的fastcgi.conf配置文件,一般位于fastcgi.conf文件中

      /usr/local/nginx/conf/fastcgi.conf

2、打开文件找到如下部分

    fastcgi_param REDIRECT_STATUS 200;

    fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

   将其$document_root变量修改为项目目录(最好注释掉这行),例如我现在的项目是test(Laravel项目),只需将$document_root修改为test所在的目录。

    fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/www/test/:/tmp/:/proc/";

3、重启Nginx服务器

     nginx -s reload

 

要在Docker中部署Laravel应用程序,你可以使用以下步骤: 1. 首先,在你的Laravel项目根目录下创建一个名为`Dockerfile`的文件,并添加以下内容: ``` # 使用官方的PHP镜像作为基础镜像 FROM php:7.4-fpm # 安装一些必要的依赖 RUN apt-get update && apt-get install -y \ git \ unzip \ libpng-dev \ libonig-dev \ libxml2-dev \ zip \ curl # 安装Composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # 设置工作目录 WORKDIR /var/www # 复制项目文件到工作目录 COPY . /var/www # 安装项目依赖 RUN composer install --no-interaction --optimize-autoloader # 设置文件夹权限 RUN chown -R www-data:www-data /var/www/storage /var/www/bootstrap/cache # 生成应用密钥 RUN php artisan key:generate # Expose port 9000 and start php-fpm server EXPOSE 9000 CMD ["php-fpm"] ``` 2. 创建一个名为`docker-compose.yml`的文件,并添加以下内容: ``` version: '3' services: app: build: context: . dockerfile: Dockerfile image: laravel-app container_name: laravel-app restart: unless-stopped ports: - 8000:9000 volumes: - .:/var/www networks: - laravel nginx: image: nginx:latest container_name: laravel-nginx restart: unless-stopped ports: - 80:80 volumes: - .:/var/www - ./nginx.conf:/etc/nginx/conf.d/default.conf networks: - laravel networks: laravel: ``` 3. 在你的Laravel项目根目录下创建一个名为`nginx.conf`的文件,并添加以下内容: ``` server { listen 80; index index.php index.html; server_name localhost; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; root /var/www/public; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass app:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; } } ``` 4. 确保你的Laravel项目根目录下有一个`.env`文件,其中包含正确的数据库连接和其他配置。 5. 在项目根目录中运行以下命令以构建和启动容器: ``` docker-compose up -d --build ``` 这将构建并启动包含Laravel应用程序和Nginx服务器的Docker容器。 6. 在浏览器中访问`http://localhost`,你应该能够看到你的Laravel应用程序运行在Docker容器中。 这就是在Docker中部署Laravel应用程序的基本步骤。你可以根据需要进行修改和调整。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值