Как я могу обслуживать Laravel проект на nginx в macOS? - PullRequest
1 голос
/ 27 февраля 2020

Я создал Laravel проект с командой sudo composer create-project laravel/laravel MyProject --prefer-dist в каталоге "/ Users / vala / Documents / laravel /". Затем я запустил следующие команды:

sudo chown -R _www:_www /Users/vala/Documents/laravel/MyProject/
sudo chmod -R 755 /Users/vala/Documents/laravel/MyProject/

Затем я создаю файл с именем "laravel" в / usr / local / etc / nginx / sites-available / "и напишу в нем текст ниже:

server {
  listen 80;
  listen [::]:80;
  root /Users/vala/Documents/laravel/MyProject/public;
  index  index.php index.html index.htm;
  server_name  mylaravelproject.com;

  location / {
    try_files $uri $uri/ /index.php?$query_string;        
  }


  location ~ \.php$ {
     try_files $uri =404;
     fastcgi_split_path_info  ^(.+\.php)(/.+)$;
     fastcgi_index            index.php;
     fastcgi_pass             unix:/var/run/php/php7.1-fpm.sock;
     include                  fastcgi_params;
     fastcgi_param   PATH_INFO       $fastcgi_path_info;
     fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

}

Затем я запустил sudo ln -s /usr/local/etc/nginx/sites-available/laravel /usr/local/etc/nginx/sites-enabled/, и после этого я выполнил следующие команды:

launchctl unload /usr/local/cellar/nginx/1.17.8/homebrew.mxcl.nginx.plist
launchctl load /usr/local/cellar/nginx/1.17.8/homebrew.mxcl.nginx.plist

Но когда я открываю «mylaravelproject.com» в моем браузере, он показывает Этот сайт не может быть достигнут .

Я использую MySQL базу данных.

Что я пропустил?

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Можно запустить проект laravel в Ма c NginX, но нам нужно написать немного кода, чтобы сделать функции перезаписи URL laravel. Вот справочный файл nginx для справки.

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;

server {
    listen       8080;
    server_name  localhost;
    root /Users/vala/Documents/laravel/MyProject/public;

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log  /var/log/nginx/myapp-error.log error;

    sendfile off;

    client_max_body_size 100m;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME fastcgi_script_name;
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
    }

    location ~ /\.ht {
        deny all;
    }
}

include servers/*;
}

, а затем перезапустите сервер nginx.

nginx -s reload

0 голосов
/ 27 февраля 2020

Настройка локальной среды вручную может занять много времени. Чтобы помочь вам прояснить свой вопрос, вот список соображений:

  1. Вы настроили php -fpm сервис? Он работает?
  2. Вы добавили перенаправление в файл / etc / hosts для вашего example.com?
  3. Какую базу данных вы будете использовать? Он установлен и работает?

Я предлагаю использовать Docker с Laradock, поскольку он прост в использовании, и вы можете выбрать использование Laradock в рабочей среде для синхронизации c для разработки и производства. среда, официальная страница здесь laradock.io

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...