Diese Anleitung führt Sie durch den Prozess der Einrichtung einer PHP-Website auf einer Amazon EC2-Instanz mit Nginx als Webserver, MySQL als Datenbank, PHP für serverseitiges Skripting, und Git zur Versionskontrolle. Wir decken alles ab, von der Ersteinrichtung bis zur Fehlerbehebung bei häufigen Problemen.
Verwenden Sie SSH, um eine Verbindung zu Ihrer Instanz herzustellen:
ssh -i /path/to/your-key.pem ubuntu@your-instance-public-dns
Ersetzen Sie /path/to/your-key.pem durch den Pfad zu Ihrer Schlüsseldatei und your-instance-public-dns durch den öffentlichen DNS-Namen Ihrer Instanz.
Sobald die Verbindung hergestellt ist, aktualisieren und aktualisieren Sie Ihr System:
sudo apt update sudo apt upgrade -y
Nginx-Webserver installieren:
sudo apt install nginx -y sudo systemctl start nginx sudo systemctl enable nginx
Überprüfen Sie, ob Nginx ausgeführt wird:
sudo systemctl status nginx
MySQL-Server installieren:
sudo apt install mysql-server -y sudo systemctl start mysql sudo systemctl enable mysql
Sichern Sie Ihre MySQL-Installation:
sudo mysql_secure_installation
Befolgen Sie die Anweisungen, um ein Root-Passwort festzulegen und unsichere Standardeinstellungen zu entfernen.
Wir installieren PHP 8.1 (oder die neueste stabile Version, die in den Ubuntu-Repositories verfügbar ist):
sudo apt install php8.1-fpm php8.1-mysql php8.1-common php8.1-cli php8.1-curl php8.1-mbstring php8.1-xml php8.1-zip -y
PHP-Installation überprüfen:
php -v
Git zur Versionskontrolle installieren:
sudo apt install git -y
Git-Installation überprüfen:
git --version
Erstellen Sie eine neue Nginx-Serverblockkonfiguration:
sudo nano /etc/nginx/sites-available/your_domain
Fügen Sie die folgende Konfiguration hinzu (ersetzen Sie Ihre_Domäne durch Ihre tatsächliche Domäne oder IP-Adresse):
server { listen 80; server_name your_domain www.your_domain; root /var/www/your_domain; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; fastcgi_index index.php; include fastcgi_params; } location ~ /\.ht { deny all; } }
Aktivieren Sie die neue Website:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Nginx-Konfiguration testen:
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu:
sudo systemctl reload nginx
Erstellen Sie das Web-Stammverzeichnis:
sudo mkdir -p /var/www/your_domain sudo chown -R $USER:$USER /var/www/your_domain sudo chmod -R 755 /var/www/your_domain
Wenn Sie über ein bestehendes Git-Repository für Ihre Website verfügen, klonen Sie es in Ihr Webstammverzeichnis:
cd /var/www/your_domain git clone https://github.com/your-username/your-repo.git .
Ersetzen Sie https://github.com/your-username/your-repo.git durch Ihre tatsächliche Repository-URL.
Wenn Sie ein neues Projekt starten, initialisieren Sie ein neues Git-Repository:
cd /var/www/your_domain git init
Legen Sie die richtigen Berechtigungen für Ihre Webdateien fest:
sudo chown -R www-data:www-data /var/www/your_domain sudo find /var/www/your_domain -type d -exec chmod 755 {} \; sudo find /var/www/your_domain -type f -exec chmod 644 {} \;
So erlauben Sie dem Ubuntu-Benutzer, Dateien zu verwalten:
sudo usermod -a -G www-data ubuntu sudo chmod g s /var/www/your_domain
Möglicherweise müssen Sie sich abmelden und erneut anmelden, damit die Gruppenänderungen wirksam werden.
Passen Sie die PHP-Einstellungen bei Bedarf an:
sudo nano /etc/php/8.1/fpm/php.ini
Allgemeine Einstellungen zum Anpassen:
upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300 memory_limit = 256M
Nachdem Sie Änderungen vorgenommen haben, starten Sie PHP-FPM neu:
sudo systemctl restart php8.1-fpm
Um Ihre Website mit HTTPS zu sichern, können Sie Let's Encrypt verwenden:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your_domain -d www.your_domain
Folgen Sie den Anweisungen, um SSL einzurichten.
Wenn in den Nginx-Fehlerprotokollen der Fehler „Berechtigung verweigert“ auftritt:
ls -l /var/www/your_domain
ps aux | grep nginx
sudo nano /etc/nginx/nginx.conf
Stellen Sie sicher, dass der Benutzer auf www-data eingestellt ist.
Für PHP-bezogene Fehler:
sudo tail -f /var/log/php8.1-fpm.log
sudo systemctl status php8.1-fpm
ls /var/run/php/php8.1-fpm.sock
Wenn Sie auf Git-Berechtigungsprobleme stoßen:
sudo chown -R ubuntu:ubuntu /var/www/your_domain/.git
sudo chown -R ubuntu:ubuntu /var/www/your_domain git pull sudo chown -R www-data:www-data /var/www/your_domain
sudo apt update && sudo apt upgrade -y
Verwenden Sie sichere Passwörter für alle Dienste (MySQL, SSH usw.).
Konfigurieren Sie eine Firewall (z. B. UFW), um eingehenden Datenverkehr einzuschränken:
sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw enable
sudo apt install fail2ban -y sudo systemctl start fail2ban sudo systemctl enable fail2ban
Sichern Sie regelmäßig Ihre Website und Datenbank.
Überwachen Sie Ihre Serverprotokolle auf ungewöhnliche Aktivitäten:
sudo tail -f /var/log/nginx/access.log sudo tail -f /var/log/nginx/error.log
Verwenden Sie die Versionskontrolle (Git) für alle Ihre Codeänderungen.
Implementieren Sie eine ordnungsgemäße Fehlerbehandlung und Protokollierung in Ihrer PHP-Anwendung.
Verwenden Sie vorbereitete Anweisungen oder ORM, um SQL-Injection-Angriffe zu verhindern.
Halten Sie Ihre Anwendungsabhängigkeiten auf dem neuesten Stand und verwenden Sie einen Abhängigkeitsmanager wie Composer für PHP-Projekte.
Wenn Sie dieser Anleitung folgen, sollten Sie eine voll funktionsfähige PHP-Website haben, die auf einer EC2-Instanz mit Nginx, MySQL und Git läuft.
Denken Sie daran, die Anweisungen an Ihre spezifischen Bedürfnisse anzupassen und der Sicherheit bei Ihrer Einrichtung stets Priorität einzuräumen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3