2017-01-11 20 views
0

私はLaravelを学んでいます。セキュリティ上の理由から、共有ホストにインストールしないでください。しかし、私は今、それが唯一の選択肢であるため、とにかくそれをしたいと思っています。共有ホストのパブリックフォルダにのみLaravelをインストールするには?

私は共有ホストにLaravelをインストールする方法を知りました。しかし、すべての指示は、プロジェクトをホストのpublic/webフォルダの外に置き、Laravelパブリックをホストのパブリックにコピーし、インデックスファイル内のパスを変更することに基づいています。

私のホスト上のパブリックフォルダの親フォルダに何かを追加または変更する権限がないので、私はそれを行うことはできません。ですから、Laravelがパブリックフォルダにインストールされているソリューションが必要です。

私は知っている、それは絶対に推奨される解決策ではありません。しかし、私はこの学習段階でこれをやりたいと思っています。

Laravelパッケージ全体をホストのパブリックフォルダに設定するにはどうすればよいですか?

+0

Laravelのどのバージョンですか? – Buglinjo

+0

Linux仮想マシンを作成...任意のディストリビューションを選択...:) – Hackerman

+0

そしてそれはあなたのウェブホスティングプロバイダに依存するかもしれません、プロバイダーの多くはあなたが親フォルダへのアクセスを持つことができるようにアカウントのための '拘束されたshh'(あなたが求めるならば)を与えることができ、作曲家 –

答えて

0

注釈として、これは悪い考えです。すべてのコードが公開されている可能性があります。

これを行う最も簡単な方法は、Laravelを/ publicフォルダにコピーすることです。あなたがcPanelのようなものを使用している場合

その後、あなたはそれが重要でないなら、それはすべてのhtaccessから禁止置くのが賢明はるかに優れたセキュリティでしょう/から/public

+1

"あなたのコードはすべて公開されます。"本当じゃない。サーバの設定ミスによってPHPが無効になり、ソースが公開される危険性がありますが、自動でもよく一般的でもありません。 – ceejayoz

+0

私が言ったように、私はリスクを知っていますが、とにかくこの場合はやりたいと思います。 ispconfigのDNSマネージャからドメインルートを変更できますか?何レコード? –

+0

@PeterWesterlund DNSには何も関係ありません。 – ceejayoz

0

にドメインのルートディレクトリを変更することができますファイルをルートディレクトリに保存します。次に、すべての人が許可するようにパブリックでファイルを更新します。次に、http://example.com/public/を使用してウェブサイトにアクセスします(あなたはhttp://example.comで403の拒否を受けるでしょう)。

あなたは絶対にできない場合。他のlaravelディレクトリ内のすべてから禁止してい

  1. (あなたはnginxのを実行している場合または同等の)あなたはhtaccessファイルのファイルを配置したい(すなわち、ベンダー、アプリ、ストレージなど)。 (Apache 2.2とNginxの違いはApache 2.2とは異なりますが、ファイルの内容についてはgoogleが可能です。)

  2. 次に、publicの内容をドメインルートに移動します。

  3. 次に、パブリックのhtaccessファイルを編集して、すべての隠しファイル、artisan、composer.json、composer.lock、およびlaravelがルートフォルダ内に持つその他のファイルへのアクセスを禁止します。

  4. 次に、index.phpには、2つのrequireステートメントを変更し、bootstrapの前に../を削除します。

私はこれがうまくいくと思いますが、試したことがないので、エラーが発生した場合はお知らせください。

.envファイルをダウンロードすることができないことは絶対に確実です。パスワードはすべてのパスワードに適用されます。 http://example.com/.envはあなたに403の拒否を与えるはずです。それがダウンロードされた場合、あなたは困っています。

関連する問題