search

Home  >  Q&A  >  body text

MAC, 404 appears when configuring the system’s built-in apache virtual host

As the title states, the following are the main codes of my various configuration files. Please help me check them!
The following are some codes of httpd.conf:

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path.  If you point
# ServerRoot at a non-local disk, be sure to specify a local disk on the
# Mutex directive, if file-based mutexes are used.  If you wish to share the
# same ServerRoot for multiple httpd daemons, you will need to change at
# least PidFile.
#
ServerRoot "/usr"
...
#
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other 
# <Directory> blocks below.
#
<Directory />
    Options  Indexes  FollowSymLinks
    AllowOverride None
    Allow from all 
</Directory>
...
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/Users/bjhl/myServer"
<Directory "/Users/bjhl/myServer">
    #
    # 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.
    #
    Require all granted

</Directory>
...

The following is httpd-vhosts.conf:

<VirtualHost *:80>
    ServerAdmin www.YYServer.com
    DocumentRoot "Users/bjhl/myServer"
    ServerName www.YYServer.com
    ServerAlias YYServer
    ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
    CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common
    <Directory "/Users/bjhl/myServer">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

Finally hosts:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1    localhost
127.0.0.1    www.YYServer.com
255.255.255.255    broadcasthost
::1             localhost 
phpcn_u1582phpcn_u15822754 days ago782

reply all(1)I'll reply

  • 習慣沉默

    習慣沉默2017-05-16 17:00:00

    It’s sorted, but I don’t know why it didn’t work once the virtual host was introduced. In the end, I didn’t configure the virtual host. In fact, the solution is very simple. The modified part is pasted as follows:

    #
    # Deny access to the entirety of your server's filesystem. You must
    # explicitly permit access to web content directories in other 
    # <Directory> blocks below.
    #
    <Directory />
        AllowOverride none
        Require all granted
    </Directory>
    ...
    DocumentRoot "/Users/bjhl/myServer"
    <Directory "/Users/bjhl/myServer">
        #
        # 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 Indexes 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.
        #
        Require all granted
    </Directory>

    In addition, we need to

    LoadModule php5_module libexec/apache2/libphp5.so

    Uncomment this line of code and enter it in the terminal

    cd /etc
    sudo cp php.ini.default php.ini

    That’s it

    reply
    0
  • Cancelreply