在默认80以外的其他端口上运行magento

lat*_*ian 2 apache magento

我在端口8080上配置了Apache虚拟主机,指向我的magento网站.

        Listen 8080

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

    ServerAdmin webmaster@localhost
    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>
Run Code Online (Sandbox Code Playgroud)

当我访问网站www.domain.com:8080时,js,css,img和其他东西都没有加载,因为端口没有连接到链接

这是magento .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>
Run Code Online (Sandbox Code Playgroud)

Rewrite-mod是在不同端口上运行magento站点的正确解决方案吗?如果是,我目前的重写规则中的错误在哪里?

谢谢,

Margots

sil*_*lvo 6

我管理一个magento站点,其中一个服务器在端口80上运行一个实时商店,一个开发站点在另一个服务器上运行在端口3000上.当将站点从live复制到dev时,我需要做的是更改core_config_data中的两行桌子,有:

  • 路径= "网/不安全/ BASE_URL"
  • PATH = "网络/安全/ BASE_URL"

您需要在网址末尾添加您的端口号,这就是全部.在我的情况下,这两行看起来像这样:

(config_id,scope,scope_id,path,value)

(默认值,0,web/unsecure/base_url,http://www.dev-server.com: 3000/)

(默认值,0,web/secure/base_url,http://www.dev-server.com: 3000/)

请注意,我的开发服务器上没有证书,所以我没有使用https作为安全base_url.如果您希望使用https,则此设置应更改为https,您应该在结尾处省略自定义端口.

不需要修改标准.htaccess文件,应该避免使用.

编辑

如果您无权访问数据库,可以尝试创建一个php文件,该文件将使用magento修改数据库:

<?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';");
?>
Run Code Online (Sandbox Code Playgroud)

您需要将此文件放在root magento文件夹中,或者如果将其放在其他位置,请将路径更改为Mage.php.