Я использую Ubuntu 16.04 с PHP 7.1, NGINX и Laravel 5.8.
Моя цель - создать многопользовательское приложение в моей локальной (dev) среде.
URL-адрес корня - myapp.com
. Я хочу извлечь из URL: account1.myapp.com
, account2.myapp.com
, ...
и отобразить обратно строку account1
или account2
, ...
.
После прохождения через несколько сообщений:
- Используйте / etc / hosts для направления доменного имени с подстановочными знаками
- Как вставить шаблон в / etc / hosts?
- Мультитенант Laravel в Ubuntu
- Подстановочный знак в файле / etc / hosts
Я узнал, что должен:
- Установка и настройка dnsmasq
/etc/dnsmasq.conf (address=/myapp.com/127.0.0.1)
- Установить маршруты в Laravel для получения поддоменов
- Установить хосты (127.0.0.1 myapp.com)
- Установить
/etc/nginx/sites-available/myapp.com.conf (server_name *.myapp.com myapp.com;)
После всех этих шагов,
URL myapp.com работает хорошо Route::get('/', 'HomeController@index');
, но URL http://account1.myapp.com/, все еще не работает (этот сайт недоступен)
Я не могу понять, что я делаю неправильно.
Некоторая помощь?
Вот код, который у меня есть:
ROUTE
Route::domain('{account}.myapp.com/')->group(function ($account) {
return $account;
});
Auth::routes();
Route::get('/', 'HomeController@index');
/ и т.д. / хосты
127.0.0.1 myapp.com
/ и т.д. / Nginx / сайты-доступные / myapp.com.conf
server {
listen 80;
server_name *.myapp.com myapp.com;
root /var/www/vhosts/myapp.com/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.com-error.log error;
error_page 404 /index.php;
sendfile off;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /\.ht {
deny all;
}
client_max_body_size 1000m;
}
/ и т.д. / dnsmasq.conf
# Configuration file for dnsmasq.
#
address=/myapp.com/127.0.0.1
# Format is one option per line, legal options are the same ...
...