在Debian系统上部署PHP应用通常涉及以下几个步骤:
更新系统包列表:
sudo apt update
安装必要的软件包: 安装Apache或Nginx作为Web服务器,以及PHP和相关的PHP扩展。
sudo apt install apache2 php libapache2-mod-php php-mysql
或者如果你选择使用Nginx:
sudo apt install nginx php-fpm php-mysql
配置Web服务器:
Apache: 编辑Apache的默认站点配置文件或创建一个新的站点配置文件。
sudo nano /etc/apache2/sites-available/your-site.conf
添加以下内容(根据你的应用需求调整):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/your-app
<Directory /var/www/html/your-app>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
启用站点并重启Apache:
sudo a2ensite your-site.conf
sudo systemctl restart apache2
Nginx: 编辑Nginx的默认站点配置文件或创建一个新的站点配置文件。
sudo nano /etc/nginx/sites-available/your-site
添加以下内容(根据你的应用需求调整):
server {
listen 80;
server_name your-domain.com;
root /var/www/html/your-app;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的PHP版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
启用站点并重启Nginx:
sudo ln -s /etc/nginx/sites-available/your-site /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
部署PHP应用:
将你的PHP应用代码上传到服务器上的/var/www/html/your-app
目录(或其他你配置的文档根目录)。
设置文件权限:
确保Web服务器用户(通常是www-data
)有权访问你的应用文件。
sudo chown -R www-data:www-data /var/www/html/your-app
sudo find /var/www/html/your-app -type f -exec chmod 644 {} \;
sudo find /var/www/html/your-app -type d -exec chmod 755 {} \;
重启Web服务器: 根据你使用的Web服务器,重启它以应用配置更改。
sudo systemctl restart apache2 # 如果是Apache
sudo systemctl restart nginx # 如果是Nginx
配置数据库(如果需要): 如果你的应用需要数据库,安装并配置MySQL或PostgreSQL。
sudo apt install mysql-server
或者
sudo apt install postgresql postgresql-contrib
创建数据库和用户,并授予相应的权限。
运行数据库迁移和安装依赖: 根据你的应用需求,运行数据库迁移脚本和安装PHP依赖。
cd /var/www/html/your-app
composer install # 如果你使用Composer管理PHP依赖
php artisan migrate # 如果你使用Laravel框架
完成以上步骤后,你的PHP应用应该已经在Debian系统上成功部署并可以访问了。