前提・実現したいこと
さくらレンタルサーバー内にララベルプロジェクトをアップロードして動くようにしたい。
/home/hogehoge/www/
|
-public
| |ララベル内publicのシンボリックリンク
|
-hogehoge(laravelプロジェクト)
のディレクトリ構成でララベルを動かそうと思っています。
同じような様々な記事を参考にしていますが、public直下以外はNot Foundとなってしまいます。
ララベルプロジェクトはhome/(アプリ名)/wwwに直接ftp転送しており、いじっているうちに何が何だか分からなくなってしまいました。
行ったことと変更内容
envファイル設定
chmod -R 777 storage
サーバにsshで接続
以下の内容が自分が解決したいこととマッチしている思い、
https://qiita.com/n11sh1/items/9abeeffe2d825d3458ea
を参考に
ln -s home/hogehoge/www/hogehoge/public/ ~/www/public
を実行しするとpublic内容が
home/(アプリ名)/www/直下にシンボリックリンクが作成されますが、無効なリンクと表示されています。
最終的には.sakura.ne.jp/ドメイン名/publicで表示がしたいです。
考えられる理由や対処法などありますでしょうか。
該当のソースコード
変更箇所 .htaccess <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On //変更 RewriteBase / # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
public/index.php <?php use Illuminate\Contracts\Http\Kernel; use Illuminate\Http\Request; define('LARAVEL_START', microtime(true)); /* |-------------------------------------------------------------------------- | Check If The Application Is Under Maintenance |-------------------------------------------------------------------------- | | If the application is in maintenance / demo mode via the "down" command | we will load this file so that any pre-rendered content can be shown | instead of starting the framework, which could cause an exception. | */ if (file_exists(__DIR__.'/../storage/framework/maintenance.php')) { require __DIR__.'/../storage/framework/maintenance.php'; } /* |-------------------------------------------------------------------------- | Register The Auto Loader |-------------------------------------------------------------------------- | | Composer provides a convenient, automatically generated class loader for | this application. We just need to utilize it! We'll simply require it | into the script here so we don't need to manually load our classes. | */ //変更 require __DIR__.'/../../hogehoge/vendor/autoload.php'; /* |-------------------------------------------------------------------------- | Run The Application |-------------------------------------------------------------------------- | | Once we have the application, we can handle the incoming request using | the application's HTTP kernel. Then, we will send the response back | to this client's browser, allowing them to enjoy our application. | */ //変更 $app = require_once __DIR__.'/../../hogehoge/bootstrap/app.php'; $kernel = $app->make(Kernel::class); $response = tap($kernel->handle( $request = Request::capture() ))->send(); $kernel->terminate($request, $response);
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー