# Error 403 - Zugriff verweigert bei "Localhost"!



## marcoX (23. Oktober 2003)

Hi,

ich hab mir mal die Packete von der CD installiert (php, mysql, apache).
Wenn ich dann einen Browser öffne (Konqueror, Mozilla), kommt immer
folgende Meldung:*

Zugriff verweigert!

Der Zugriff auf das angeforderte Verzeichnis ist nicht möglich. Entweder ist kein Index-Dokument vorhanden oder das Verzeichnis ist zugriffsgeschützt.

Error 403 *

Stellt sich das ganze bei der installation nicht automatisch ein? 
Was muss ich da machen?

Für eine kleine Hilfe wäre ich sehr dankbar ...

Marco


----------



## Sinac (24. Oktober 2003)

Welche Distribution hast du denn?
Haste vielleicht ne Firewall an?
Hast du den Apache gestartet?
Schau mal in /etc/httpd.conf
oder
/etc/apache/httpd.conf

ob da mit den Ports alles stimmt und so, aber
ich schätze eher der ist nicht an oder deine Firewall
blockt!



> Stellt sich das ganze bei der installation nicht automatisch ein?


Hehe, das ist nicht Windows

Greetz...
Sinac


----------



## JohannesR (24. Oktober 2003)

> _Original geschrieben von Sinac _
> *[...]
> Hehe, das ist nicht Windows
> [...]*



Also ich weiss ja nicht was für eine Hinterwäldler-Distribution du hast, aber wenn ich den Apache per "apt-get install apache-ssl" installiere kann ich sofort per "https://localhost" darauf zugreifen...


----------



## Habenix (24. Oktober 2003)

@ Johannes 



> Also ich weiss ja nicht was für eine Hinterwäldler-Distribution du hast


  ...hat doch damit nix zu tun und eigentlich wollte er ne Lösung für sein Problem haben und nicht wie es bei dir funktioniert.....

@marco

schau mal in der httpd.conf nach in der Zeile DocumentRoot

überprüf ob alle Berechtigungen  stimmen 
Den httpd daemon solltest du als user nobody laufen lassen


Gruß

Habenix


----------



## JohannesR (24. Oktober 2003)

Mitdenken, Habenix, mitdenken! Ich habe mich auf Sinacs Post bezogen, und nicht auf marcoXs. Soll ich damit anfangen, jedes Redhat-Loblied von dir zu kritisieren?

marcoX: Schau dir mal den chmod des htdocs-Verzeichnisses an, evt. hat es zu wenig rechte. Was passiert denn, wenn du dein Index-Dokument direkt aufrufst, also per "http://localhost/index.<deineExtension>"?


----------



## marcoX (24. Oktober 2003)

> _Original geschrieben von Johannes Röttger _
> *
> marcoX: Schau dir mal den chmod des htdocs-Verzeichnisses an, evt. hat es zu wenig rechte. Was passiert denn, wenn du dein Index-Dokument direkt aufrufst, also per "http://localhost/index.<deineExtension>"? *


hmm ... wenn ich versuche das Dokument direkt aufzurufen, werde ich gefragt, ob ich das File speichern oder öffnen möchte!
Und wenn ich die Rechte beim Verz. anschaue, dann sind bei allen, außer den ganz rechten (Spezialattribut), kreuzchen drin.


----------



## JohannesR (24. Oktober 2003)

> _Original geschrieben von marcoX _
> *hmm ... wenn ich versuche das Dokument direkt aufzurufen, werde ich gefragt, ob ich das File speichern oder öffnen möchte!
> Und wenn ich die Rechte beim Verz. anschaue, dann sind bei allen, außer den ganz rechten (Spezialattribut), kreuzchen drin. *



Das erste klingt so, als wenn du eine PHP-Datei öffnen wolltest, aber den interpreter noch nicht installiert/aktiviert hast. Das zweite ist ok, besser wäre aber 755... (chmod 755 <deinHtdocsDirectory>)


----------



## marcoX (24. Oktober 2003)

also index.php kann ich mittlerweile aufrufen. das funktioniert  
nur wenn ich phpMyAdmin aufrufe, kommt die Meldung:
* MySQL meldet: 
#2002 - Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)*

ich habe danach gesucht von "/" aus, aber scheinbar gibt es das File nicht.


----------



## Dario Linsky (25. Oktober 2003)

Bist Du sicher, dass Dein MySQL-Server überhaupt läuft?
Prüf das mal...


----------



## marcoX (25. Oktober 2003)

> _Original geschrieben von Dario Linsky _
> *Bist Du sicher, dass Dein MySQL-Server überhaupt läuft?
> Prüf das mal...  *



ich würds gerne tun, aber ich weis nicht wie! ich komm ja von windows, wo es leichter ging, was aber nix heissen soll!
wenns geht möchte ich das win nicht mehr!


----------



## Dario Linsky (25. Oktober 2003)

Wenn Du Redhat benutzt, kannst Du den Service mit dem Tool redhat-config-services starten. Ansonsten prüfst Du einfach mal mit:
ps -ax | grep mysql
ob der Service schon läuft. Wenn das nicht der Fall ist, kannst starte ihn - entweder wie oben beschrieben oder mit:
/sbin/service mysqld start


----------



## marcoX (25. Oktober 2003)

ich benutze leider SuSE9! sowie ich das mittlerweile mittbekommen habe, ist SuSE
unter den Linux Fans nicht sehr beliebt.

die zwei befehle funktionieren leider nicht.


----------



## Dario Linsky (25. Oktober 2003)

SuSE nutzt yast für die Konfiguration, da solltest Du Dich evtl. einfach mal umsehen.
Was die beiden Kommandos angeht: Die sollten schon funktionieren, das hat nichts mit mit der Distribution zu tun. Welche Fehlermeldung wird denn ausgegeben, vielleicht solltest Du Dich auch einfach nur mal als root anmelden. 
Und wenn /sbin/service dann immer noch nicht funktioniert, dann musst Du einfach mal mit "whereis service" nachschlagen, wo das genau liegt. Wenn ich mich richtig erinnere, war das nur eine Redhat-Geschichte, dass alles was in /sbin liegt nicht mehr direkt ausgeführt werden kann...


----------



## marcoX (25. Oktober 2003)

Hi,

also,
mit dem Befehl *ps -ax|grep mysql* kommt das:
"_Warning: bad syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
22202 pts/1    S      0:00 grep mysql_".

Mit dem Befehl *sbin/service mysql start* kommt das:
"_bash: sbin/service: No such file or directory_".

Und mit *whereis service*:
"_service:_".

Ach ja, all das unter "root".


----------



## JohannesR (25. Oktober 2003)

```
ps ax | grep mysql
```

<edit>Poste uns mal deine /etc/mysql/my.cnf oder die /etc/my.cnf</edit>


----------



## marcoX (25. Oktober 2003)

Hi Johannes,

hier meine my.cnf:

```
# Example mysql config file for medium systems.
#
# This is for a system with little memory (32M - 64M) where MySQL plays
# a important part and systems up to 128M very MySQL is used together with
# other programs (like a web server)
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /var/lib/mysql) or
# ~/.my.cnf to set user-specific options.
#
# One can in this file use all long options that the program supports.
# If you want to know which options a program support, run the program
# with --help option.

# The following options will be passed to all MySQL clients
[client]
#password	= 1404
port		= 3306
socket		= /var/lib/mysql/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[ mysqld]
port		= 3306
socket		= /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
myisam_sort_buffer_size = 8M

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
# 
#skip-networking

# Replication Master Server (default)
# binary logging is required for replication
# log-bin

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id	= 1

# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods :
#
# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
#    the syntax is:
#
#    CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
#    MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
#
#    where you replace <host>, <user>, <password> by quoted strings and
#    <port> by the master's port number (3306 by default).
#
#    Example:
#
#    CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
#    MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# OR
#
# 2) Set the variables below. However, in case you choose this method, then
#    start replication for the first time (even unsuccessfully, for example
#    if you mistyped the password in master-password and the slave fails to
#    connect), the slave will create a master.info file, and any later
#    change in this file to the variables' values below will be ignored and
#    overridden by the content of the master.info file, unless you shutdown
#    the slave server, delete master.info and restart the slaver server.
#    For that reason, you may want to leave the lines below untouched
#    (commented) and instead use CHANGE MASTER TO (see above)
#
# required unique id between 2 and 2^32 - 1
# (and different from the master)
# defaults to 2 if master-host is set
# but will not function as a slave if omitted
#server-id       = 2
#
# The replication master for this slave - required
#master-host     =   <hostname>
#
# The username the slave will use for authentication when connecting
# to the master - required
#master-user     =   <username>
#
# The password the slave will authenticate with when connecting to
# the master - required
#master-password =   <password>
#
# The port the master is listening on.
# optional - defaults to 3306
#master-port     =  <port>
#
# binary logging - not required for slaves, but recommended
#log-bin

# Point the following paths to different dedicated disks
#tmpdir		= /tmp/		
#log-update 	= /path-to-dedicated-directory/hostname

# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /var/lib/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

# The safe_mysqld script
[safe_mysqld]
err-log=/var/lib/mysql/mysqld.log

[mysqldump]
quick
max_allowed_packet = 16M

[ mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
```

liegt unter /etc/


----------



## JohannesR (25. Oktober 2003)

Füge mal unter skip-locking ein "skip-innodb" hinzu. Das hat bei mir (Ich hatte das Problem auch mal) damals geholfen.


----------



## marcoX (30. Oktober 2003)

> _Original geschrieben von Dario Linsky _
> *SuSE nutzt yast für die Konfiguration, da solltest Du Dich evtl. einfach mal umsehen.*



hmm ... ich kann unter Yast leider keinen Eintrag finden, wo man MySQL konfigurieren kann! 

@Johannes
es geht sammt neuen Eintrag leider immer noch nicht!

Welche Einstellungen habt Ihr denn vorgenommen?

Gruß
Marco


----------



## Christian Fein (31. Oktober 2003)

> _Original geschrieben von marcoX _
> *ich benutze leider SuSE9! sowie ich das mittlerweile mittbekommen habe, ist SuSE
> unter den Linux Fans nicht sehr beliebt.
> *



Ja mannche fühlen sich zu elitäär für SuSE 

Ist eine schöne Distribution, die dadurch das sie sich ziemlich auf Anfänger konzentriert
viele die sich besser auskennen abschreckt.
Aber lass dich nicht beirren, sehr viele absolute Linux Profis nutzen SuSE, u.a Linus Torvalds (der Linux - "Erfinder") selber nutzt neben RedHat gerne SuSE.
soviel dazu...

Gestartet wird der mysql server durch:
/etc/init.d/mysqld start

sollte dieser befehl bei SuSE 9 wo anders liegen (was ich mir nicht vorstellen kann)
wird er so gefunden.

$ locate mysqld | grep /bin/

dann den gefundenen mysqld mit start aufrufen.

Sollte es immer noch nicht funktionieren, und eine meldung kommt:
can create socket 

schau ob /var/lib/mysql genügend rechte besitzt.
Dort wird die mysql.socket Datei reingeschrieben. 
Dieses Verzeichniss sollte dem mysql user gehören, 
wie der heisst erfährst du in der Datei /etc/my.cf

Sieht ungefair so aus:

```
[ mysqld]                                                                        
datadir=/var/lib/mysql                                                          
socket=/var/lib/mysql/mysql.sock                                                
                                                                                
[mysql.server]                                                                  
user=mysql                                                                      
basedir=/var/lib                                                                
                                                                                
[safe_mysqld]                                                                   
err-log=/var/log/mysqld.log                                                     
pid-file=/var/run/mysqld/mysqld.pid
```
User ist mysql check ob auch alle angegebene 
verzeichnisse bzw Dateien auch dem user mysql (oder wie er bei dir heisst)
gehört.


----------



## marcoX (31. Oktober 2003)

Hi Christian,

vielen Dank für Deine Antwort!
Es geht noch nicht! Jedoch hab ich mir jetzt mal phpinfo gespeichert
und unter dem Abschnitt mysql steht dann folgendes, kann es damit zu tun haben?

*
mysql
MySQL Support	enabled
Active Persistent Links 	0
Active Links 	0
Client API version 	4.0.15
MYSQL_MODULE_TYPE 	external
MYSQL_SOCKET 	/var/lib/mysql/mysql.sock
MYSQL_INCLUDE 	-I/usr/include/mysql
MYSQL_LIBS 	-L/usr/lib -lmysqlclient

Directive	Local Value	Master Value
mysql.allow_persistent	On	On
mysql.connect_timeout	60	60
mysql.default_host	no value	no value
mysql.default_password	no value	no value
mysql.default_port	no value	no value
mysql.default_socket	no value	no value
mysql.default_user	no value	no value
mysql.max_links	Unlimited	Unlimited
mysql.max_persistent	Unlimited	Unlimited
mysql.trace_mode	Off	Off
*

Schöne Grüße
Marco


----------



## marcoX (1. November 2003)

Hi,

also mittlerweile hab ich eine neue Meldung zusammen gebracht:
*
 MySQL meldet: 
 #1045 - Access denied for user: 'marco@localhost' (Using password: YES)*

Ich habe keinen Zugriff. Aber wieso "marco@localhost"?


----------



## JohannesR (1. November 2003)

Das liegt daran, dass du als User marco angemeldet bist. Versuch es mal per 

```
# mysql --user=root --password=xxx
```


----------

