phpMyAdmin issue file not found - mysql

Getting this error "The requested URL /phpMyAdmin/db_structure.php was not found on this server." when clicks on the any of the database from the left bar.
I am using phpMyAdmin from MAMP pro. I tried reinstalling whole MAMP pro but still facing the same problem.
Any Help would be appreciated.

Check that your Apache config (httpd.conf) looks like something like that :
Alias /phpMyAdmin "[Your path to phpmyadmin]"
<Directory "[Your path to phpmyadmin]">
AllowOverride All
Options FollowSymlinks
Order allow,deny
Allow from all
</Directory>
Note that you may want to be more restrictive about the allow/deny config.

I solved this problem by reinstalling MAMP pro.

Related

How to solve XAMPP PHPMyAdmin 403 Forbidden Error

I am using Apache/2.4.41 (Win64) OpenSSL/1.0.2s PHP/7.1.32 my phpmyadmin is suddenly not accessible its shows following error:
Access forbidden! You don't have permission to access the requested
directory. There is either no index document or the directory is
read-protected.
If you think this is a server error, please contact the webmaster.
I had tried everything but still not able to get it right
I had some error like this once, I just edit the httpd-xampp.conf from Require local to Require all granted in the LocationMatch tag. Or configure the http-vhosts.conf Directory tag to
<Directory>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride none
Require all granted
</Directory>
I hope it helps you!
Go to below file
C:\xampp\apache\conf\extra\httpd-xampp.conf
Then go to Directory tag as below:
<Directory "C:/xampp/phpMyAdmin">
and then in the Directory tag change as below:
From
Require local
To
Require all granted
Restart the Xampp
That's it!

Reading magento 1.9x htaccess file

I've downloaded and installed Magento 1.9.x together with sample data on my Mac.
I've added an entry to my hosts file as follows:
127.0.0.1 local.magento.test
And in httpd-vhosts.conf I have the path to the web root set:
DocumentRoot "/Library/WebServer/Documents/vhosts/magento.test/httpdocs"
ServerName local.magento.test
I'm getting a 403 saying
Server unable to read htaccess file, denying access to be safe
If I look in the apache error log it seems that it is trying to read the .htaccess file from the magento.test directory, not httpdocs
Permission denied: ... /Library/WebServer/Documents/vhosts/magento.test/.htaccess
Any ideas or suggestions much appreciated
OK, problem solved. I needed to add the following to my virtual hosts entry:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

Xampp and local Wordpress permalinks issue

I know this question was asked before but it seems that nothing helped.
I have a local Wordpress installation and try to use permalinks.
What I did in my XAMPP was to open the conf file and find
LoadModule rewrite_module modules/mod_rewrite.so
so it was activated and no # before. Then I searched for
AllowOverride All
which was fine too. But none of the permalinks work, I always get an not found error.
Can anyone help?
EDIT: question solved, needed to put the .htaccess in the root folder and restart XAMPP

Apache giving 403 forbidden errors

Ok, so i've previously set up two virtual hosts and they are working cool. they both house simple web projects and work fine with http://project1 and http://project2 in the browser.
Anyway, I've come to add another vhost. I edited the /etc/hosts file with 127.0.0.1 project3 and also updated the httpd-vhosts.conf file by copy and pasting the previous entries for project2 and editing the file path.
I've checked all the file and folder permissions (in fact I copied and pasted from project2) and simply put a "hello world" message in the index.php file.
I get a 403 forbidden permission denied message when accessing http://project3
Why is this, I just can figure out what step I've missed as everything seems to be set up correct.
Check that :
Apache can physically access the file (the user that run apache, probably www-data or apache, can access the file in the filesystem)
Apache can list the content of the folder (read permission)
Apache has a "Allow" directive for that folder. There should be one for /var/www/, you can check default vhost for example.
Additionally, you can look at the error.log file (usually located at /var/log/apache2/error.log) which will describe why you get the 403 error exactly.
Finally, you may want to restart apache, just to be sure all that configuration is applied.
This can be generally done with /etc/init.d/apache2 restart. On some system, the script will be called httpd. Just figure out.
I just fixed this issue after struggling for a few days. Here's what worked for me:
First, check your Apache error_log file and look at the most recent error message.
If it says something like:
access to /mySite denied (filesystem path
'/Users/myusername/Sites/mySite') because search permissions
are missing on a component of the path
then there is a problem with your file permissions. You can fix them by running these commands from the terminal:
$ cd /Users/myusername/Sites/mySite
$ find . -type f -exec chmod 644 {} \;
$ find . -type d -exec chmod 755 {} \;
Then, refresh the URL where your website should be (such as http://localhost/mySite).
If you're still getting a 403 error, and if your Apache error_log still says the same thing, then progressively move up your directory tree, adjusting the directory permissions as you go. You can do this from the terminal by:
$ cd ..
$ chmod 755 mySite
If necessary, continue with:
$ cd ..
$ chmod Sites
and, if necessary,
$ cd ..
$ chmod myusername
DO NOT go up farther than that. You could royally mess up your system.
If you still get the error that says search permissions are missing on a component of the path, I don't know what you should do. However, I encountered a different error (the one below) which I fixed as follows:
If your error_log says something like:
client denied by server configuration:
/Users/myusername/Sites/mySite
then your problem is not with your file permissions, but instead with your Apache configuration.
Notice that in your httpd.conf file, you will see a default configuration like this (Apache 2.4+):
<Directory />
AllowOverride none
Require all denied
</Directory>
or like this (Apache 2.2):
<Directory />
Order deny,allow
Deny from all
</Directory>
DO NOT change this! We will not override these permissions globally, but instead in your httpd-vhosts.conf file.
First, however, make sure that your vhost Include line in httpd.conf is uncommented. It should look like this. (Your exact path may be different.)
# Virtual hosts
Include etc/extra/httpd-vhosts.conf
Now, open the httpd-vhosts.conf file that you just Included. Add an entry for your webpage if you don't already have one. It should look something like this. The DocumentRoot and Directory paths should be identical, and should point to wherever your index.html or index.php file is located. For me, that's within the public subdirectory.
For Apache 2.2:
<VirtualHost *:80>
# ServerAdmin webmaster#dummy-host2.example.com
DocumentRoot "/Users/myusername/Sites/mySite/public"
ServerName mysite
# ErrorLog "logs/dummy-host2.example.com-error_log"
# CustomLog "logs/dummy-host2.example.com-access_log" common
<Directory "/Users/myusername/Sites/mySite/public">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
The lines saying
AllowOverride All
Require all granted
are critical for Apache 2.4+. Without these, you will not be overriding the default Apache settings specified in httpd.conf. Note that if you are using Apache 2.2, these lines should instead say
Order allow,deny
Allow from all
This change has been a major source of confusion for googlers of this problem, such as I, because copy-pasting these Apache 2.2 lines will not work in Apache 2.4+, and the Apache 2.2 lines are still commonly found on older help threads.
Once you have saved your changes, restart Apache. The command for this will depend on your OS and installation, so google that separately if you need help with it.
I hope this helps someone else!
PS: If you are having trouble finding these .conf files, try running the find command, such as:
$ find / -name httpd.conf
restorecon command works as below :
restorecon -v -R /var/www/html/
Notice that another issue that might be causing this is that, the "FollowSymLinks" option of a parent directory might have been mistakenly overwritten by the options of your project's directory. This was the case for me and made me pull my hair until I found out the cause!
Here's an example of such a mistake:
<Directory />
Options FollowSymLinks
AllowOverride all
Require all denied
</Directory>
<Directory /var/www/>
Options Indexes # <--- NOT OK! It's overwriting the above option of the "/" directory.
AllowOverride all
Require all granted
</Directory>
So now if you check the Apache's log message(tail -n 50 -f /var/www/html/{the_error_log_file_of_your_site}) you'll see such an error:
Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the RewriteRule directive
is also forbidden due to its similar ability to circumvent directory restrictions
That's because Indexes in the above rules for /var/www directory is overwriting the FolowSymLinks of the / directory. So now that you know the cause, in order to fix it, you can do many things depending on your need. For instance:
<Directory />
Options FollowSymLinks
AllowOverride all
Require all denied
</Directory>
<Directory /var/www/>
Options FollowSymLinks Indexes # <--- OK.
AllowOverride all
Require all granted
</Directory>
Or even this:
<Directory />
Options FollowSymLinks
AllowOverride all
Require all denied
</Directory>
<Directory /var/www/>
Options -Indexes # <--- OK as well! It will NOT cause an overwrite.
AllowOverride all
Require all granted
</Directory>
The example above will not cause the overwrite issue, because in Apache, if an option is "+" it will overwrite the "+"s only, and if it's a "-", it will overwrite the "-"s... (Don't ask me for a reference on that though, it's just my interpretation of an Apache's error message(checked through journalctl -xe) which says: Either all Options must start with + or -, or no Option may. when an option has a sign, but another one doesn't(E.g., FollowSymLinks -Indexes). So it's my personal conclusion -thus should be taken with a grain of salt- that if I've used -Indexes as the option, that will be considered as a whole distinct set of options by the Apache from the other option in the "/" which doesn't have any signs on it, and so no annoying rewrites will occur in the end, which I could successfully confirm by the above rules in a project directory of my own).
Hope that this will help you pull much less of your hair! :)
it doesn't, however, solve the problem, because on e.g. open SUSE Tumbleweed, custom source build is triggering the same 401 error on default web page, which is configured accordingly with Indexes and
Require all granted
The server may need read permission for your home directory and .htaccess therein
You can try disabling selinux and try once again using the following command
setenforce 0
In my case it was failing as the IP of my source server was not whitelisted in the target server.
For e.g. I was trying to access https://prodcat.ref.test.co.uk from application running on my source server.
On source server find IP by ifconfig
This IP should be whitelisted in the target Server's apache config file. If its not then get it whitelist.
Steps to add a IP for whitelisting (if you control the target server as well)
ssh to the apache server
sudo su -
cd /usr/local/apache/conf/extra (actual directories can be different based on your config)
Find the config file for the target application for e.g. prodcat-443.conf
RewriteCond %{REMOTE_ADDR} <YOUR Server's IP>
for e.g.
RewriteCond %{REMOTE_ADDR} !^192\.68\.2\.98
Hope this helps someone
Add
<Directory "/path/to/webroot">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow, deny
Allow from all
Require all granted
</Directory>
What this does is tell Apache2 to override any previous configs, and allow (200) from all before denying. (403) It also requires all requests to be granted. This code will have to go in every vhost file, but it does work. I have been using this for over a year.
to your config file (e.g. /etc/apache2/sites-enabled/000-default.conf)
Tested LAMP stack Debian 11

Access to folders under localhost/htdocs some work and some do not

I have apache2.2 installed on my Win7 laptop along with php5.3. I can run html and php files with no problems in the htdocs folder and also under a folder called htdocs/myzftest/public/index.php.
I just installed MySQL and it seems to work ok. I then downloaded phpMyAdmin to htdocs/phpMyAdmin and tried to run index.php from there but I get The requested URL /phpMyAdmin/index.php was not found on this server.
Why can I access an index.php under one subfolder but not another?
I saw some posts about .htaccess files but I dont know how/where to use it.
Thanks
Dan
I would like to first suggest that you replace your custom Apache + PHP 5.3 + MySQL installation with a WAMP (www.wampserver.com/en/) which is already integrated and configured.
It also comes with prebuilt phpMyAdmin so you will not need to download or configure that too.
I am assuming that you will be using Zend Framework for your projects seeing zftest, you can follow the steps here Setting Up Zend in Wamp server
My guess is that you have an alias for phpadmin in one of your conf files suach as in httpd.conf.
I for example, have this in httpd-xampp.conf:
Alias /phpmyadmin "C:/Program Files/xampp/phpMyAdmin/"
<Directory "C:/Program Files/xampp/phpMyAdmin">
AllowOverride AuthConfig
</Directory>
This redirects calls to phpMyAdmin to the directory C:/Program Files/xampp/phpMyAdmin instead of C:/Program Files/xampp/htdocs/phpMyAdmin