Я только что восстановил наш сайт Magento на другом сервере с apache2 на ubuntu. Домашняя страница открывается нормально, но если я пытаюсь перейти на любую другую страницу, я получаю 404.
Разрешения
Вещи, которые я пробовал
В файлах журнала ничего не отображается, кроме стандартных строк 404 в access.log и error.log.
файл apache2 .conf
<VirtualHost *:80>
ServerAdmin serveradmin@mydomain.com
ServerName mydomain.com
DocumentRoot "/var/www/default/"
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/var/www/default/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
php_admin_flag engine on
php_admin_value open_basedir none
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
.htaccess
DirectoryIndex index.php
<IfModule mod_php5.c>
php_value memory_limit 10G
php_value max_execution_time 1800000
php_flag magic_quotes_gpc off
php_flag session.auto_start off
php_flag suhosin.session.cryptua off
php_flag zend.ze1_compatibility_mode Off
</IfModule>
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
<IfModule mod_deflate.c>
</IfModule>
<IfModule mod_ssl.c>
SSLOptions StdEnvVars
</IfModule>
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]
</IfModule>
AddDefaultCharset Off
<IfModule mod_expires.c>
ExpiresDefault "access plus 1 year"
</IfModule>
Order allow,deny
Allow from all
<Files RELEASE_NOTES.txt>
order allow,deny
deny from all
</Files>
Вывод файла журнала
==> /var/log/apache2/oem1-error.log <==
[Tue Oct 15 12:32:21 2013] [error] [client 192.168.0.4] File does not exist: /var/www/gearhead_oem1/admin
==> /var/log/apache2/oem1-access.log <==
192.168.0.4 - - [15/Oct/2013:12:32:21 -0600] "GET /admin HTTP/1.1" 404 507 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36"
Php требует разных разрешений. Magento рекомендует следующее:
find . -type d -exec chmod 775 "{}" \;
find . -type f -exec chmod 664 "{}" \;
Похоже, проблема с перезаписью. В Ubuntu:
Бегать:
a2enmod rewrite
apt-get install php5-curl
а потом:
service apache2 restart
mod_rewrite
и php-curl
теперь будет включен!