Forbidden: You don't have permission to access / on this server, WAMP Error

匿名 (未验证) 提交于 2019-12-03 01:10:02

问题:

I have installed wamp on windows 8 and received above error whenever I go to localhost or phpmyadmin. After much searching I found many answers which includes modifying the httpd.conf to Allow from All etc. This link shows such a common answer with further information.

My problem is that many have argued that it gives permission to all users to access phpMyAdmin and it is insecure and vulnerable etc. I want to create perfectly secure WAMP server and is it OK if I do this?

Can someone please provide me with some reference or information?

回答1:

I find the best (and least frustrating) path is to start with Allow from All, then, when you know it will work that way, scale it back to the more secure Allow from 127.0.0.1 or Allow from ::1 (localhost).

As long as your firewall is configured properly, Allow from all shouldn't cause any problems, but it is better to only allow from localhost if you don't need other computers to be able to access your site.

Don't forget to restart Apache whenever you make changes to httpd.conf. They will not take effect until the next start.

Hopefully this is enough to get you started, there is lots of documentation available online.



回答2:

1.

first of all Port 80(or what ever you are using) and 443 must be allow for both TCP and UDP packets. To do this, create 2 inbound rules for TPC and UDP on Windows Firewall for port 80 and 443. (or you can disable your whole firewall for testing but permanent solution if allow inbound rule)

2.

If you are using WAMPServer 3 See bottom of answer

For WAMPServer versions

You need to change the security setting on Apache to allow access from anywhere else, so edit your httpd.conf file.

Change this section from :

#   onlineoffline tag - don't remove      Order Deny,Allow      Deny from all      Allow from 127.0.0.1      Allow from ::1      Allow from localhost 

To :

#   onlineoffline tag - don't remove     Order Allow,Deny       Allow from all 

if "Allow from all" line not work for your then use "Require all granted" then it will work for you.

WAMPServer 3 has a different method

In version 3 and > of WAMPServer there is a Virtual Hosts pre defined for localhost so dont amend the httpd.conf file at all, leave it as you found it.

Using the menus, edit the httpd-vhosts.conf file.

It should look like this :

     ServerName localhost     DocumentRoot D:/wamp/www              Options +Indexes +FollowSymLinks +MultiViews         AllowOverride All         Require local     

Amend it to

     ServerName localhost     DocumentRoot D:/wamp/www              Options +Indexes +FollowSymLinks +MultiViews         AllowOverride All         Require all granted     

Note:if you are running wamp for other than port 80 then VirtualHost will be like VirtualHost *:86.(86 or port whatever you are using) instead of VirtualHost *:80

3. Dont forget to restart All Services of Wamp or Apache after making this change



回答3:

By default wamp sets the following as the default for any directory not explicitly declared:

     AllowOverride none     Require all denied  

For me, if I comment out the line that says Require all denied I started having access to the directory in question. I don't recommend this.

Instead in the directory directive I included Require local as below:

     AllowOverride All     Allow from all     Require local 

NOTE: I was still getting permission denied when I only had Allow from all. Adding Require local helped for me.



回答4:

Adding Allow from All didn't worked for me. Then I tried this and it worked.

OS: Windows 8.1
Wamp : 2.5

I added this in the file C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf

     ServerAdmin localhost@localhost.com     DocumentRoot "c:/wamp/www/"     ServerName localhost     ServerAlias localhost     ErrorLog "logs/localhost-error.log"     CustomLog "logs/localhost-access.log" common 


回答5:

This could be one solution.

public class RegisterActivity extends AppCompatActivity {      private static final String TAG = "RegisterActivity";     private static final String URL_FOR_REGISTRATION = "http://192.168.10.4/android_login_example/register.php";     ProgressDialog progressDialog;      private EditText signupInputName, signupInputEmail, signupInputPassword, signupInputAge;     private Button btnSignUp;     private Button btnLinkLogin;     private RadioGroup genderRadioGroup;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_register);         // Progress dialog         progressDialog = new ProgressDialog(this);         progressDialog.setCancelable(false);          signupInputName = (EditText) findViewById(R.id.signup_input_name);         signupInputEmail = (EditText) findViewById(R.id.signup_input_email);         signupInputPassword = (EditText) findViewById(R.id.signup_input_password);         signupInputAge = (EditText) findViewById(R.id.signup_input_age);          btnSignUp = (Button) findViewById(R.id.btn_signup);         btnLinkLogin = (Button) findViewById(R.id.btn_link_login);          genderRadioGroup = (RadioGroup) findViewById(R.id.gender_radio_group);         btnSignUp.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View view) {                 submitForm();             }         });         btnLinkLogin.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View view) {                  Intent i = new Intent(getApplicationContext(),MainActivity.class);                 startActivity(i);             }         });     }      private void submitForm() {          int selectedId = genderRadioGroup.getCheckedRadioButtonId();         String gender;         if(selectedId == R.id.female_radio_btn)             gender = "Female";         else             gender = "Male";          registerUser(signupInputName.getText().toString(),                 signupInputEmail.getText().toString(),                 signupInputPassword.getText().toString(),                 gender,                 signupInputAge.getText().toString());     }      private void registerUser(final String name,  final String email, final String password,                               final String gender, final String dob) {         // Tag used to cancel the request         String cancel_req_tag = "register";          progressDialog.setMessage("Adding you ...");         showDialog();          StringRequest strReq = new StringRequest(Request.Method.POST,                 URL_FOR_REGISTRATION, new Response.Listener() {              @Override             public void onResponse(String response) {                 Log.d(TAG, "Register Response: " + response.toString());                 hideDialog();                  try {                     JSONObject jObj = new JSONObject(response);                     boolean error = jObj.getBoolean("error");                      if (!error) {                         String user = jObj.getJSONObject("user").getString("name");                         Toast.makeText(getApplicationContext(), "Hi " + user +", You are successfully Added!", Toast.LENGTH_SHORT).show();                          // Launch login activity                         Intent intent = new Intent(                                 RegisterActivity.this,                                 MainActivity.class);                         startActivity(intent);                         finish();                     } else {                            String errorMsg = jObj.getString("error_msg");                         Toast.makeText(getApplicationContext(),                                 errorMsg, Toast.LENGTH_LONG).show();                     }                 } catch (JSONException e) {                     e.printStackTrace();                 }              }         }, new Response.ErrorListener() {              @Override             public void onErrorResponse(VolleyError error) {                 Log.e(TAG, "Registration Error: " + error.getMessage());                 Toast.makeText(getApplicationContext(),                         error.getMessage(), Toast.LENGTH_LONG).show();                 hideDialog();             }         }) {             @Override             protected Map getParams() {                 // Posting params to register url                 Map params = new HashMap();                 params.put("name", name);                 params.put("email", email);                 params.put("password", password);                 params.put("gender", gender);                 params.put("age", dob);                 return params;             }         };         // Adding request to request queue         AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(strReq, cancel_req_tag);     }      private void showDialog() {         if (!progressDialog.isShowing())             progressDialog.show();     }      private void hideDialog() {         if (progressDialog.isShowing())             progressDialog.dismiss();     }     } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!