Rumah > Artikel > pangkalan data > Menyediakan Laman Web PHP pada ECith Nginx, MySQL, PHP dan Git
Panduan ini akan memandu anda melalui proses menyediakan tapak web PHP pada contoh Amazon EC2 menggunakan Nginx sebagai pelayan web, MySQL sebagai pangkalan data, PHP untuk skrip sebelah pelayan, dan Git untuk kawalan versi. Kami akan membincangkan segala-galanya daripada persediaan awal hingga menyelesaikan masalah biasa.
Gunakan SSH untuk menyambung ke tika anda:
ssh -i /path/to/your-key.pem ubuntu@your-instance-public-dns
Ganti /path/to/your-key.pem dengan laluan ke fail kunci anda dan your-instance-public-dns dengan nama DNS awam instance anda.
Setelah disambungkan, kemas kini dan tingkatkan sistem anda:
sudo apt update sudo apt upgrade -y
Pasang pelayan web Nginx:
sudo apt install nginx -y sudo systemctl start nginx sudo systemctl enable nginx
Sahkan Nginx sedang berjalan:
sudo systemctl status nginx
Pasang pelayan MySQL:
sudo apt install mysql-server -y sudo systemctl start mysql sudo systemctl enable mysql
Lindungi pemasangan MySQL anda:
sudo mysql_secure_installation
Ikuti gesaan untuk menetapkan kata laluan akar dan alih keluar tetapan lalai yang tidak selamat.
Kami akan memasang PHP 8.1 (atau versi stabil terkini yang tersedia dalam repositori Ubuntu):
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
Sahkan pemasangan PHP:
php -v
Pasang Git untuk kawalan versi:
sudo apt install git -y
Sahkan pemasangan Git:
git --version
Buat konfigurasi blok pelayan Nginx baharu:
sudo nano /etc/nginx/sites-available/your_domain
Tambah konfigurasi berikut (ganti your_domain dengan domain atau alamat IP sebenar anda):
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; } }
Dayakan tapak baharu:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Uji konfigurasi Nginx:
sudo nginx -t
Jika ujian berjaya, muat semula Nginx:
sudo systemctl reload nginx
Buat direktori akar web:
sudo mkdir -p /var/www/your_domain sudo chown -R $USER:$USER /var/www/your_domain sudo chmod -R 755 /var/www/your_domain
Jika anda mempunyai repositori Git sedia ada untuk tapak web anda, klon ke dalam akar web anda:
cd /var/www/your_domain git clone https://github.com/your-username/your-repo.git .
Gantikan https://github.com/your-username/your-repo.git dengan URL repositori sebenar anda.
Jika anda memulakan projek baharu, mulakan repositori Git baharu:
cd /var/www/your_domain git init
Tetapkan kebenaran yang betul untuk fail web anda:
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 {} \;
Untuk membenarkan pengguna Ubuntu mengurus fail:
sudo usermod -a -G www-data ubuntu sudo chmod g+s /var/www/your_domain
Anda mungkin perlu log keluar dan log masuk semula untuk perubahan kumpulan berkuat kuasa.
Laraskan tetapan PHP jika perlu:
sudo nano /etc/php/8.1/fpm/php.ini
Tetapan biasa untuk dilaraskan:
upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300 memory_limit = 256M
Selepas membuat perubahan, mulakan semula PHP-FPM:
sudo systemctl restart php8.1-fpm
Untuk melindungi tapak web anda dengan HTTPS, anda boleh menggunakan Let's Encrypt:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your_domain -d www.your_domain
Ikuti gesaan untuk menyediakan SSL.
Jika anda menghadapi ralat "Kebenaran ditolak" dalam log ralat Nginx:
ls -l /var/www/your_domain
ps aux | grep nginx
sudo nano /etc/nginx/nginx.conf
Pastikan pengguna ditetapkan kepada www-data.
Untuk ralat berkaitan PHP:
sudo tail -f /var/log/php8.1-fpm.log
sudo systemctl status php8.1-fpm
ls /var/run/php/php8.1-fpm.sock
Jika anda menghadapi masalah kebenaran Git:
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
Use strong passwords for all services (MySQL, SSH, etc.).
Configure a firewall (e.g., UFW) to restrict incoming traffic:
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
Regularly backup your website and database.
Monitor your server logs for unusual activity:
sudo tail -f /var/log/nginx/access.log sudo tail -f /var/log/nginx/error.log
Use version control (Git) for all your code changes.
Implement proper error handling and logging in your PHP application.
Use prepared statements or ORM to prevent SQL injection attacks.
Keep your application dependencies up-to-date and use a dependency manager like Composer for PHP projects.
By following this guide, you should have a fully functional PHP website running on an EC2 instance with Nginx, MySQL, and Git.
Remember to adapt the instructions to your specific needs and always prioritize security in your setup.
Atas ialah kandungan terperinci Menyediakan Laman Web PHP pada ECith Nginx, MySQL, PHP dan Git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!