Program Club

/ app / 폴더를 공개하지 않고 웹 호스트 하위 폴더에 Laravel 4를 설치하는 방법은 무엇입니까?

proclub 2020. 12. 4. 21:07
반응형

/ app / 폴더를 공개하지 않고 웹 호스트 하위 폴더에 Laravel 4를 설치하는 방법은 무엇입니까?


웹 호스트 SUBDIRECTORY / 하위 폴더에 Laravel 4를 설치하는 방법을 알고있는 사람이 있는지 궁금합니다.

아이디어는 Laravel을 사용할 수 있도록 http://mydomain.com/mylaravel/ 에 액세스 할 수 있지만 동시에 http://mydomain.com으로 이동하는 것과 같은 작업을하는 사람을 피하고 싶습니다 . / app / 또는 http://mydomain.com/mylaravel/app/ 기본적으로 내 구성 파일 및 기타 코드를 볼 수 있습니다.


그래서 나는 이것을하는 방법을 알아 냈다. 예를 들어 설명하겠습니다.

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/웹 호스팅 파일에서 공개적으로 액세스 할 수있는 부분의 루트입니다. 에 하위 폴더를 만들려고합니다 /public_html/(이 경우 /public_html/yourlaravel4/). 이 하위 폴더 에는 Laravel 4 폴더 모든 내용 이 저장됩니다 public/.

이제 나머지 파일에 대해. 웹 호스팅 파일의 루트로 이동해야합니다. 즉, domain.com/레벨에 있어야하므로 public_html/다른 폴더 를 볼 수 있습니다. 그런 다음 여기에 Laravel 4의 기본 파일이 저장 될 폴더를 만들어야합니다. 이 경우 domain.com/yourlaravel4_base/. 내부 yourlaravel4_base/에 기본 Laravel 4 디렉토리에있는 모든 파일과 폴더를 저장해야합니다. 즉 것 app/, bootstrap/, vendor/, server.php, 등 모든 것이 EXCEPT /public/내용이 이미 저장된 폴더를 public_html/yourlaravel4/.

마지막으로 라 라벨 /bootstrap/paths.php/public/index.php.


에서 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/폴더 및 기타 민감한 파일을 노출하지 않고도 웹 사이트의 하위 폴더에 Laravel 4를 설치할 수 있습니다. :)


별칭을 사용할 수 있습니다. 시스템의 광범위한 디렉토리에 hankey-pankey가 없습니다.

httpd.conf 또는 관리자 패널에서 지정하십시오.

/mylaravel/ /path/to/laravel/public

또한 Laravel의 app.php에 URL을 지정하십시오.

29 행

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

결국 /public/.htaccess에 RewriteBase를 설정하십시오.

RewriteBase /mylaravel/

매력처럼 작동하며 디렉토리 구조를 깨끗하고 요점으로 유지합니다!


사람, 사람! 너무 복잡 할 필요가 없습니다!

(같은 다른 공용 폴더에 대한 htdocs또는 www단지 대체 public_html하여 하나 다음에.)

  1. 모든 Laravel 항목을 최상위 폴더에 넣으십시오 ( app폴더가 폴더 옆에 있도록 public_html)
  2. 모든 파일을에서 public이동 public_html( .htaccess! 와 같은 숨겨진 파일도 이동해야 함 )
  3. 이제 비어있는 public폴더 삭제
  4. 에서 bootstrap/path.php변경

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

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

  5. 끝난.

emmanuel 대답은 ​​나를 위해 작동하지 않지만 작동하도록 약간 변경했습니다. 내 웹 루트를 프로젝트의 소스로 사용했지만. 거기는 ; 루트 폴더로 htdocs 폴더가 있지만 public_html, www 등과 같은 다른 폴더가있을 수 있습니다. 내 htdocs를 가지고있는 것으로 쉽게 바꿀 수 있습니다.

좋아 .

내 디렉토리

뿌리/ 
      htdocs
      .htaccess
      .우세하다

먼저 composer를 사용하여 Windows의 localhost에 대한 모든 laravel 종속성을 해결했습니다. 그 후 전체 패키지를 laravel4.zip에 포장했습니다. 내 htdocs에서 laravel 폴더를 만들고 zip 파일을 업로드하고 압축을 풉니 다.

htdocs /
        laravel /
                 부트 스트랩
                 공공의 
                 공급 업체
                 ...

그래서 파일의 압축을 푼 후 공용 폴더의 모든 것을 htdocs 폴더로 옮깁니다.

htdocs /
        Laravel
        패키지
        .htaccess
        favicon.ico
        index.php
        robots.txt

이제 htdocs / index.php 및 htdocs / laravel / bootstrap / paths.php의 일부 경로를 다시 작성해야합니다.

하지만 htdocs / laravel / bootstrap / paths.php를 열 수 있습니다. 너는 볼 것이다

'앱'=> __DIR __. '/ .. / 앱',

무슨 뜻이에요 . 그것은 우리가 htdocs / laravel / bootstrap / path에 서 있음을 의미합니다. 이 폴더를 laravel 폴더로 종료 한 다음 app folder로 이동해야합니다. 확인 . 이것은 라우팅을위한 laravel의 구조입니다. 이게 맞다면 라 라벨을 실행할 수 있습니다.

찾기

'공개'=> __DIR __. '/ .. / 공개',

그리고 그것을

'공개'=> __DIR __. '/ .. / .. / htdocs',

(간단한 ha)이 중 하나 (../)를 사용하여 한 폴더 위로 이동할 수 있습니다. 이제 우리는 laravel 폴더에 있습니다. 하지만 우리는 htdocs에 있어야합니다. 그래서 우리는 거기에 도달하기 위해 다른 (../)을 작성해야합니다.

htdocs / index.php를 열고

__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';

공유 호스팅 공간에서 Laravel 5.1을 실행하려고하는데 위의 모든 답변이 실제 Laravel 파일 / 폴더와 약간 다른 것처럼 보이거나 laravel 5 / 5.1을 하위 디렉토리에 넣는 방법을 찾고있는 경우 다음과 같이 액세스 할 수 있도록 공유 호스팅 공간 :

http://mywebsite.com/mylaravel/

그래서이 대답은 당신을위한 것입니다.

라 라벨 5.1 요구 사항 :

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

여기에 쉬운 두 가지 튜토리얼이 있습니다.

링크 1

링크 2


패널에서 addondomain 또는 하위 도메인 마법사를 사용하는 경우 마법사는 문서 루트를 묻습니다. 예를 들어 droidman.com을 추가하고 싶다면 마법사가 droidman.com 폴더를 만드는 것을 제안해야합니다. 이 단계에서 마법사에게 droidman.com/public 폴더를 만들도록 지시합니다. 그런 다음 응용 프로그램을 droidman.com 폴더에 넣으십시오. 호스트는 공용 폴더를 볼 것입니다;). 문제 해결됨


공유 호스팅에 Laravel Project를 간단히 설정하고 cPanel 액세스 권한이있는 경우 다음 단계를 수행 할 수 있으며 잘 작동했습니다.

1 단계 : 로컬 머신에서 전체 Laravel 애플리케이션의 zip 또는 tar 파일을 만듭니다.

2 단계 : Cpanel로 이동합니다. zip / tar 파일을 public_html 디렉토리에 업로드 한 다음 압축을 풉니 다. (라 라벨 애플리케이션을위한 별도의 폴더를 생성 할 수도 있습니다. 하나 이상의 라 라벨 애플리케이션을 업로드하고 싶기 때문에 아래 이미지와 같이 각각에 대해 별도의 디렉토리를 생성했습니다.)

여기에 이미지 설명 입력

3 단계 : 이제 'Addon Domain'으로 이동하여 지정된 도메인의 문서 루트를 변경합니다. 도메인을 공용 폴더로 지정합니다.

여기에 이미지 설명 입력

이제 도메인을 확인하면 public / index.php 파일로 리디렉션됩니다. 경로를 변경할 필요가 없습니다.


If you're using an apache server, the simplest way to do this is to host store your Laravel application outside of the www root (or in a protected folder in www root) then symlink the desired subfolder to point it the public folder in laravel

For example, I place my laravel installations in:

/usr/local/share/myLaravel

Then, in your public www folder, create a symlink as so:

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

You'll need to make some adjustments to your installation, like putting your Rewrite Base to /mylaravel/ and make sure that your config files allow overrides in the base location, but this is simpler than modifying everything.


Make sure to check your permissions. I deployed through the following although I don't recommend it.

I used SSH and did something like:

rm -rf public_html/ // WARNING: READ NOTE AT THE BOTTOM BEFORE RUNNING

ln -s project_folder/public/ public_html  // where the format is ln -s target name

Afterwards, I would receive a message like "Whoops, looks like something went wrong" (or an error depending on your debug settings). To fix this, I just had to change my permissions to 755 for my folders. reference: http://kb.webhostface.com/laravel/fix-permission-denied-error-laravel

Overall, I'm going to go back and try the original way with changed permissions as I find this route to be less secure, and more reliant on my hosting customer service.

***** 참고 *****이 명령은 public_html (공용 또는 www라고도 함) 폴더를 분명히 제거합니다. 파일을 삭제하기 때문에 모든 파일을 백업해야합니다. 또한 고객 서비스를 통해 복원 할 준비가되어 있어야합니다. 많은 호스팅 서비스에서는 단순히 폴더를 직접 다시 만들 수 없습니다.

참고 URL : https://stackoverflow.com/questions/16683046/how-to-install-laravel-4-to-a-web-host-subfolder-without-publicly-exposing-app

반응형