gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 03:36:42 27 4
gpt4 key购买 nike

我已在端口 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>

当我访问网站 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>

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

谢谢,

玛戈特

最佳答案

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

  • 路径=“web/unsecure/base_url”
  • 路径=“web/secure/base_url”

您需要在网址末尾添加端口号,仅此而已。就我而言,这两行看起来像这样:

(config_id, scope, scope_id, path, value)

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

(default, 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';");
?>

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

关于apache - 在默认 80 以外的其他端口上运行 magento,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3201187/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com