Xampp virtual host - access denied - xampp

I'm running a XAMPP server on my laptop and I'm trying to setup a virtual host.
My hosts-file looks like this:
127.0.0.1 localhost
127.0.0.1 localhost.com
127.0.0.1 ehc.local
127.0.0.1 bal.local
The httpd-vhosts.conf file looks like this:
NameVirtualHost *:80
<VirtualHost ehc.local:80>
DocumentRoot "C:/wamp/EHC/src/main/php/www"
ServerName ehc.local
SetEnv APPLICATION_ENV "local"
<Directory "C:/wamp/EHC/src/main/php/www">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog "logs/ehc.dev-error_log"
CustomLog "logs/ehc.dev-access_log" common
</VirtualHost>
When I browse to 'ehc.local', I only get the default 403-error page.
How can I fix this?
Thanks!

This is for osx but must be the same (or similar) in windows:
Because Apache runs as the ‘nobody’ user by default, it may not have adequate permission to browse your [OSX/Win] user directory or some of its subdirectories, in which case you’ll see a 403 ‘access forbidden’ error when you try and view your development site. Similarly, you may find that although you can view your dev site, PHP throws errors when you attempt to write files or make directories on the filesystem.
To fix this you can configure Apache to run as your [OSX/Win] user. Open httpd.conf and look for the following lines:
# 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 nobody
Group nogroup
Change User to your [OSX/Win] username, and save the file:
User yourusername
Restart Apache and you should now be able to navigate your site without any issues, including manipulating files and folders using PHP.
Source
I Hope it will be helpful, Greetings!

Changing user didn't work.
For me it was this answer that did the trick:
Adding VirtualHost fails: Access Forbidden Error 403 (XAMPP) (Windows 7)
Just add Require all granted to your <Directory> setup and it should work as expected.

you should try this:
-> go to XAMPP folder,
-> open apache-conf-extra folder
-> open httpd-xampp.conf with the text-editor of your choice
Scroll all the way down until you find Deny from all and change that too Allow from all

Related

VirtualBox Shared Folder Not Accessible By Apache2

I know there are a lot of posts on this issue but none of them address the issue I'm having. I am trying to set up a virtual machine following a tutorial on Lynda.com.
Host is a Surface Pro 2 running Windows 10, guest is Virtual Box 5.0.4 with Ubuntu 14.04.3 LTS. People have had a lot of issues with VirtualBox on Windows 10 but mine installed just fine, I have made it all the way to installing Apache, MySQL etc and I'm able to access the Apache2 server status page on my local browser. I don't seem to be having any port issues and I've followed the tutorial's instructions which were step by step.
The issue I'm having is that I can't access the shared folder. I'm ready to configure PHP and I can't access a file placed in the shared folder, even though I've followed all the directions exactly. The shared folder shows up in the VM manager console with the correct path, but when I place a file in the shared folder and try to hit it through the browser on the host machine I get a 404 error. I've gone over the steps to configure the apache server several times, and it looks like I have everything correct:
**blakers**#sandbox:~$ cd /media/**sf_vbsandbox**
blakers#sandbox:/media/sf_vbsandbox$ id
uid=1000(blakers) gid=1000(blakers) groups=1000(blakers),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin), 109(sambashare),**999(vboxsf)**
blakers#sandbox:/media/sf_vbsandbox$ **getent group vboxsf
vboxsf:x:999:blakers,www-data**
This is from sites-available/vboxsf.conf:
<VirtualHost *:80 *:8282>
ServerName sandbox
ServerAlias *.dev
LogLevel info
ErrorLog ${APACHE_LOG_DIR}/dev-error.log
CustomLog ${APACHE_LOG_DIR}/dev-access.log combined
RewriteEngine On
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /media/>
Order allow,deny
Allow from all
Require all granted
<Location /server-status>
SetHandler server-status
Order allow,deny
Allow from all
Require all granted
</Location>
UseCanonicalName Off
VirtualDocumentRoot /media/sf_%1
</VirtualHost>
Any help would be awesome!!
hi the problem is in this line :
VirtualDocumentRoot /media/sf_%1 , change this folder to be named like the folder that you are sharing. if its called "vbsandbox" then sf_vbsandbox.
you can confirm by:
ls -la /media/
then the folder name will be there.
you will have to restart apache at the end
sudo service apache2 restart

Mac apache localhost giving 403 Forbidden

Im trying to set up my local environment on my new mac OSX 10.9. I know it has apache already installed, so i've been using that. No matter how I set up my httpd-vhosts.conf/hosts/httpd.conf files, I continuously get a 403 forbidden error when visiting localhost OR "test.com" on my browser. The error / files / other information is listed below.
This is the error I'm getting when visiting either web page
Forbidden
You don't have permission to access / on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
My /private/etc/hosts file
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
127.0.0.1 test.com
127.0.0.1 www.test.com
My /private/etc/apache2/httpd.conf file
This file is in its original form besides the following changes:
Uncommented Include /private/etc/apache2/extra/httpd-vhosts.conf
My /private/etc/apache2/extra/httpd-vhosts file
<VirtualHost *:80>
ServerName localhost
DocumentRoot /Library/WebServer/Documents/
</VirtualHost>
<VirtualHost *:80>
ServerName test.com
ServerAlias www.test.com
DocumentRoot "/Users/[my_name]/Sites/test"
<Directory "/Users/[my_name]/Sites/test">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Other notes
I've created a config file my user account in /private/etc/apache/users/
I've given that file read and write permissions to "everyone"
I've restarted apache after every save to any config file
I've reset the cache on my browser every time I make a change to these files
I have an index.html file set up in my /Users/[my_name]/Sites/test/ folder
When using the command sudo apachectl -t
Warning: DocumentRoot [/usr/\xe2\x80\x9c/Users/joshwoelfel/Sites/test\xe2\x80\x9d] does not exist
httpd: Could not reliably determine the server's fully qualified domain name, using Joshs-MacBook-Air.local for ServerName
Syntax OK
I don't know what to try at this point. I've spent several hours looking at tutorials and other questions people have posted. It looks like my files and permissions are correct!
I just resolved this issue. Try adding 'Require all granted' instead of 'Allow from all'.
<VirtualHost *:80>
ServerName test.com
ServerAlias www.test.com
DocumentRoot "/Users/[my_name]/Sites/test"
<Directory "/Users/[my_name]/Sites/test">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
when you set DocuemntRoot "/Users/xxx/xxx" on mac os, your must ensure your httpd User && Group have permission to read the directory.By default, /Users/xxx/xxx owner is root and group is admin, so you don't have the permission. If your directory group is wheel it maybe work.
Verify every directory in the path to your DocumentRoot, not just the DocumentRoot itself, is searchable (+x permissions) for Apache. Upgrading my Mac OS reset my home directory to 700 permissions. Changing this to 755 fixed the issue for me.
After the last upgrade to MacOS HighSierra 10.13.4 I had the same message. I've tried different solutions posted around but the what really tipped me was an article mentioning that when you get this message it's usually just a matter of permissions. So in the end I just needed to make sure that the group and the owner of both the document root, that I don't keep under my profile path, and the children directory are owned by the same user and group specified in httpd.conf, are set to my group and username. The default values in httpd.conf are: _www and wheel respectively. If you're unsure about your user name use
whoami
on a terminal window.
If you're interested in keeping your files under your profile directory this guide may help you.

OS X 10.9 Mavericks - Localhost Setup with VHosts

I have just been trying to setup a local apache server on osx. Everything was going well until I enabled vhosts.
When I navigate to a site setup in vhosts (local.dev) all I get is a 403 forbidden error saying you do not have permission to access / on this server.
The route of the site in question is '/www/local/public/'. The folder path exists and running apachectl -S and the syntax of the vhosts file was correct.
I have looked at the permissions of the folder and have even tried setting everyone to read and write, but no luck. I have set my permissions on the folder to read/write as well as permissions for the _www group.
If you have any ideas on where I am going wrong that would be much appreciated!
I have looked for a few answers on here but not been able to find anything that has worked for me.
Looking at the default document root for apache, the only permission I have missing on the /www/ folder is for an account called 'system'. I am unable to add this system account to the permissions of the folder as it does not appear in the get info option on the folder.
Thanks,
Joe
As with all of my questions it seems, I have found an answer!
I managed to get everything working smoothly by adding the following to my /private/etc/apache2/extra/httpd-vhosts.conf file inside of the <VirtualHost *:80> that was setup for local.dev
<Directory "/www/local/public">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
So the overall vhosts config for local.dev would look like the following:
<VirtualHost *:80>
DocumentRoot "/www/local/public"
ServerName local.dev
<Directory "/www/local/public">
... Above code here ...
</Directory>
</VirtualHost>
I added this, then restarted apache, and everything worked smoothly.

vagrant laravel vhost set up

So i have a public network VM set up with Vagrant and PuPHPet to get an apache web server up and running. I'm using Laravel as my framework of choice. I can access my site in my browser by visiting the following:
http://192.168.1.14/public/index.php/
Using PuPHPet i configured my vhost to use "phptest.dev" as the Server Name.
I'm a little stuck on how i should set a vhost to prettify my url. I'm not sure where the "phptest.dev" server name comes into play. I can't ping phptest.dev and get anything back.
What is the proper way to set this up? I'd like to visit "phptest.dev" in my browser to see my site. I think i need to add an .htaccess file to route all requests through the 'public/index.php` file so i can get that out of the url but i'm not sure.
Don't know PuPHPet but I can answer in a generic way.
You can use /etc/hosts file to do name resolution, as long as you haven't changed /etc/nsswitch.conf.
For example in /etc/hosts, add
192.168.1.14 phptest.dev
You should be able to ping the hostname from within the VM.
Suppose you are using Debian/Ubuntu, the sites configuration file is in /etc/apache2/sites-available/phptest.dev.conf
NOTE: don't forget to create a symbolic link in sites-enabled
<VirtualHost *:80>
ServerAdmin EMAIL
DocumentRoot /path/to/php
ServerName phptest.dev
ServerAlias www.phptest.dev
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /path/to/php>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/phptest.dev-error_log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/phptest.dev-access_log combined
</VirtualHost>
Do a service apache2 reload or restart and see if you can access by using phptest.dev
I can't respond directly to Terry Wang, but he's mostly right.
Ignore everything past his 4th line, though, because PuPHPet takes care of setting up the vhost in your VM for you.
You simply need to tell your local machine (your Mac or your Windows or maybe your Linux machine) that the domain phptest.dev is located at ip address 192.168.1.14.
That's why you need to edit your hosts file.

XAMPP (Mac) Virtual host showing 403

I keep getting Access Forbidden Error 403 when I try running my installation of XAMPP on my MAC
I am running the project outside of /Applications/XAMPP/htdocs. It's in my /Users/my_user_name/Projects/ directory.
Every time I try and go to my virtualhost I get a 403 error: Access forbidden.
I have edited my httpd-vhosts.conf file and I have allowed Virtual hosts in httpd.conf.
I have also set the User and Group to User my_user_name and Group Admin in httpd.conf
I even tried chmoding all my files and directory 777 but I still get Access forbidden.
I have also change Deny to Allow in the httpd-xampp.conf file in the new security settings.
The erro_log provided by XAMPP doesn't mention the 403 error I do see it in my access log as 127.0.0.1 - - [21/Aug/2013:14:45:20 -0400] "GET / HTTP/1.1" 403 1034
I turned on errors and I am seeing this [authz_core:error] [pid 52813] [client 127.0.0.1:57473] AH01630: client denied by server configuration:
Not sure what else to check or try. Please help lol.
Just to have the answer right here:
You can permit access by adding Require all granted to each VirtualHost in your httpd-vhosts.conf:
# VirtualHost for my.site.com
<VirtualHost *:80>
ServerAdmin webmaster#site.com
DocumentRoot "/Users/me/www/my.site.com/"
ServerName my.site.com
<Directory "/Users/me/www/my.site.com">
ServerSignature Off
Options Indexes FollowSymLinks IncludesNoExec
AllowOverride All
#Order allow,deny <- You can remove this
#Allow from all <- and that
# Insert the following:
Require all granted
</Directory>
</VirtualHost>
Good luck!
I kept having this 403 issue and could not find an answer UNTIL...
Curly (right and left) quotes where in my vhosts file.
If you see something like "xe2\x80\x9c" in your error log then this is your problem.
I opened the httpd-vhosts.conf file in a reliable editor (I used Dreamweaver) and noticed that the quotations are curly ones (left and right quotes). They need to be straight quotes. The regular text editor on my Mac would auto change any quotes I make to these curly ones and I wasn't noticing it.
Hopefully this answer will help someone.
In my case problem was with user definition in
httpd.conf for Windows:
User daemon
Group daemon
Changed to
User myusername
And it worked
For linux:
User myusername
Group sudo
For OSX:
User myusername
Group admin
also you might have to set permissions on folder
sudo chown -R yourusername /Applications/XAMPP/xamppfiles/htdocs
I found something that actually fixed my issue at the following link. I hope this saves someone hours of pulling out their hair. lol
http://www.apachefriends.org/f/viewtopic.php?p=198815&sid=35790f5d017f27c93c1fd4d260b35128
I got this error because I forgot to set my 'DocumentRoot' url and my 'Directory' url the same.
#dl local
<VirtualHost *:80>
ServerName dl.local
DocumentRoot "/Users/myuser/dl_live" <<< ----- This URL has to match
<Directory "/Users/myuser/dl_live"> <<< ----- this URL
Options Indexes FollowSymLinks IncludesNoExec
AllowOverride All
Require all granted
</Directory>
ErrorLog "logs/dl.local_error_log"
</VirtualHost>
If you do this you may see an error like this in your error log file:
[Tue Feb 03 13:50:26.189944 2015] [authz_core:error] [pid 25254] [client 127.0.0.1:54841] AH01630: client denied by server configuration: /Users/myUsername/path/to_local/virtual_host/
I solved that problem by removing the standard virtual host in httpd-vhosts.conf
And leaving only the virtual host configuration that you want.

Resources