问题:自从我升级到Sierra后,我无法连接到localhost。我之前使用的是MAMP,但是一旦我升级它就停止了工作,当我无法让mysql再次工作时我决定使用apache / php / mysql设置默认的localhost,但它已经差不多一周了现在,我似乎无法正确配置!完全失去了整个事情,在这一点上,任何帮助都将不仅仅是非常感激。
到目前为止我做了什么..
- 删除了MAMP的所有实例,包括从.bash_profile中删除它。我的PATH现在看起来像这样,
export PATH="/usr/local/mysql/bin:$PATH"
-I安装了mysql,可以通过系统首选项面板打开和关闭它。 - 我升级到php7。所以我现在安装了php5和php7。 - 我已经设置了一个username.conf(当然我换了用户名作为我的实际用户名)
<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
- 我设置了一个虚拟主机,
<VirtualHost *:80>
DocumentRoot "/Users/username/Sites"
ServerName localhost
</VirtualHost>
-I在httpd.conf中取消注释,
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule include_module libexec/apache2/mod_include.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule cgi_module libexec/apache2/mod_cgi.so
LoadModule php5_module libexec/apache2/libphp5.so
Include /private/etc/apache2/extra/httpd-userdir.conf
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
- 在httpd-userdir.conf中取消注释,
Include /private/etc/apache2/users/*.conf
在vhost更改之前,我可以访问&#34; It Worked!&#34;在浏览器中,但现在它说
localhost拒绝连接。
我还尝试将我的一个项目移动到Documents文件夹,然后从默认的&#34; localhost&#34;没有使用username.conf,但即使&#34;它工作,我也无法打开项目!&#34;页面正在加载,非常奇怪。
httpd.conf中的DocumentRoot是/ Library / WebServer / Documents
我不想将其更改为/ Users / username / Sites(如前所述),因为我想使用username.conf来访问目录,例如:当我键入&#34;本地主机&#34;在浏览器中它应该说&#34;它工作!&#34;当我输入&#34; localhost / ~username&#34;它应该说&#34;欢迎来自您的用户目录&#34;。我知道这一定很简单,我可能只需做一个小改动,有没有人知道我做错了什么?
我在终端上得到了什么:
httpd -v
Server version: Apache/2.4.23 (Unix)
Server built: Aug 8 2016 16:31:34
apachectl -S
VirtualHost configuration:
*:80 is a NameVirtualHost
default server localhost (/private/etc/apache2/extra/httpd-vhosts.conf:24)
port 80 namevhost localhost (/private/etc/apache2/extra/httpd-vhosts.conf:24)
port 80 namevhost dummy-host.example.com (/private/etc/apache2/extra/httpd-vhosts.conf:29)
alias www.dummy-host.example.com
port 80 namevhost dummy-host2.example.com (/private/etc/apache2/extra/httpd-vhosts.conf:38)
ServerRoot: "/usr"
Main DocumentRoot: "/Library/WebServer/Documents"
Main ErrorLog: "/private/var/log/apache2/error_log"
Mutex mpm-accept: using_defaults
Mutex proxy-balancer-shm: using_defaults
Mutex rewrite-map: using_defaults
Mutex proxy: using_defaults
Mutex default: dir="/private/var/run/" mechanism=default
PidFile: "/private/var/run/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="_www" id=70 not_used
Group: name="_www" id=70 not_used
哪个php
/usr/bin/php
哪个mysql
/usr/local/mysql/bin/mysql
php -v
PHP 5.6.25 (cli) (built: Sep 6 2016 16:37:16)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
echo $ PATH
/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
..因为你可以看到本地主机没有被apache接收。
我已经完成了许多后期解决方案,但似乎没有什么能让事情变得有效。我还将所有内容重置为默认设置,然后再次进行更改以查看是否遗漏了任何内容,但没有运气。
我不想在&#34;主机&#34;中更改任何内容。文件以防我搞砸了一切,这是我错过的一步吗?
(似乎我只能在这里发布两个链接,但显然我已经完成了比这更多的问题/教程!)这两个似乎应该能够解决问题。 Apache localhost/~username/ not working https://coolestguidesontheplanet.com/get-apache-mysql-php-and-phpmyadmin-working-on-macos-sierra/
再次感谢您的时间,我希望有人可以指出我正确的方向。
答案 0 :(得分:1)
如果仍然相关。
如果您只是尝试在没有模拟工具的情况下设置localhost,例如模拟其他服务器等,则无需查看虚拟主机。默认情况下,localhost正在侦听端口80,它几乎可供您使用,您只需指定谁可以访问它,当然,不要忘记apachectl start
使用sudo模式的apache,我觉得很奇怪,因为要让localhost工作,你只需要启动apache就应该说'它有效!&#39;就在你进入浏览器之后。
如果您指定用户目录,请注意您正在使用的apache版本,因此对于Siera,您的username.conf应该如下所示。
<Directory "/Users/username/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Require all granted
</Directory>
再次使用sudo权限执行apachectl restart
。如果问题仍然存在,请运行apachectl configtest
并将内容粘贴到此处。