在CentOS服务器上安全运行Laravel应用程序,需要遵循一系列最佳实践。以下是一些关键步骤和建议:
更新系统和软件:
sudo yum update -y
sudo yum groupinstall -y "Development Tools"
sudo yum install -y php php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
使用Web服务器:
sudo yum install -y epel-release
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
配置防火墙:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
安装Composer:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
部署Laravel应用程序:
composer install
sudo chown -R nginx:nginx /path/to/your/laravel/project
sudo chmod -R 755 /path/to/your/laravel/project/storage
sudo chmod -R 755 /path/to/your/laravel/project/bootstrap/cache
配置环境变量:
.env文件并设置必要的环境变量,如数据库连接信息。cp .env.example .env
.env文件,设置数据库连接等信息。生成应用密钥:
php artisan key:generate
运行迁移和数据填充(如果需要):
php artisan migrate
php artisan db:seed
配置Nginx:
sudo nano /etc/nginx/conf.d/yourdomain.com.conf
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /path/to/your/laravel/project/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~ /\.ht {
deny all;
}
}
sudo systemctl restart nginx
配置PHP-FPM:
sudo nano /etc/php-fpm.d/www.conf
listen指令设置为Unix socket或TCP端口。listen = /var/run/php-fpm/php-fpm.sock
sudo systemctl restart php-fpm
使用HTTPS:
sudo yum install -y certbot python2-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
安全加固:
sudo yum install -y fail2ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
通过遵循这些步骤,你可以在CentOS服务器上安全地运行Laravel应用程序。