laravelで開発環境をはじめました。
- Windows 10 home
- docker(docker toolを使っています。)
四苦八苦しながらlarabelの立ち上げには成功しまいた。
docker
1version: '3' 2 3services: 4 php: 5 container_name: laravel-php 6 build: ./docker/php 7 volumes: 8 - ./server:/var/www 9 10 nginx: 11 image: nginx 12 container_name: laravel-nginx 13 ports: 14 - 8080:80 15 volumes: 16 - ./server:/var/www 17 - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf 18 depends_on: 19 - php 20 21 db: 22 image: mysql:5.7 23 container_name: laravel-mysql 24 environment: 25 MYSQL_ROOT_PASSWORD: root 26 MYSQL_DATABASE: database 27 MYSQL_USER: docker 28 MYSQL_PASSWORD: docker 29 TZ: 'Asia/Tokyo' 30 command: "--innodb_use_native_aio=0" 31 volumes: 32 - ./docker/db/mysql:/var/lib/mysql 33 - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf 34 - ./docker/db/sql:/docker-entrypoint-initdb.d 35 ports: 36 - 3306:3306 37 phpmyadmin: 38 image: phpmyadmin/phpmyadmin 39 environment: 40 - PMA_ARBITRARY=1 41 - PMA_HOST=db 42 - MYSQL_USER=default 43 - MYSQL_PASSWORD=secret 44 - MYSQL_ROOT_PASSWORD=secret 45 links: 46 - db 47 ports: 48 - 5432:80 49 volumes: 50 - /sessions 51
nginxの設定
default.conf
1server { 2 listen 80; 3 index index.php index.html; 4 root /var/www/public; 5 6 location / { 7 root /var/www/public; 8 index index.html index.php; 9 } 10 11 location ~ .php$ { 12 13 try_files $uri =404; 14 fastcgi_split_path_info ^(.+.php)(/.+)$; 15 fastcgi_pass php:9000; 16 fastcgi_index index.php; 17 include fastcgi_params; 18 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 19 fastcgi_param PATH_INFO $fastcgi_path_info; 20 } 21 }
このあとroutesの処理を加えたところでつまりました。
routes/web.php
1<?php 2 3/* 4|-------------------------------------------------------------------------- 5| Web Routes 6|-------------------------------------------------------------------------- 7| 8| Here is where you can register web routes for your application. These 9| routes are loaded by the RouteServiceProvider within a group which 10| contains the "web" middleware group. Now create something great! 11| 12*/ 13 14Route::get('/', function () { 15 return view('welcome'); 16}); 17 18Route::get('/welcome', function () { 19 return view('welcome'); 20}); 21
これだとhttp://localhost:8080/
だとページが表示されますが、http://localhost:8080/welcome
だと404 Not Foundとなってしまいました。
この場合どこを疑えばよろしいのでしょうか?ルートはとおっていると思うのです。
bash
1$ php artisan route:list 2 3+--------+----------+--------------+------+---------------------------------------------+--------------+ 4| Domain | Method | URI | Name | Action | Middleware | 5+--------+----------+--------------+------+---------------------------------------------+--------------+ 6| | GET|HEAD | / | | Closure | web | 7| | GET|HEAD | api/user | | Closure | api,auth:api | 8| | GET|HEAD | welcome | | Closure | web | 9+--------+----------+--------------+------+---------------------------------------------+--------------+
回答2件