2010-07-08 3 views
2

내 magento 웹 사이트를 가리 키도록 포트 8080에서 Apache 가상 호스팅을 구성했습니다. 기본값보다 다른 포트에서 magento 실행

 Listen 8080 

     <VirtualHost 6x.2x.6x.1x:8080> 

    ServerAdmin [email protected] 
    ServerName domainname.com 
ServerAlias *.domainname.com 
DocumentRoot /var/www/sites/domain/ 

    <Directory /> 
      Options FollowSymLinks 
      AllowOverride all 
      Order allow,deny 
      allow from all 
    </Directory> 

    ErrorLog /var/log/apache2/error.log 

    # Possible values include: debug, info, notice, warn, error, crit, 
    # alert, emerg. 
    LogLevel warn 

    CustomLog /var/log/apache2/access.log combined 
    ServerSignature On 

<LocationMatch ".*\svn.*"> 
    Order allow,deny 
    Deny from all 
</LocationMatch> 

      </VirtualHost> 

내가 포트가 링크 여기

에 부착되지 않기 때문에 JS는, CSS는, IMG와 다른 일이로드되지 않습니다 www.domain.com:8080 웹 사이트로 이동

는 재 작성 규칙입니다 마 젠토 htaccess로에서 작동하지 않습니다 :

  <IfModule mod_rewrite.c> 

############################################ 
## enable rewrites 

    Options +FollowSymLinks 
    RewriteEngine on 

############################################ 
## you can put here your magento root folder 
## path relative to web root 

    #RewriteBase /magento/ 

############################################ 
## workaround for HTTP authorization 
## in CGI environment 

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

############################################ 
## always send 404 on missing files in these folders 

    RewriteCond %{REQUEST_URI} !^/(media|skin|js)/ 

############################################ 
## never rewrite for existing files, directories and links 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-l 

############################################ 
## rewrite everything else to index.php 
    RewriteCond %{SERVER_PORT} !^8080$ 
    RewriteRule .* http://6x.2x.6x.1x:8080/index.php [L] 

     </IfModule> 

는 다른 포트에서 젠토 사이트를 운영 할 수있는 권리 솔루션은 다시 작성-모드인가? 그렇다면 현재 재 작성 규칙에서 내 실수는 어디에 있습니까?

, 감사합니다

Margots (내 가게를 죽이고 싶지 않아 becaus) 나는 그것을 시도하지 않은,하지만 난 그냥 젠토 관리자의 포트를 변경할 수 있다고 생각

답변

6

내가 살아 가게가 하나 개의 포트 80에서 서버와 dev에 사이트에서 실행되는 젠토 사이트를 관리 포트에 다른 서버에서 실행되는 3000라이브에서 사이트를 복사 할 때 가지고, 나는 core_config_data 테이블에 두 행을 변경하기 만하면 모든 dev에하기 :

  • 경로 = "웹/보안 해제/BASE_URL"
  • 경로 = "웹/보안/BASE_URL을 "

URL 끝에 포트 번호를 추가해야합니다.

(config_id, 범위,의 scope_id, 경로, 값)

(기본, 0, 웹/비보안/BASE_URL, , http://www.dev-server.com:3000/)

: 내 경우에는 두 행은 다음과 같이 내가하지 USI 나는 그래서 내가 내 dev에 서버에 인증서가없는

(기본, 0, 웹/보안/BASE_URL, , http://www.dev-server.com:3000/)

주 https를 안전한 base_url로 사용하십시오. https를 사용하려면이 설정을 https로 변경해야하며 마지막에 사용자 정의 포트를 생략해야합니다.

표준 .htaccess 파일의 수정은 필요하지 않으므로 피해야합니다.

편집

당신은 당신이 데이터베이스 사용 젠토 수정합니다 PHP 파일 생성 시도 할 수 DB에 액세스 할 수없는 경우 :

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

require_once ("app/Mage.php"); 
Mage::app('default'); 

$db = Mage::getSingleton('core/resource')->getConnection('core_write'); 

$db->query("UPDATE `core_config_data` SET `value` = 'http://dev-server.com:3000/' WHERE `path` = 'web/secure/base_url';"); 

$db->query("UPDATE `core_config_data` SET `value` = 'http://dev-server.com:3000/' WHERE `path` = 'web/unsecure/base_url';"); 
?> 

당신은이 파일을 넣어야을 루트 마젠타 폴더 또는 Mage.php 경로를 다른 위치에두면 경로가 변경됩니다.

+0

Silvo 감사합니다. 솔루션으로 보입니다.하지만이 시점에서 DB 액세스 권한이 없습니다. 일단 내가 어떻게 작동하는지 알려 드리겠습니다. – latvian

+0

@latvian : PHP 파일로 데이터베이스를 변경하는 방법을 추가했습니다. 아마도 도움이 될 것입니다. – silvo

+0

Silvo 감사합니다. 그것은 트릭을했다. 당신은 최고입니다! :) – latvian

4

.

시스템/구성/웹/기본 URL에 있습니다. 그냥 URL에 포트를 추가하려고합니다. 그게 효과가 있니?

Magento가 mod_rewrite를 사용하여 HTML 출력에 쓰는 URL을 다시 쓸 수 없습니다. 잘못된 URL에 대한 요청 (: 8080 포트 제외)은 서버에 도달하지 않습니다.

업데이트 : HTML 출력의 소스에서

봐 (즉 당신의 WebBrowser를하고 Ctrl-U 또는 무엇 이건 당신의 가게로 이동). 다음과 같은 태그에 포트를 포함하여 올바른 URL이 있습니까?

<script type="text/javascript" src="http://yourstore.com:8080/js/prototype/prototype.js"></script> 
+0

pableu을 재생 해 주셔서 감사합니다. 웹 사이트가 프론트 엔드 또는 백엔드가 아니기 때문에 관리자에게 접근 할 수 없습니다. 시스템/구성/웹/기본 URL에 어떻게 액세스합니까? 링크가 포트를 포함하고 있지 않으므로 문제입니다. Magent가 js, css 파일 등을 포함 할 때 사용자가 기본 URL에 규칙을 다시 작성하지 않는다고 말하는 것입니까? 도움을 주셔서 다시 감사합니다. – latvian

+0

아니요, Magento는 다시 쓰기 규칙에 따라 URL을 다시 쓰지 않습니다. .htaccess 파일을 보지 않습니다. * webserver *는 들어오는 * 요청을 처리하기 위해 .htaccess를 사용합니다. 다시 쓰기 규칙은 서버 쪽에서 URL을 만드는 데 사용되지 않습니다. 어쨌든 관리자에게 접근 할 수 없다면, Silvo가 해답을 설명 할 때 MySQL의 URL을 변경해야합니다. – pableu

0

이 누락 :

NameVirtualHost 6x.2x.6x.1x:8080 

사이트가 작동하기 때문에 아마 당신은 그냥 여기 복사하지 않았다?

Magento가 잘못된 사이트의 사진을로드하는 경우 Magento의 .htaccess 파일에서 수행 할 수있는 작업이 없습니다. 사진 요청은 절대 수행되지 않습니다. 그들은 포트 80에서 실행중인 다른 웹 서버로 이동합니다.

Magento가 프로토콜 및 호스트 (굉장히 무의미한 대역폭 낭비 IMHO)가 포함 된 절대 링크를 작성하는 경우에만이 문제가 발생할 수 있습니다. 내 조언은 응용 프로그램 설정을보고 사이트 기본 URL을 지정할 위치가 있는지 확인하는 것입니다 (응용 프로그램 자체에서 찾지 못하는 것 같기 때문에).

는 (나는 젠토의 데모 사이트에 액세스 시도했지만 가입이 필요합니다.)

+0

Magento는 실제로 모든 것에 대해 절대 URL을 작성합니다. 그것은 다소 무의미하지만, 나는 결코 그것을 끄지 않는 것으로 보았다. 우리가 mod_gzip을 사용하기 때문에 대역폭은별로 중요하지 않습니다 (oder mod_deflate, 기억이 안납니다). 여기 Magento Demo Store가 있습니다 : http://demo.magentocommerce.com/ 보시다시피, 모든 스크립트, CSS, 이미지는 절대 URL로 링크됩니다. – pableu

+0

감사합니다. Alvaro for playback 내 사이트는 로딩 중이지만 js, css, img src = loaded는 없습니다. 그리고 링크를 클릭하면 '페이지를 찾을 수 없습니다'라는 메시지가 나타납니다. 나는 NameVirtualHost를 지정하지 않고 시도했지만 동일한 결과를 얻었습니다. 나는 당신의 충고가 응용 프로그램 설정을 보길 좋아합니다. 프런트 엔드 나 백엔드에 액세스 할 수 없기 때문에 데이터베이스에서해야 할 것입니다. 다시 한 번 감사합니다. – latvian

1

표시된 모든 방법은이를 수행하는 데 매우 복잡한 프로세스를 사용하는 것처럼 보입니다.

그것은 매우 간단합니다, 관리> 시스템> 설정> 웹에서 포트>이 당신이 기본 URL, 피부와 미디어 URL을 정의 할 수 있습니다

URL을

를 포함하도록 URL을 변경합니다.

관련 문제