PHP – die besten Beiträge

Problem mit MySQL wenn ich Apache2 über anderen Port verbinde?

Hallo,

heute habe ich ein kleines Problem,

und bevor ich eine moralpredigt bekomme das Man apache2 nur auf Port 80 und 443 benutzt:

"Ich weiß jedoch ist es sinnvoll den "Standartserver" (80/443) auf das verzeichnis /darf/jeder/sehen zu leiten und z.B. den "Home-Server" (8080) auf das verzeichnis /streng/geheim zu leiten"

Falls sich jetzt jemand Fragt wie ich das gemacht habe:

Terminal öffnen

cd /etc/apache2

nano ports.conf

hinzufügen von "Listen [DEIN_PORT]"

^X danach Y und ENTER

nano apache2.conf

danach unter den verzeichnisen einen Neuen eintrag beginnend mit "<Directory [/dein/streng/geheimes/verzeichnis]>" und anschließend mit den von dir gewünschten optionen versehen

^X danach Y und ENTER

dann in das Verzeichnis sites-enabled wechseln

cd /sites-enabled

danach entweder eine neue datei mit endung ".conf" erstellen oder die "000-default.conf" erweitern, in meinem Fall:

nano 000-default.conf

hinzufügen eines neuen Virtual host

<Virtualhost *:[DEIN_PORT_DER_IN_DER_PORTS_CONF_STEHT]>
DocumentRoot [DEIN_STRENG_GEHEIMES_VERZEICHNIS] 
ServerName STRENG_GEHEIMER_SERVER 
ServerAdmin SAG_ICH_DIR_NICHT@geheime_email.tld 
</Virtualhost> 

vor dem : muss ein * sein also *:

danach noch ein restart

sudo service apache2 restart

und tada "zweiter" Server läuft (evtl musst du [DEIN_STRENG_GEHEIMES_VERZEICHNIS] noch mit chown etc. modifizieren das Apache die nötigen rechte hat um darauf zugreifen zu können)

Jetzt mein Problem:

Unter dem "Standart" Port von Apache (80) wenn ich mit der datei test.php eine Verbindung zum Mysql - Server herstellen möchte funktioniert dies Prima, sobalt ich die Test.php jedoch auf meinen "zweiten" Server unter Port 8081 schiebe so kommt nur "Verbindung fehlgeschlagen: Connection refused" zum vorschein.

Inhalt von test.php:

<?php
    $db_user = "BENUTZER";
    $db_pw = "PASSWORT";
    $db_place = "DATENBANK";
    $db_server = "192.16x.17x.xxx";
    $mysqli = new mysqli($db_server, $db_user, $db_pw, $db_place);
    $state = true;
    if ($mysqli->connect_errno) {
        return "Verbindung fehlgeschlagen: " . $mysqli->connect_error;
        $state = false;
    }
    echo mysql_get_host_info($mysqli);

Info:

den Verwendeten nutzer habe ich von allen rechten bis hin zu "nur" datenbankspezifische Rechte schon alles durchprobiert. Auch habe ich schon von "localhost" auf "%" auf "192.16x.17x.xxx" etc. umgestellt.

Gehe ich auf 192.16x.17x.xxx/phpmyadmin und verwende den Benutzernamen + Passwort kann ich mich Problemlos einlogen (auch wenn ich über 192.16x.17x.xxx:8081/phpmyadmin einlogen möchte)

Ich sehe mich echt nicht raus als währe es gut wenn jmd den fehler erkennen und finden würde, danke schonmal

Computer, Technik, programmieren, MySQL, PHP, Technologie, Apache2, phpMyAdmin, Spiele und Gaming

Verzweiflung mit Sonderzeichen auf Server?

Hallo liebe Community ...

Ich bin am Verzweifeln! Ich schreibe im Moment an einem Server-Client-Konstrukt, wo der Java Client eine POST-Request an einen online Server sendet, der die Anfrage dann per PHP und MySQL verarbeitet. In diesem Fall soll einfach nur vom Client eine Textnachricht per POST an ein PHP-Script gesendet werden, das wird dann in PHP per $_POST['Nachricht'] ausgelesen und dann in einer MySQL-Datenbank gespeichert. Und in einer anderen Anfrage wird die Nachricht aus der Tabelle wieder ausgelesen und zurückgeschickt.

Nun arbeite ich aber mit Umlauten und vlt später auch mit anderen Sonderzeichen. Ich habe es zuvor auf meinem localhost versucht und das hat wunderbar geklappt. Wenn ich das allerdings versuche das auf meinem online Server wieder auszulesen (über eine andere POST-Request) kommt sowas bei raus:

In der Datenbankansicht per PHPMyAdmin sieht das ebenfalls so aus. Wie kann ich die Umlaute auf meinem Client richtig anzeigen lassen? Ich bin verwirrt und brauche Hilfe ;-;

Zur Info:

  • Die Texte codiere ich vor dem Senden per POST mit URLEncoder.encode(text, "UTF-8")
  • im Serververzeichnis habe ich über eine ".user.ini" das default_charset auf UTF-8 gesetzt (Mastervalue ist iso-8859-1)
  • (auf meinem localhost ist beides auf UTF-8 gesetzt)
  • die Kollation meiner Server-Datenbanken habe ich glaube irgendwann mal von iso-8859-1auf utf8_general_ci umgestellt
  • als Header im php-Script habe ich noch: header('Content-Type: text/html; charset=utf-8');

Ich komme da echt durcheinander :( kann mir jemand helfen?

Vielen Dank im Voraus

Bild zum Beitrag
Server, Computer, Technik, Java, Sonderzeichen, Datenbank, PHP, Technologie, UTF-8

Meistgelesene Beiträge zum Thema PHP