我试图通过寻找解决方案的时间来避免这篇文章。 但是我不得不问你们。
我希望在我的本地计算机上运行一个网站(使用mod_rewrite的typo3)。
我正在使用Apache / 2.4.18和PHP 7.0。 我也在使用Chrome浏览器。
我是/etc/apache2/httpd.conf,我使用了以下设置
LoadModule authn_file_module libexec/apache2/mod_authn_file.so
#LoadModule authn_dbm_module libexec/apache2/mod_authn_dbm.so
#LoadModule authn_anon_module libexec/apache2/mod_authn_anon.so
#LoadModule authn_dbd_module libexec/apache2/mod_authn_dbd.so
#LoadModule authn_socache_module libexec/apache2/mod_authn_socache.so
LoadModule authn_core_module libexec/apache2/mod_authn_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.so
LoadModule authz_user_module libexec/apache2/mod_authz_user.so
#LoadModule authz_dbm_module libexec/apache2/mod_authz_dbm.so
#LoadModule authz_owner_module libexec/apache2/mod_authz_owner.so
#LoadModule authz_dbd_module libexec/apache2/mod_authz_dbd.so
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
#LoadModule authnz_ldap_module libexec/apache2/mod_authnz_ldap.so
LoadModule access_compat_module libexec/apache2/mod_access_compat.so
LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so
#LoadModule auth_form_module libexec/apache2/mod_auth_form.so
#LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so
#LoadModule allowmethods_module libexec/apache2/mod_allowmethods.so
#LoadModule file_cache_module libexec/apache2/mod_file_cache.so
#LoadModule cache_module libexec/apache2/mod_cache.so
#LoadModule cache_disk_module libexec/apache2/mod_cache_disk.so
#LoadModule cache_socache_module libexec/apache2/mod_cache_socache.so
#LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
#LoadModule socache_dbm_module libexec/apache2/mod_socache_dbm.so
#LoadModule socache_memcache_module libexec/apache2/mod_socache_memcache.so
#LoadModule watchdog_module libexec/apache2/mod_watchdog.so
#LoadModule macro_module libexec/apache2/mod_macro.so
#LoadModule dbd_module libexec/apache2/mod_dbd.so
#LoadModule dumpio_module libexec/apache2/mod_dumpio.so
#LoadModule echo_module libexec/apache2/mod_echo.so
#LoadModule buffer_module libexec/apache2/mod_buffer.so
#LoadModule data_module libexec/apache2/mod_data.so
#LoadModule ratelimit_module libexec/apache2/mod_ratelimit.so
LoadModule reqtimeout_module libexec/apache2/mod_reqtimeout.so
#LoadModule ext_filter_module libexec/apache2/mod_ext_filter.so
#LoadModule request_module libexec/apache2/mod_request.so
#LoadModule include_module libexec/apache2/mod_include.so
LoadModule filter_module libexec/apache2/mod_filter.so
#LoadModule reflector_module libexec/apache2/mod_reflector.so
#LoadModule substitute_module libexec/apache2/mod_substitute.so
#LoadModule sed_module libexec/apache2/mod_sed.so
#LoadModule charset_lite_module libexec/apache2/mod_charset_lite.so
#LoadModule deflate_module libexec/apache2/mod_deflate.so
#LoadModule xml2enc_module libexec/apache2/mod_xml2enc.so
#LoadModule proxy_html_module libexec/apache2/mod_proxy_html.so
LoadModule mime_module libexec/apache2/mod_mime.so
#LoadModule ldap_module libexec/apache2/mod_ldap.so
LoadModule log_config_module libexec/apache2/mod_log_config.so
#LoadModule log_debug_module libexec/apache2/mod_log_debug.so
#LoadModule log_forensic_module libexec/apache2/mod_log_forensic.so
#LoadModule logio_module libexec/apache2/mod_logio.so
LoadModule env_module libexec/apache2/mod_env.so
#LoadModule mime_magic_module libexec/apache2/mod_mime_magic.so
#LoadModule expires_module libexec/apache2/mod_expires.so
LoadModule headers_module libexec/apache2/mod_headers.so
#LoadModule usertrack_module libexec/apache2/mod_usertrack.so
##LoadModule unique_id_module libexec/apache2/mod_unique_id.so
LoadModule setenvif_module libexec/apache2/mod_setenvif.so
LoadModule version_module libexec/apache2/mod_version.so
#LoadModule remoteip_module libexec/apache2/mod_remoteip.so
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so
LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so
LoadModule proxy_fcgi_module libexec/apache2/mod_proxy_fcgi.so
LoadModule proxy_scgi_module libexec/apache2/mod_proxy_scgi.so
#LoadModule proxy_fdpass_module libexec/apache2/mod_proxy_fdpass.so
LoadModule proxy_wstunnel_module libexec/apache2/mod_proxy_wstunnel.so
LoadModule proxy_ajp_module libexec/apache2/mod_proxy_ajp.so
LoadModule proxy_balancer_module libexec/apache2/mod_proxy_balancer.so
LoadModule proxy_express_module libexec/apache2/mod_proxy_express.so
#LoadModule session_module libexec/apache2/mod_session.so
#LoadModule session_cookie_module libexec/apache2/mod_session_cookie.so
#LoadModule session_dbd_module libexec/apache2/mod_session_dbd.so
LoadModule slotmem_shm_module libexec/apache2/mod_slotmem_shm.so
#LoadModule slotmem_plain_module libexec/apache2/mod_slotmem_plain.so
#LoadModule ssl_module libexec/apache2/mod_ssl.so
#LoadModule dialup_module libexec/apache2/mod_dialup.so
LoadModule lbmethod_byrequests_module libexec/apache2/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module libexec/apache2/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module libexec/apache2/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_heartbeat_module libexec/apache2/mod_lbmethod_heartbeat.so
LoadModule unixd_module libexec/apache2/mod_unixd.so
#LoadModule heartbeat_module libexec/apache2/mod_heartbeat.so
#LoadModule heartmonitor_module libexec/apache2/mod_heartmonitor.so
#LoadModule dav_module libexec/apache2/mod_dav.so
LoadModule status_module libexec/apache2/mod_status.so
LoadModule autoindex_module libexec/apache2/mod_autoindex.so
#LoadModule asis_module libexec/apache2/mod_asis.so
#LoadModule info_module libexec/apache2/mod_info.so
#LoadModule cgi_module libexec/apache2/mod_cgi.so
#LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
#LoadModule dav_lock_module libexec/apache2/mod_dav_lock.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
LoadModule negotiation_module libexec/apache2/mod_negotiation.so
LoadModule dir_module libexec/apache2/mod_dir.so
#LoadModule imagemap_module libexec/apache2/mod_imagemap.so
#LoadModule actions_module libexec/apache2/mod_actions.so
#LoadModule speling_module libexec/apache2/mod_speling.so
#LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule alias_module libexec/apache2/mod_alias.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php7_module /usr/local/opt/php@7.0/lib/httpd/modules/libphp7.so
LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so
如您所见,其中一些已停用。但是我想我在这里加载了所需的模块。
然后在我的/etc/apache2/httpd.conf文件中也进行了以下设置:
<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User _www
Group _www
</IfModule>
<Directory />
AllowOverride None
Require all denied
</Directory>
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
Options FollowSymLinks Multiviews Indexes
MultiviewsMatch Any
AllowOverride None
Require all granted
</Directory>
到目前为止我还好。网站正在运行,而Apache正在交付该网站。 PHP 7.0所做的也是工作。
我正在使用我的虚拟主机配置“ /private/etc/apache2/extra/httpd-vhosts.conf”,这是一个工作站点的示例:
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
DocumentRoot "/Library/WebServer/Documents/phpmyadmin"
ServerName phpmyadmin.local
ServerAlias www.phpmyadmin.local
ErrorLog "/private/var/log/apache2/phpmyadmin.local-error_log"
CustomLog "/private/var/log/apache2/phpmyadmin.local-access_log" common
</VirtualHost>
这里很棒,也很好。
现在我已经安装了typo3 CMS。到目前为止,在相同的conf文件中进行此设置非常好:
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
ServerName typo3.local
ServerAdmin webmaster@localhost
ServerAlias www.typo3.local
DocumentRoot "/Library/WebServer/Documents/typo3-local"
ErrorLog "/private/var/log/apache2/typo3-local-error_log"
CustomLog "/private/var/log/apache2/typo3-local-access_log" common
</VirtualHost>
在这里也很好。我的站点typo3 CMS站点正在运行。
现在我的问题从这里开始!
如果我想使用mod rewrite,我会遇到一个问题,原因是apache说“在此服务器上找不到所请求的URL [SRTIPPED_DOMAIN] / hardware / tools /。”
我立即检查了apache是否已加载mod_rewrite并且是:
apachectl -M | grep rewrite
rewrite_module (shared)
好吧,PHP也会通过查看phpinfo()来识别这一点。
如果您正在浏览互联网,那么每个人都在谈论您必须设置其他目录指令,例如此处的“ https://medium.com/kevin-salters-blog/setting-up-wordpress-locally-from-scratch-on-osx-el-capitan-4221d1589edc”。
所以我确实将我的虚拟主机条目扩展到了这个地方:
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
ServerName typo3.local
ServerAdmin webmaster@localhost
ServerAlias www.typo3.local
DocumentRoot "/Library/WebServer/Documents/typo3-local"
<Directory "/Library/WebServer/Documents/typo3-local/">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog "/private/var/log/apache2/typo3-local.local-error_log"
CustomLog "/private/var/log/apache2/typo3-local.local-access_log" common
</VirtualHost>
我检测到“ AllowOverride All”使我产生了效果,在每次请求时,我都会得到一个下载文件(称为“下载”),而不是对该网站进行了解释和运行。
当我输入“ AllowOverride None”时,我的站点再次运行,但是无法重写,并且我又收到了旧错误,即找不到URL:-(
我还检查了var / log / apache中是否有任何错误。但没有发生。
我还经常使用“ sudo apachectl restart”来每次重新启动apache。
我在做什么错了?
我真的很无助,请在这里帮助我。 我已经做了几个小时,肯定有办法。