正在获取ERR_CONNECTION_REFUSED

时间:2019-02-21 20:01:44

标签: php macos terminal

我已经尽一切努力让我的本地主机为我的php服务器运行。什么都没有。我已经看到Apache正在运行,并且正在正确的端口运行。

我真的很想在这里提供帮助!我会提供尽可能多的信息。关键是我可以在某个时候使用它,然后我升级到MOJAVE,然后一切都崩溃了。

我的问题是当我想在以下位置打开index.php时 http://localhost/index.php我得到了

  

ERR_CONNECTION_REFUSED

我在我的Apache日志文件中找到了它:

  

AH00526:/private/etc/apache2/httpd.conf的第245行的语法错误:   DocumentRoot'/ Users / pontus / Sites'不是目录,或者不是   可读

更多信息

#Listen 12.34.56.78:80
<IfDefine SERVER_APP_HAS_DEFAULT_PORTS>
    Listen 8080
</IfDefine>

#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 http2_module libexec/apache2/mod_http2.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 php7_module libexec/apache2/libphp7.so
#LoadModule perl_module libexec/apache2/mod_perl.so
LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so

<Directory />
    AllowOverride none
    Require all denied
</Directory>

DocumentRoot "/Users/pontus/Sites"
<Directory "/Users/pontus/Sites">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options FollowSymLinks Multiviews
    MultiviewsMatch Any

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #

2 个答案:

答案 0 :(得分:0)

您说您使用的是Apache,兄弟,如果您听不到我的意思,那么您真的需要停下来学习如何首先配置apache。一个典型的apache conf看起来像这样:

<VirtualHost *:80>
ServerName domain.tld
ServerAlias www.domain.tld

DocumentRoot /var/www/project/public
<Directory /var/www/project/public>
    AllowOverride All
    Order Allow,Deny
    Allow from All
</Directory>

# uncomment the following lines if you install assets as symlinks
# or run into problems when compiling LESS/Sass/CoffeeScript assets
# <Directory /var/www/project>
#     Options FollowSymlinks
# </Directory>

ErrorLog /var/log/apache2/project_error.log
CustomLog /var/log/apache2/project_access.log combined

答案 1 :(得分:0)

首先,潜在的端口问题。

您似乎需要将其添加到侦听部分:

 <IfDefine !SERVER_APP_HAS_DEFAULT_PORTS>
     Listen 80
    </IfDefine>

如果Server.app正在运行,则粘贴的内容将显示备用端口。

然后在终端中重新启动Apache:

sudo / usr / sbin / apachectl重新启动

第二,目录问题:

如果您使用的是Mojave随附的Apache服务器,请使用Finder Go->转到文件夹或终端中的ls -l查看默认的Web服务器目录是否存在:

/库/ WebServer /文档

如果是,请将目录更改为/etc/apache2/http.conf中的默认位置:

DocumentRoot "/Library/WebServer/Documents"   
<Directory "/Library/WebServer/Documents">

然后在终端中重新启动Apache:

sudo / usr / sbin / apachectl重新启动

现在,在浏览器中转到localhost,如果一切正常,它会说“有效!” (假设原始index.html存在)。如果发生这种情况,请将您的php脚本移至/ Library / WebServer / Documements并确保权限正确。为此,您需要熟悉'ls -l','chmod','chown'和'chgrp'。