Tuyến Laravel không hoạt động trong Ubuntu

*.htacess file in public folder : *


    
        Options -MultiViews
    

    RewriteEngine On
    RewriteBase /var/www/gloops/public/
   # change above to your site i.e.,  RewriteBase /whatever/public/

    # Redirect Trailing Slashes...
    RewriteRule ^[.*]/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

*apache2.conf file in /etc/apache2 : *

ServerName localhost

Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf


        Options FollowSymLinks
        AllowOverride None
        Require all denied



        AllowOverride None
        Require all granted



        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted



        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted


*000-default.conf in etc/apache2/sites-enabled : *


        ServerAdmin [email protected]
        DocumentRoot /var/www/gloops/public
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

Khi bạn đã sẵn sàng để triển khai ứng dụng Laravel của mình vào sản xuất, có một số điều quan trọng bạn có thể làm để đảm bảo ứng dụng của mình đang chạy hiệu quả nhất có thể. Trong tài liệu này, chúng tôi sẽ đề cập đến một số điểm khởi đầu tuyệt vời để đảm bảo ứng dụng Laravel của bạn được triển khai đúng cách

Yêu cầu máy chủ

Laravel framework có một vài yêu cầu hệ thống. Bạn nên đảm bảo rằng máy chủ web của mình có phiên bản PHP tối thiểu sau đây và các tiện ích mở rộng

  • PHP >= 8. 0
  • Phần mở rộng BCMath PHP
  • Tiện ích mở rộng Ctype PHP
  • Tiện ích mở rộng cURL PHP
  • Phần mở rộng DOM PHP
  • Tiện ích mở rộng Fileinfo PHP
  • Tiện ích mở rộng PHP JSON
  • Tiện ích mở rộng Mbstring PHP
  • Tiện ích mở rộng OpenSSL PHP
  • Phần mở rộng PCRE PHP
  • Phần mở rộng PDO PHP
  • Tiện ích mở rộng mã thông báo PHP
  • Tiện ích mở rộng XML PHP

Cấu hình máy chủ

Nginx

Nếu bạn đang triển khai ứng dụng của mình tới một máy chủ đang chạy Nginx, bạn có thể sử dụng tệp cấu hình sau làm điểm bắt đầu để định cấu hình máy chủ web của mình. Rất có thể, tệp này sẽ cần được tùy chỉnh tùy thuộc vào cấu hình máy chủ của bạn. Nếu bạn muốn được hỗ trợ trong việc quản lý máy chủ của mình, hãy cân nhắc sử dụng dịch vụ triển khai và quản lý máy chủ Laravel của bên thứ nhất, chẳng hạn như Laravel Forge

Hãy đảm bảo, giống như cấu hình bên dưới, máy chủ web của bạn hướng tất cả các yêu cầu đến tệp

root /srv/example.com/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-Content-Type-Options "nosniff";

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; }

error_page 404 /index.php;

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

location ~ /\.[?!well-known].* {

0 của ứng dụng của bạn. Bạn không bao giờ nên cố gắng di chuyển tệp

root /srv/example.com/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-Content-Type-Options "nosniff";

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; }

error_page 404 /index.php;

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

location ~ /\.[?!well-known].* {

1 vào thư mục gốc của dự án, vì việc cung cấp ứng dụng từ thư mục gốc của dự án sẽ làm lộ nhiều tệp cấu hình nhạy cảm ra Internet công cộng

root /srv/example.com/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-Content-Type-Options "nosniff";

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; }

error_page 404 /index.php;

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

location ~ /\.[?!well-known].* {

Tối ưu hóa

Tối ưu hóa trình tải tự động

Khi triển khai vào sản xuất, hãy đảm bảo rằng bạn đang tối ưu hóa bản đồ trình tải tự động lớp của Trình soạn thảo để Trình soạn thảo có thể nhanh chóng tìm thấy tệp thích hợp để tải cho một lớp nhất định

composer install --optimize-autoloader --no-dev

Lưu ý
Ngoài việc tối ưu hóa trình tải tự động, bạn phải luôn đảm bảo bao gồm tệp

root /srv/example.com/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-Content-Type-Options "nosniff";

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; }

error_page 404 /index.php;

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

location ~ /\.[?!well-known].* {

2 trong kho lưu trữ kiểm soát nguồn của dự án. Các phần phụ thuộc của dự án của bạn có thể được cài đặt nhanh hơn nhiều khi có tệp

root /srv/example.com/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-Content-Type-Options "nosniff";

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; }

error_page 404 /index.php;

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

location ~ /\.[?!well-known].* {

2.

Tối ưu hóa tải cấu hình

Khi triển khai ứng dụng của bạn vào sản xuất, bạn nên đảm bảo rằng bạn chạy lệnh Artisan

root /srv/example.com/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-Content-Type-Options "nosniff";

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; }

error_page 404 /index.php;

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

location ~ /\.[?!well-known].* {

4 trong quá trình triển khai của mình

Lệnh này sẽ kết hợp tất cả các tệp cấu hình của Laravel thành một tệp được lưu trong bộ nhớ cache, giúp giảm đáng kể số lần mà khung phải thực hiện đối với hệ thống tệp khi tải các giá trị cấu hình của bạn

Cảnh báo
Nếu bạn thực thi lệnh

root /srv/example.com/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-Content-Type-Options "nosniff";

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; }

error_page 404 /index.php;

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

location ~ /\.[?!well-known].* {

4 trong quá trình triển khai của mình, bạn nên đảm bảo rằng mình chỉ gọi hàm

root /srv/example.com/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-Content-Type-Options "nosniff";

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; }

error_page 404 /index.php;

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

location ~ /\.[?!well-known].* {

6 từ bên trong các tệp cấu hình của mình. Khi cấu hình đã được lưu vào bộ đệm, tệp

root /srv/example.com/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-Content-Type-Options "nosniff";

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; }

error_page 404 /index.php;

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

location ~ /\.[?!well-known].* {

7 sẽ không được tải và tất cả các lệnh gọi hàm

root /srv/example.com/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-Content-Type-Options "nosniff";

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; }

error_page 404 /index.php;

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

location ~ /\.[?!well-known].* {

6 cho các biến

root /srv/example.com/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-Content-Type-Options "nosniff";

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; }

error_page 404 /index.php;

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

location ~ /\.[?!well-known].* {

7 sẽ trả về

composer install --optimize-autoloader --no-dev

2.

Tối ưu hóa tải tuyến đường

Nếu bạn đang xây dựng một ứng dụng lớn với nhiều tuyến đường, bạn nên đảm bảo rằng bạn đang chạy lệnh Artisan

composer install --optimize-autoloader --no-dev

3 trong quá trình triển khai của mình

Lệnh này giảm tất cả các đăng ký tuyến đường của bạn thành một cuộc gọi phương thức duy nhất trong một tệp được lưu trong bộ nhớ cache, cải thiện hiệu suất đăng ký tuyến đường khi đăng ký hàng trăm tuyến đường

Tối ưu hóa lượt xem đang tải

Khi triển khai ứng dụng của bạn vào sản xuất, bạn nên đảm bảo rằng bạn chạy lệnh Artisan

composer install --optimize-autoloader --no-dev

4 trong quá trình triển khai của mình

Lệnh này biên dịch trước tất cả các chế độ xem Blade của bạn để chúng không được biên dịch theo yêu cầu, cải thiện hiệu suất của từng yêu cầu trả về một chế độ xem

Chế độ kiểm tra sửa lỗi

Tùy chọn gỡ lỗi trong cấu hình/ứng dụng của bạn. tệp cấu hình php xác định lượng thông tin về lỗi thực sự được hiển thị cho người dùng. Theo mặc định, tùy chọn này được đặt để tôn trọng giá trị của biến môi trường

composer install --optimize-autoloader --no-dev

5, được lưu trữ trong tệp

root /srv/example.com/public;

add_header X-Frame-Options "SAMEORIGIN";

add_header X-Content-Type-Options "nosniff";

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; }

error_page 404 /index.php;

fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

location ~ /\.[?!well-known].* {

7 của ứng dụng của bạn

Trong môi trường sản xuất của bạn, giá trị này phải luôn là

composer install --optimize-autoloader --no-dev

7. Nếu biến

composer install --optimize-autoloader --no-dev

5 được đặt thành

composer install --optimize-autoloader --no-dev

9 trong quá trình sản xuất, bạn có nguy cơ để lộ các giá trị cấu hình nhạy cảm cho người dùng cuối ứng dụng của mình

Triển khai với Forge/Vapor

Lò rèn Laravel

Nếu bạn chưa sẵn sàng để quản lý cấu hình máy chủ của riêng mình hoặc không thoải mái khi định cấu hình tất cả các dịch vụ khác nhau cần thiết để chạy một ứng dụng Laravel mạnh mẽ, thì Laravel Forge là một giải pháp thay thế tuyệt vời

Laravel Forge có thể tạo máy chủ trên nhiều nhà cung cấp cơ sở hạ tầng khác nhau như DigitalOcean, Linode, AWS, v.v. Ngoài ra, Forge cài đặt và quản lý tất cả các công cụ cần thiết để xây dựng các ứng dụng Laravel mạnh mẽ, chẳng hạn như Nginx, MySQL, Redis, Memcached, Beanstalk, v.v.

Lưu ý Muốn có hướng dẫn đầy đủ để triển khai với Laravel Forge?

hơi Laravel

Nếu bạn muốn một nền tảng triển khai hoàn toàn không có máy chủ, tự động điều chỉnh quy mô cho Laravel, hãy xem Laravel Vapor. Laravel Vapor là một nền tảng triển khai serverless dành cho Laravel, được cung cấp bởi AWS. Khởi chạy cơ sở hạ tầng Laravel của bạn trên Vapor và yêu thích sự đơn giản có thể mở rộng của serverless. Laravel Vapor được những người sáng tạo của Laravel tinh chỉnh để hoạt động trơn tru với framework, do đó bạn có thể tiếp tục viết các ứng dụng Laravel của mình chính xác như bạn đã quen

Làm cách nào tôi có thể đăng ký tuyến đường của mình trong Laravel?

Theo mặc định, bạn có thể làm như thế này. .
Tuyến đường. get['tuyến của tôi', 'MyController@index'];.
Tuyến đường. get['tuyến đường của tôi', [\App\Http\Controllers\MyController. lớp, 'chỉ mục']];.
sử dụng Ứng dụng\Http\Controllers\MyController; . get['tuyến đường của tôi', [MyController. lớp, 'chỉ mục']];

Làm cách nào tôi có thể biết lộ trình của mình trong Laravel?

Bạn có thể sử dụng các phương thức current, currentRouteName và currentRouteAction trên mặt tiền Tuyến đường để truy cập thông tin về tuyến đường xử lý yêu cầu đến. $route = Tuyến đường. hiện hành[]; . currentRouteName[]; . currentRouteAction[];

Laravel route hoạt động như thế nào?

Các route cơ bản nhất của Laravel chỉ chấp nhận một URI và một Closure. .
Lộ trình GET cơ bản. .
Các tuyến đường cơ bản khác. .
Đăng ký một lộ trình cho nhiều động từ. .
Đăng ký một tuyến đáp ứng với bất kỳ động từ HTTP nào. .
Chèn mã thông báo CSRF vào một biểu mẫu. .
Tham số tuyến đường cơ bản. .
Tham số tuyến đường tùy chọn. .
Tham số tuyến đường tùy chọn với giá trị mặc định

Làm cách nào để chuyển ID với tuyến đường trong Laravel?

Hãy hiểu điều này thông qua một ví dụ. .
Bước 1. Thêm mẫu vào phương thức khởi động của RouteServiceProvider. tập tin php. chức năng công khai boot[] { Tuyến đường. mẫu ['id', '[0-9]+']; . khởi động[];.
Bước 2. Thêm các tuyến đường trong web. tập tin php. Tuyến đường. get['user/{id}', function [$id] { return $id; }];

Chủ Đề