web-dev-qa-db-ja.com

/ app /フォルダーを公開せずにWeb HostサブフォルダーにLaravel 4をインストールする方法は?

/ app /フォルダーやその他の賢明なファイルを公開可能な部分に公開せずに、WebホストのSUBDIRECTORY /サブフォルダーにLaravel 4をインストールする方法を知っている人がいるのではホスト。

アイデアは、私は http://mydomain.com/mylaravel/ にアクセスして、Laravelを使用できるようにすることですが、同時に、 http://mydomain.com/app/ または http://mydomain.com/mylaravel/app/ で、基本的に設定ファイルやその他のコードを見ることができます。

60

だから私はこれを行う方法を考え出した。例で説明します。

ドメインを http://domain.com と仮定します。使用する可能性のある構造の例を次に示します。

_domain.com/    (the root of your web hosting)
|-- yourlaravel4_base/
|-- [some other folders...]
|-- public_html/    (where your html files and such go)
|   |-- [some other folders...]
|   |-- yourlaravel4/
_

_/public_html/_は、Webホスティングファイルの一般にアクセス可能な部分のルートです。 _/public_html/_(この場合は_/public_html/yourlaravel4/_)にサブフォルダーを作成します。このサブフォルダーには、Laravel 4 _public/_)フォルダーのすべてのcontentsを格納します。

さて、残りのファイルについて。 Webホスティングファイルのルートに移動する必要があります。つまり、_domain.com/_レベルに到達する必要があるため、_public_html/_およびその他のフォルダーを表示できます。次に、ここにフォルダを作成する必要があります。ここで、Laravel 4のベースファイルが保存されます。この場合、_domain.com/yourlaravel4_base/_です。_yourlaravel4_base/_の内部には、ベースLaravel 4ディレクトリに存在するファイルとフォルダ。これは_app/_、_bootstrap/_、_vendor/_、_server.php_などになります。 _/public/_フォルダーを除くすべて。その内容は既に_public_html/yourlaravel4/_に保存されています。

最後に、Laravelの_/bootstrap/paths.php_と_/public/index.php_の2つのファイルを編集する必要があります。


_paths.php_ファイルで、次を置き換えます:

_'app' => __DIR__.'/../app',
_

で:

_'app' => __DIR__.'/../../yourlaravel4_base/app',
_

_paths.php_ファイルで、次を置き換えます:

_'public' => __DIR__.'/../public',
_

で:

_'public' => __DIR__,
_

_paths.php_ファイルで、次を置き換えます:

_'base' => __DIR__.'/..',
_

で:

_'base' => __DIR__.'/../../yourlaravel4_base',
_

_paths.php_で、置換:

_'storage' => __DIR__.'/../app/storage',
_

で:

_'storage' => __DIR__.'/../../yourlaravel4_base/app/storage',
_

_index.php_で、置換:

_require __DIR__.'/../bootstrap/autoload.php';
_

で:

_require __DIR__.'/../../yourlaravel4_base/bootstrap/autoload.php';
_

_index.php_で、置換:

_$app = require_once __DIR__.'/../bootstrap/start.php';
_

で:

_$app = require_once __DIR__.'/../../yourlaravel4_base/bootstrap/start.php';
_

変更をアップロードします。これで、実際に_app/_フォルダーおよびその他の機密ファイルを公開せずに、WebサイトのサブフォルダーにLaravel 4をインストールできます。:)

64

エイリアスを使用できます。システム上で広範囲に渡るディレクトリに対してhankey-pankeyは使用できません。

Httpd.confまたは管理パネルで指定します。

/mylaravel/ /path/to/laravel/public

さらに、Laravelのapp.phpでURLを指定します

29行目

'url' => 'http://yourdomain.com/mylaravel/',

最終的に、/ public/.htaccessにRewriteBaseを設定します

RewriteBase /mylaravel/

チャームのように機能し、ディレクトリ構造をクリーンでポイントに保ちます!

28
Tom

人、人!物事を過度に複雑にする必要はありません!

htdocswwwなどの他のパブリックフォルダーの場合、以下のpublic_htmlを自分のものに置き換えてください。)

  1. すべてのLaravel stuffを最上位フォルダーに入れます(したがって、appフォルダーはpublic_htmlフォルダーの隣になります)
  2. すべてのファイルをpublicからpublic_htmlに移動します(.htaccess!などの隠しファイルも必ず移動してください)
  3. 空になったpublicフォルダーを削除します
  4. bootstrap/path.php変更

    'public' => __DIR__.'/../public',

    'public' => __DIR__.'/../public_html',

  5. できた.
7
sisou

エマニュエルの答えは私にはうまくいきませんが、私はそれを機能させるためにいくつかの変更を行いました。ただし、プロジェクトのソースとしてWebルートを使用しました。そこにそれがある ;ルートフォルダーとしてhtdocsフォルダーがありますが、public_html、wwwなど、他のフォルダーがある場合があります。私のhtdocsをあなたの持っているものに簡単に置き換えることができます。

結構です。

私の汚い

 root/
 htdocs 
 .htaccess 
 .override

最初に、laravelを使用して、Windows上のローカルホストに対するcomposer依存関係をすべて解決しました。その後、パッケージ全体をlaravel4.Zipにパックしました。 htdocsでlaravelフォルダーを作成し、Zipファイルをアップロードして解凍しました。

htdocs /
 laravel /
 app 
 bootstrap 
 public 
 vendors 
 ...

だから私はファイルを解凍した後、パブリックフォルダ内のすべてをhtdocsフォルダに移動します

htdocs /
 laravel 
 packages 
 .htaccess 
 favicon.ico 
 index.php 
 robots.txt

今、htdocs/index.phpとhtdocs/laravel/bootstrap/paths.phpのいくつかのパスを書き換える必要があります

ただし、htdocs/laravel/bootstrap/paths.phpを開きます。あなたが見るだろう

'app' => __DIR __。 '/ ../app'、

どういう意味ですか 。これは、htdocs/laravel/bootstrap/pathにいることを意味します。そこで、このフォルダーをlaravelフォルダーに移動してからappフォルダーに移動する必要があります。 OK 。これは、ルーティングのlaravelの構造です。これが正しい場合は、laravelを実行できます。

見つける

'public' => __DIR __。 '/ ../public'、

に変更します

'public' => __DIR __。 '/ ../../htdocs'、

(単純なha)これらのうちの1つ(../)で1つのフォルダーに移動できます。したがって、今はlaravel folderにいます。しかし、htdocsにいる必要があります。そこに到達するために別の(../)を書く必要があります。

htdocs/index.phpを開いて見つけます

require __DIR __。 '/ ../bootstrap/autoload.php';

に変更する

'laravel/bootstrap/autoload.php'が必要です; 

requireは組み込みのphp関数なので、単純なphpとして扱います。 autoload.phpファイルを取得するためのlaravelスタイルは本当に必要ありません。単にそれを削除し、古典的なスタイルに行く

見つける

$ app = require_once __DIR __。 '/ ../bootstrap/start.php';

に変更する

$ app = require_once 'laravel/bootstrap/start.php';
3
Hassan Gilak

Laravel 5.1を共有ホスティングスペースに実行しようとしていて、上記のすべての答えが実際のLaravel files/foldersまたは、laravel 5/5.1を共有ホスティングスペースのサブディレクトリに入れて、次のようにアクセスできるようにする方法を探しています:

http://mywebsite.com/mylaravel/

この答えはあなたのためです、まずあなたが会うことを確認してください

Laravel 5.1の要件:

- PHP 5.5
- PHP extension Mcrypt
- PHP extension Mbstring
- PHP extension OpenSSL

ここであなたのための簡単な2つのチュートリアル:

リンク1

リンク2

Laravel共有ホスティングでプロジェクトを設定し、cPanelにアクセスできる場合は、次の手順を実行できます。うまくいきました。

手順1:ローカルマシン上のLaravelアプリケーション全体のZipまたはtarファイルを作成します。

ステップ2:Cpanelに移動します。 Zip/tarファイルをpublic_htmlディレクトリにアップロードしてから抽出します。 (laravelアプリケーション。別のフォルダを作成することもできます。複数のLaravelアプリケーションをアップロードするため、下の画像で。)

enter image description here

ステップ3:「アドオンドメイン」に進み、指定したドメインのドキュメントルートを変更します。ドメインをパブリックフォルダーにポイントします。

enter image description here

次に、public/index.phpファイルにリダイレクトされるドメインを確認します。パスを変更する必要はありません。

1
Sumit Patil

パネルでaddondomainまたはサブドメインウィザードを使用している場合、ウィザードはドキュメントルートを尋ねる必要があります。たとえば、droidman.comをアドオンしたい場合、ウィザードはdroidman.comフォルダーの作成を提案します。このステップでは、ウィザードにdroidman.com/public folderを作成するよう指示します。次に、アプリケーションをdroidman.comフォルダーに入れます。ホストはパブリックフォルダーを参照します;)問題が解決しました

1
Hassan Gilak

Apacheサーバーを使用している場合、これを行う最も簡単な方法は、Laravelアプリケーションをwwwルートの外(またはwwwルートの保護されたフォルダー)にホスト保存し、必要なlaravelのパブリックフォルダーを指すサブフォルダー

たとえば、laravelインストールを以下に配置します。

/usr/local/share/myLaravel

次に、パブリックwwwフォルダーで、次のようにシンボリックリンクを作成します。

ln -s /usr/local/share/myLaravel/public mylaravel

Rewrite Baseを/ mylaravel /に配置するなど、インストールを調整する必要があります。また、構成ファイルがベースの場所でオーバーライドを許可するようにしますが、これはすべてを変更するよりも簡単です。

0
Troy