Установите и настройте mod_rewrite для Apache 2 в Mac OS X для Zend Framework 2
Я начал работу с zend framework 2, и у них есть предварительное условие установки и настройки mod_rewrite для apache. Apache 2.2.22 был предварительно установлен на Mac OS X 10.8.2. Есть ли простой способ установить и настроить mod_rewrite для apache?
Единственная помощь, с которой я столкнулся, предлагает перекомпилировать apache. Это единственный способ?
Ответы
Ответ 1
Чтобы проверить, что mod_rewrite и PHP включены, посмотрите /etc/apache 2/httpd.conf и убедитесь, что эти строки:
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php5_module libexec/apache2/libphp5.so
раскоментированы.
Также убедитесь, что AllowOverride
установлен в All
в разделе <Directory "/Library/WebServer/Documents">
.
После внесения этих изменений перезапустите Apache с помощью: sudo apachectl restart
Если вы поместите свой проект в папку /Library/WebServer/Documents
, тогда он должен работать.
Ответ 2
Если вы обслуживаете свой сайт с ~/Sites
, трюк для меня был изменен моим файлом /private/etc/apache2/users/USERNAME.conf
. Первоначально контент был:
<Directory "/Users/USERNAME/Sites/">
Options Indexes MultiViews FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Изменение AllowOverride
на all
, а затем перезапуск сервера быстрым sudo apachectl restart
позволил мне начать использовать mod_rewrite в файлах .htaccess
, живущих под ~/Sites
.
Ответ 3
В дополнение к ответу Роба Аллена оба номера строк расположены вокруг 168 и 169 (чтобы сэкономить некоторое время на прокрутке более 500 строк текста). Кроме того, чтобы объяснить, что делает каждая строка точно:
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
Это переопределяет настройки по умолчанию для любых файлов .htaccess, используемых в корневом каталоге документа
LoadModule php5_module libexec/apache2/libphp5.so
Это позволяет переписывать URL для постоянных ссылок
Источник: ссылка
Ответ 4
Добавьте это в http-vhosts.conf файл
<Directory "/Library/WebServer/Documents">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Не забудьте перезагрузить apache с помощью этой команды
sudo apachectl restart
Удачи.
Ответ 5
yosemite os x должен выглядеть следующим образом:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/Users/enzo/www/drupal8"
ServerName drupal8
#ServerAlias www.dummy-host.example.com
<Directory /Users/enzo/www/drupal8>
Require all granted
Options Includes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog "/private/var/log/apache2/drupal8-error.log"
CustomLog "/private/var/log/apache2/drupal8-access.log" common
</VirtualHost>
получил от этот пост в блоге
Ответ 6
Мой выбор
<VirtualHost *:80>
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ServerAdmin [email protected]
DocumentRoot "/Users/r00we/sites/buytocoins.ru"
ServerName site.ru
ServerAlias www.site.ru
ErrorLog "/private/var/log/apache2/myfaketestsite.com-error_log"
CustomLog "/private/var/log/apache2/myfaketestsite.com-access_log" common
</VirtualHost>
Ответ 7
Ответ Роба Аллена звучит правдоподобно, но я никогда не использовал установку Apache по умолчанию на моем Mac, поэтому я не могу проверить. Я бы рекомендовал MAMP или Zend Server CE.
Мне потребовалось немного времени, чтобы настроить Zend Server CE на ваш Mac, но это была версия 4, и это было ошибкой, и в любом случае это стоило того. И наоборот, версия 5.6 ZSCE выглядит намного лучше!
Некоторые примечания к Zend Server CE для Mac OS X
Если вы перейдете с MAMP, это будет очень быстрая установка, кроме настройка виртуальных хостов.
Обратите внимание, что оба они поставляются с уже установленным mod_rewrite.