Laravel 9 Jetstream头像在PHP服务器正常,Apache下无法上传
Laravel 9 Jetstream 头像无法上传问题(Apache 环境)
我曾查阅过Laravel 8 Jetstream头像无法显示的类似问题,但我使用的是Laravel 9版本。
问题详情
- 使用
php artisan serve启动应用,通过http://localhost:8000/访问时,头像加载完全正常; - 但使用Apache服务器,通过
http://localhost/infoalq_jetstream/public/访问时,头像完全无法上传,数据库users表的profile_photo_path字段始终为NULL。
已尝试的操作
- 已在
public文件夹中创建指向storage的软链接,执行php artisan storage:link时提示ERROR The [public/storage] link already exists.,文件管理器中确实存在该软链接; - 跟随西班牙语教程视频进行过操作。
配置文件
.env 文件
APP_NAME=Laravel APP_ENV=local APP_KEY=base64:N+QlCYsU2lDVNWiJ+KEP+QraqWsDbar7eLWwtJa+M3s= APP_DEBUG=true APP_URL=http://localhost/infoalq_jetstream/public/ LOG_CHANNEL=stack LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=jetstream DB_USERNAME=root DB_PASSWORD=root BROADCAST_DRIVER=log CACHE_DRIVER=file FILESYSTEM_DISK=local QUEUE_CONNECTION=sync SESSION_DRIVER=database SESSION_LIFETIME=120 MEMCACHED_HOST=127.0.0.1 REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_MAILER=smtp MAIL_HOST=sandbox.smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=0a3a3bb4fcb540 MAIL_PASSWORD=7a9e2495cc9668 MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="leandro@caplan.com" MAIL_FROM_NAME="Leandro Caplan" AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= AWS_USE_PATH_STYLE_ENDPOINT=false PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_HOST= PUSHER_PORT=443 PUSHER_SCHEME=https PUSHER_APP_CLUSTER=mt1 VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" VITE_PUSHER_HOST="${PUSHER_HOST}" VITE_PUSHER_PORT="${PUSHER_PORT}" VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
注:我尝试过将APP_URL设为空、"http://localhost"以及当前值。
jetstream.php 文件
<?php use Laravel\Jetstream\Features; use Laravel\Jetstream\Http\Middleware\AuthenticateSession; return [ /* |-------------------------------------------------------------------------- | Jetstream Stack |-------------------------------------------------------------------------- | | This configuration value informs Jetstream which "stack" you will be | using for your application. In general, this value is set for you | during installation and will not need to be changed after that. | */ 'stack' => 'livewire', /* |-------------------------------------------------------------------------- | Jetstream Route Middleware |-------------------------------------------------------------------------- | | Here you may specify which middleware Jetstream will assign to the routes | that it registers with the application. When necessary, you may modify | these middleware; however, this default value is usually sufficient. | */ 'middleware' => ['web'], 'auth_session' => AuthenticateSession::class, /* |-------------------------------------------------------------------------- | Jetstream Guard |-------------------------------------------------------------------------- | | Here you may specify the authentication guard Jetstream will use while | authenticating users. This value should correspond with one of your | guards that is already present in your "auth" configuration file. | */ 'guard' => 'sanctum', /* |-------------------------------------------------------------------------- | Features |-------------------------------------------------------------------------- | | Some of Jetstream's features are optional. You may disable the features | by removing them from this array. You're free to only remove some of | these features or you can even remove all of these if you need to. | */ 'features' => [ // Features::termsAndPrivacyPolicy(), Features::profilePhotos(), // Features::api(), // Features::teams(['invitations' => true]), Features::accountDeletion(), ], /* |-------------------------------------------------------------------------- | Profile Photo Disk |-------------------------------------------------------------------------- | | This configuration value determines the default disk that will be used | when storing profile photos for your application's users. Typically | this will be the "public" disk but you may adjust this if needed. | */ 'profile_photo_disk' => 'public', ];
filesystems.php 文件
<?php return [ /* |-------------------------------------------------------------------------- | Default Filesystem Disk |-------------------------------------------------------------------------- | | Here you may specify the default filesystem disk that should be used | by the framework. The "local" disk, as well as a variety of cloud | based disks are available to your application. Just store away! | */ 'default' => env('FILESYSTEM_DISK', 'local'), /* |-------------------------------------------------------------------------- | Filesystem Disks |-------------------------------------------------------------------------- | | Here you may configure as many filesystem "disks" as you wish, and you | may even configure multiple disks of the same driver. Defaults have | been set up for each driver as an example of the required values. | | Supported Drivers: "local", "ftp", "sftp", "s3" | */ 'disks' => [ 'local' => [ 'driver' => 'local', 'root' => storage_path('app'), 'throw' => false, ], 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', 'throw' => false, ], 's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET'), 'url' => env('AWS_URL'), 'endpoint' => env('AWS_ENDPOINT'), 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), 'throw' => false, ], ], /* |-------------------------------------------------------------------------- | Symbolic Links |-------------------------------------------------------------------------- | | Here you may configure the symbolic links that will be created when the | `storage:link` Artisan command is executed. The array keys should be | the locations of the links and the values should be their targets. | */ 'links' => [ public_path('storage') => storage_path('app/public'), ], ];
环境信息
- Linux Mint 21 Vanessa
- Apache/2.4.52 (Ubuntu)
- PHP 8.2.1
- Laravel v9.48.0
有人知道问题出在哪吗?如需更多信息,请告知。非常感谢!
内容的提问来源于stack exchange,提问作者Leandro Caplan
相关产品推荐
相关产品推荐

