---
title: "PHP-Proxy-Server: So richten Sie Proxys in PHP ein"
slug: php-proxy-server
date: 2024-02-28T07:56:45+00:00
modified: 2026-04-27T08:42:33+00:00
permalink: https://brightdata.de/blog/wie/php-proxy-server
type: blog
---

[ Blog ](https://brightdata.de/blog "Blog") / [How Tos](https://brightdata.de/blog/wie)







 [How Tos](https://brightdata.de/blog/wie)

# PHP-Proxy-Server: So richten Sie Proxys in PHP ein

Erfahren Sie, wie Sie einen PHP-Proxy-Server einrichten, um Web Scraping zu verbessern, Sicherheit zu gewährleisten und Geoblocking zu überwinden.

 3 min lesen





 [ ![](https://media.brightdata.de/2024/02/Marshall-Chikari-50x50.png) ](https://brightdata.com/blog/authors/marshall-chikari)

 [Marshall Chikari

February 28, 2024

 ](https://brightdata.com/blog/authors/marshall-chikari)





 ![PHP Proxy Server How to Set Up Proxies in PHP](https://media.brightdata.de/2024/02/PHP-Proxy-Server-How-to-Set-Up-Proxies-in-PHP.svg)





Bei der Verbindung zu einem Netzwerk dient eine IP-Adresse als eindeutige Kennung, die die Kommunikation und Identifizierung innerhalb dieses Netzwerks und im Internet erleichtert. Ein Proxy-Server fungiert als Vermittler zwischen dem Gerät eines Benutzers und dem Internet. Er erhöht die Sicherheit, den Datenschutz und die Leistung, indem er Anfragen verwaltet und die IP-Adresse des Benutzers verbirgt.

Proxy-Server gewährleisten Anonymität und helfen, Bedrohungen herauszufiltern, indem sie Ihre IP-Adresse maskieren und den Zugriff auf Websites kontrollieren. Gerade beim Web Scraping spielen Proxy-Server eine entscheidende Rolle, denn sie helfen Nutzern, IP-Sperren zu umgehen und Geoblocking-Maßnahmen zu verhindern.

In diesem Tutorial erfahren Sie mehr über Proxys und wie Sie einen Proxy-Server für Web Scraping in PHP einrichten.

## <a></a>Verwendung eines Proxy-Servers in PHP

Wenn Sie einen Proxy-Server einrichten möchten, gibt es verschiedene Möglichkeiten, dies zu tun. Sie können Server-Anwendungen wie Apache oder Nginx als Forward-Proxy-Server verwenden oder sich für dedizierte Proxy-Tools wie Squid entscheiden. In diesem Tutorial verwenden Sie Apache als Proxy-Server.

Um einen Proxyserver für [Web Scraping in PHP](https://brightdata.de/blog/wie/web-scraping-php-2) einzurichten, müssen Sie sicherstellen, dass PHP auf Ihrem System installiert ist. Wenn Sie es noch nicht installiert haben, folgen Sie dazu [der offiziellen Dokumentation](https://www.php.net/manual/en/install.php) . Dieser Artikel verwendet Ubuntu als Betriebssystem.

### <a></a>Einrichtung eines Proxy-Servers mit Apache

In Apache können die Module [`mod_proxy`](https://httpd.apache.org/docs/2.4/mod/mod_proxy.html), [`mod_proxy_http`](https://httpd.apache.org/docs/2.4/mod/mod_proxy_http.html) und [`mod_proxy_connect`](https://httpd.apache.org/docs/2.4/mod/mod_proxy_connect.html) verwendet werden, damit Apache als Proxy-Server fungiert.

Um den Proxy-Server einzurichten, müssen Sie zunächst die Module aktivieren:

```none
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_connect

```

Dann müssen Sie eine neue `VirtualHost`-Datei erstellen, in der Sie den Proxy-Server definieren:

```none
cd /etc/apache2/sites-available/
sudo cp 000-default.conf proxy.conf

```

Fügen Sie in der `proxy.conf`-Datei den folgenden Code ein:

```none
<VirtualHost *:80>
    ServerName localhost
    ServerAdmin admin@localhost
    <IfModule mod_ssl.c>
            SSLEngine off
    </IfModule>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ProxyRequests On
    ProxyVia On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
</VirtualHost>

```

In diesem Code ermöglicht `ProxyRequests On` Apache, ein Forward-Proxy-Server zu sein. `ProxyVia On` fügt einen `Via`-Header hinzu, der hilft, den Anfragepfad in einer Kette von Proxys zu überprüfen. Außerdem legt der Kontrollblock `<Proxy>` fest, wer auf den Proxy zugreifen darf. Jeder Host darf auf den Proxy-Server zugreifen.

Weitere Informationen finden Sie in den offiziellen [Dokumenten](https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxy).

Um die Einrichtung des Proxy-Servers abzuschließen, aktivieren Sie den `VirtualHost`:

```none
sudo a2ensite proxy.conf
service apache2 reload

```

### <a></a>Verwendung des Proxy-Servers

Im folgenden Abschnitt erfahren Sie, wie Sie den Proxy-Server im PHP-Code verwenden. Normalerweise bietet jedes Webanfrage- oder Automatisierungs-Framework einen Mechanismus zum Einrichten von Proxys. In diesem Artikel erfahren Sie mehr über drei Methoden: curl, `file_get_contents`und Symfony BrowserKit.

#### <a></a>Einstellung von Proxys in cURL

Die erste Methode, die Sie kennenlernen werden, zeigt Ihnen, wie Sie mit der [`cURL`-Bibliothek](https://www.php.net/manual/en/book.curl.php), einem leistungsstarken Tool für HTTP-Anfragen, Proxys in Ihr PHP-Skript integrieren.

Erstellen Sie eine Datei mit dem Namen `curl.php` mit dem folgenden Code:

```none
<?php

$proxyUrl = 'http://localhost:80';
$targetUrl = 'https://httpbin.org/get';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $targetUrl);
curl_setopt($ch, CURLOPT_PROXY, $proxyUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
} else {
    echo $response;
}

curl_close($ch);

```

Dieses Skript initiiert eine cURL-Sitzung, legt die Ziel-URL und die Proxy-URL mit `curl_setopt` fest und führt die Sitzung aus, um die Antwort abzurufen. Mit der Option `CURLOPT_PROXY` wird der Proxy festgelegt. Die Proxy-URL ist auf `localhost:80` gesetzt, wodurch der Proxy genutzt wird, den Sie im vorherigen Schritt erstellt haben.

Der Einfachheit halber enthält das Skript auch Optionen zum Deaktivieren der SSL-Verifizierung. Achten Sie jedoch darauf, in einer Produktionsumgebung Vorsicht walten zu lassen. Alle während der Ausführung aufgetretenen cURL-Fehler werden zu Debugging-Zwecken angezeigt.

Führen Sie das Skript mit dem Befehl `php curl.php` aus.

Nachdem Sie das Skript ausgeführt haben, können Sie die Apache-Zugriffsprotokolldatei überprüfen, um die Anfrage an den Proxy zu verfolgen. Die Zugriffsprotokolldatei befindet sich normalerweise unter `/var/log/httpd/access.log`.

In dieser Protokolldatei finden Sie einen Eintrag, der das `CONNECT` -Protokoll verwendet, das dem ausgeführten Skript entspricht und angibt, dass die Anfrage erfolgreich verarbeitet wurde, mit einem HTTP-Statuscode von 200:

```none
127.0.0.1 - - [21/Dec/2023:12:34:56 +0530] "CONNECT httpbin.org:443 HTTP/1.1" 200 -

```

#### <a></a>Einstellung von Proxys in file\_get\_contents

Sie können auch `file_get_contents` verwenden, um Proxys in PHP einzurichten und dann den Apache-Proxy zum Abrufen von Inhalten zu nutzen.

Erstellen Sie dazu eine `file_get_contents.php` -Datei und fügen Sie den folgenden Code hinzu:

```none
<?php

$options = [
    'http' => [
        'proxy' => 'tcp://127.0.0.1:80',
        'request_fulluri' => true,
    ],
];
$context = stream_context_create($options);

$response = file_get_contents('https://httpbin.org/get', false, $context);

if ($response === false) {
    echo "Failed to retrieve data from $url";
} else {
    echo $response;
}

```

Dieser PHP-Code initiiert eine HTTP-Anfrage, um die Daten von `http://wikipedia.org` mithilfe eines angegebenen Proxy-Servers abzurufen. Die Proxy-Server-Details sind im Array `$options` konfiguriert, wobei der „Proxy“-Schlüssel die Server-Adresse definiert („tcp: //127.0.0. 1:80“) und `request_fulluri` auf „true“ gesetzt ist, wodurch der Anfrage-URI als vollständiger URI behandelt wird.

Ein Stream-Kontext, der diese Optionen hinzufügt, wird mit `stream_context_create` erstellt. Die eigentliche HTTP-Anfrage wird mit `file_get_contents` gestellt, wodurch der erstellte Kontext hinzugefügt und der Inhalt von `HttpBin` abgerufen wird.

#### <a></a>Einstellung von Proxys in Symfony BrowserKit

Wenn Sie ein Symfony-Benutzer sind, ist die Integration von Proxys mit [BrowserKit](https://symfony.com/doc/current/setup.html) einfach.

Wenn Sie mitmachen möchten und Symfony noch nicht installiert haben, sollten Sie es [jetzt installieren](https://symfony.com/doc/current/setup.html)..

Sobald Symfony eingerichtet ist, können Sie problemlos Proxys in Ihrem PHP-Code verwenden:

```none
<?php

require './vendor/autoload.php';

use SymfonyComponentBrowserKitHttpBrowser;
use SymfonyComponentHttpClientHttpClient;

$proxyServer = 'http://127.0.0.1';
$proxyPort = '80';

$client = new HttpBrowser(HttpClient::create(['proxy' => sprintf('%s:%s', $proxyServer, $proxyPort)]));

$client->request('GET', 'https://httpbin.org/get');

$content = $client->getResponse()->getContent();

echo $content;

```

Dieser Codeblock verwendet Symfony BrowserKit und `HttpClient`, um eine `GET`-Anfrage an `HttpBin` über den unter `$proxyUrl` konfigurierten Apache-Proxy zu stellen. Dann wird der Antwortinhalt abgerufen und angezeigt. Die `HttpBrowser` -Instanz ist mit den angegebenen Proxy-Einstellungen eingerichtet, was es einfach macht, Proxys in Symfony-Anwendungen zu integrieren.

## <a></a>Einschränkungen herkömmlicher Proxy-Integrationsmethoden

Obwohl die Konfiguration von Proxys in PHP einfach zu sein scheint, sind die verschiedenen Methoden mit gewissen Einschränkungen verbunden. Es ist zwar möglich, manuell zwischen verschiedenen Proxys zu wechseln, aber das ist ein ineffizienter Ansatz, wenn Sie große Datenmengen auslesen.

Außerdem bieten diese Methoden keinen Mechanismus, um automatisch zu einem alternativen Proxy zu wechseln, wenn der Proxy nicht verfügbar ist, die IP eingeschränkt wird oder Probleme auftreten. Dies führt zu Betriebsunterbrechungen oder Fehlern beim Datenabruf, die ein manuelles Eingreifen erfordern. Sie könnten zwar Code schreiben, um die Proxys automatisch zu wechseln, aber das ist ein komplizierter Prozess, und Sie müssen mehrere Proxy-Server in verschiedenen geografischen Regionen einrichten oder mieten, um maximale Sicherheit zu gewährleisten.

Die gute Nachricht ist, dass Bright Data helfen kann.

## <a></a>Der Bright Data-Proxy-Server

Bright Data ist eine Plattform zur Extraktion von Webdaten, die Tools für Web-Scraping und Datenerfassung in großem Maßstab bietet. Die robuste Sammlung weltweiter [Proxy-Server](https://brightdata.de/proxy-types/proxy-servers) von Bright Data verschafft Ihnen zum Beispiel Zugriff auf verschiedene IP-Adressen, mit denen Sie Geoblocking und IP-Sperren überwinden können.

Darüber hinaus können Ihnen die On-Demand-Proxys von Bright Data dabei helfen, die benötigten Ressourcen dynamisch zu erwerben, wenn sie benötigt werden. Dies ist hilfreich in Web-Scraping-Szenarien, in denen Ihre Anforderungen schwanken, um eine optimale Leistung und Reaktionsfähigkeit zu gewährleisten. Bright Data bietet verschiedene Arten von Proxys an (*d. h*. Privatanwender-Proxys, Rechenzentrums-Proxys, IDA-Proxys und mobile Proxys), die sicherstellen, dass Sie den Proxy haben, der am besten zu Ihrem Anwendungsfall passt.

Einer der Hauptvorteile der Bright Data-Lösung ist die automatisierte [Proxy-Rotation](https://brightdata.de/solutions/rotating-proxies), die zu einer erhöhten Anonymität beiträgt und das Erkennungsrisiko bei Web-Scraping-Aktivitäten mindert. Diese Funktion in Verbindung mit dem Zugang zu einem fortschrittlichen Proxy-Netzwerk im Rechenzentrum mit über 770.000 IPs weltweit macht Bright Data zu einer hervorragenden Wahl für Web Scraping.

### <a></a>Verwendung des Bright Data-Proxys mit PHP

Die Verwendung von Bright Data ist einfach. Alles was Sie tun müssen, ist sich für ein kostenloses Konto anzumelden.

Nachdem Sie ein Konto erstellt haben, klicken Sie in der Seitenleiste auf **Proxys und Scraping-Infrastruktur** und wählen Sie dann **Erste Schritte** unter **Privanwender-Proxys** aus:

![Bright Data-Privatanwender-Proxy-Konfiguration](https://media.brightdata.de/2024/02/Bright-Data-residential-proxy-configuration.png)Hier können Sie den Proxy konfigurieren, indem Sie beispielsweise zwischen **Dedizierte** und **Geteilte** Proxys wählen:

![Auswahl der Proxy-Konfiguration:](https://media.brightdata.de/2024/02/Choosing-the-proxy-configuration.png)Nachdem Sie Ihre Proxy-Konfiguration ausgewählt haben, aktivieren Sie den Proxy-Service, indem Sie auf **Speichern** klicken. Bright Data stellt Ihnen einmalige Anmeldeinformationen zur Verfügung:

![Bright Data-Anmeldeinformationen:](https://media.brightdata.de/2024/02/Bright-Data-login-credentials.png)Mit Ihren Bright Data-Proxy-Details können Sie den Bright Data-Proxy verwenden, um Wikipedia zu scrapen. Erstellen Sie zunächst eine `scrape.php` -Datei und fügen Sie den folgenden Code hinzu:

```none
<?php

// BrightData proxy details
$proxyUrl = 'Your-proxy-url-from-the access-paramaters';
$proxyUser = 'Your-username:Your-password';

$targetUrl = 'https://en.wikipedia.org/wiki/Proxy_server';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $targetUrl);
curl_setopt($ch, CURLOPT_PROXY, $proxyUrl);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyUser);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
} else {
    $dom = new DOMDocument();
    @$dom->loadHTML($response);

    $content = $dom->getElementById('mw-content-text')->textContent;

    $headings = [];
    $headingsNodeList = $dom->getElementsByTagName('h2');
    foreach ($headingsNodeList as $heading) {
        $headings[] = $heading->textContent;
    }

    $headingsNodeList = $dom->getElementsByTagName('h3');
    foreach ($headingsNodeList as $heading) {
        $headings[] = $heading->textContent;
    }

    echo "Content:n";
    echo $content . "nn";

    echo "Headings:n";
    foreach ($headings as $index => $heading) {
        echo ($index + 1) . ". $headingn";
    }
}

curl_close($ch);

```

> Stellen Sie sicher, dass Sie `Ihre-Proxy-Url-von-den-Zugriffsparametern`, `Ihr-Benutzername`und `Ihr-Passwort` durch Ihre spezifischen Anmeldedaten ersetzen.

In diesem Code werden die Proxy-Details in die cURL-Anfrage integriert, um sicherzustellen, dass das Web Scraping über das Bright Data-Proxy-Netzwerk erfolgt.

Führen Sie als Nächstes `php scrape.php` in Ihrem Terminal aus. Hier sind die gescrapten Ergebnisse:

![Ergebnisse von gescrapten Daten aus Wikipedia mithilfe von Bright Data](https://media.brightdata.de/2024/02/Results-of-scraped-data-from-Wikipedia-using-Bright-Data.png)Um zu bestätigen, dass Ihre Anfragen jetzt über den Bright Data-Proxy weitergeleitet werden, können Sie versuchen, eine GET-Anfrage an <http://lumtest.com/myip.json> zu senden. Wenn Sie diese in Ihrem Browser öffnen, antwortet dieser mit einem JSON-Objekt, das die Angaben zu Ihrem lokalen IDA enthält.

Um dies mit einem Bright Data-Proxy auszuprobieren, speichern Sie den folgenden Code in einer neuen PHP-Datei und führen Sie ihn aus:

```none
<?php

// BrightData proxy details
$proxyUrl = 'brd.superproxy.io:22225';
$proxyUser = 'brd-customer-hl_0c2320f1-zone-residential_proxy1:j30hm0h2pqde';

$targetUrl = 'http://lumtest.com/myip.json';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $targetUrl);
curl_setopt($ch, CURLOPT_PROXY, $proxyUrl);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyUser);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
} else {
    echo $response;
}

curl_close($ch);

```

Die Ausgabe sollte den Standort und andere Details des verwendeten Proxys anzeigen:

```none
{"ip":"91.66.16.153","country":"DE","asn":{"asnum":3209,"org_name":"Vodafone GmbH"},"geo":{"city":"Berlin","region":"BE","region_name":"Land Berlin","postal_code":"12205","latitude":52.428,"longitude":13.3095,"tz":"Europe/Berlin","lum_city":"berlin","lum_region":"be"}}

```

Dies bestätigt, dass die Anfrage tatsächlich über die Bright Data-Proxy-Server weitergeleitet wird.

## <a></a>Fazit

In diesem Tutorial haben Sie verschiedene Methoden kennengelernt, um einen Proxy-Server in PHP einzurichten. Lokale Proxy-Server mit Apache sind zwar eine Option, aber die Nutzung der Bright Data-Proxy-Server bietet ein neues Maß an Effizienz und Vielseitigkeit.

Die Bright Data-Proxy-Server bieten Ihnen ein umfassendes globales Proxy-Netzwerk, das den Zugriff auf eine Vielzahl von IP-Adressen gewährleistet, darunter [Privatanwneder-](https://brightdata.de/proxy-types/residential-proxies), [IDA-](https://brightdata.de/proxy-types/isp-proxies), [Rechenzentrums-](https://brightdata.de/proxy-types/datacenter-proxies) und [mobile Proxys](https://brightdata.de/proxy-types). Darüber hinaus trägt die Bright Data-[Proxy-Rotation](https://brightdata.de/solutions/rotating-proxies) zu einer erhöhten Anonymität und zur Minderung von Erkennungsrisiken bei Web-Scraping-Aktivitäten bei.

Ganz gleich, ob Sie ein Anfänger sind, der Einfachheit sucht, oder ein erfahrener Entwickler, der fortgeschrittene Funktionen benötigt, die Bright Data-Proxy-Server bieten eine solide Grundlage für erfolgreiche und effiziente Web-Scraping-Aktivitäten.



Vertrieb kontaktierenGratis testen![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 Inhaltsverzeichnis







Dedicated Scraper APIs &amp; No-Code Scrapers

Over 1000 scrapers for all popular domains. Simplify your web scraping.

[See pricing](/pricing/web-scraper "See pricing")

Just want data? Skip scraping.

Hundreds of ready-to-use datasets from all popular domains.

[See pricing](/pricing/datasets "See pricing")







 [ ](https://news.ycombinator.com/submitlink?t=PHP-Proxy-Server%3A+So+richten+Sie+Proxys+in+PHP+ein&u=https://brightdata.de/blog/wie/php-proxy-server) [ ](https://www.linkedin.com/shareArticle?mini=true&title=PHP-Proxy-Server%3A+So+richten+Sie+Proxys+in+PHP+ein&url=https://brightdata.de/blog/wie/php-proxy-server) [ ](http://www.reddit.com/submit?title=PHP-Proxy-Server%3A+So+richten+Sie+Proxys+in+PHP+ein&url=https://brightdata.de/blog/wie/php-proxy-server)







##  Das könnte Sie auch interessieren

 [ ![curl GET Request with PHP](https://media.brightdata.de/2023/11/curl-GET-Request-with-PHP.svg) ](https://brightdata.de/blog/wie/curl-get-request-with-php "curl-GET-Anfrage mit PHP")

 [How Tos



 ![](https://media.brightdata.de/2023/08/Kevin-Kimani-50x50.png)

Kevin Kimani





### curl-GET-Anfrage mit PHP

Anleitung zur cURL-Get-Anfrage mit PHP. Erfahren Sie mehr über GET-Anfragen und wie man eine GET-Anfrage mit curl in PHP implementiert.



 22-Nov-2023

 3 min lesen

 ](https://brightdata.de/blog/wie/curl-get-request-with-php)

 [ ![Best scraping proxies](https://media.brightdata.de/2023/07/Best-web-scraping-proxies.svg) ](https://brightdata.de/blog/proxys-101/best-scraping-proxies-guide "Beste Proxys für Web-Scraping: Top-Anbieter und Typen im Vergleich")

 [Proxy 101



 ![Antonello Zanini](https://media.brightdata.de/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Beste Proxys für Web-Scraping: Top-Anbieter und Typen im Vergleich

Was sind die besten Proxys für Scraping? Erfahren Sie mehr über die verschiedenen Proxy-Typen und welcher Proxy-Typ am besten für Ihre Web-Scraping-Anforderungen geeignet ist.



 25-Jul-2023

 10 min lesen

 ](https://brightdata.de/blog/proxys-101/best-scraping-proxies-guide)

 [ ![Web scraping with PHP](https://media.brightdata.de/2022/09/Web-scraping-with-PHP.svg) ](https://brightdata.de/blog/wie/web-scraping-php "Web Scraping mit PHP: eine Schritt-für-Schritt-Anleitung")

 [How Tos



 ![](https://media.brightdata.de/2023/07/Aniket-Bhattacharyea-50x50.png)

Aniket Bhattacharyea





### Web Scraping mit PHP: eine Schritt-für-Schritt-Anleitung

Lernen Sie, wie Sie Ihren eigenen einfachen Web Scraper in PHP von Grund auf erstellen und programmieren können.



 17-Jul-2023

 2 min lesen

 ](https://brightdata.de/blog/wie/web-scraping-php)
