ubuntu

如何在Ubuntu中部署PHP应用

小樊
51
2025-10-29 05:43:48
栏目: 编程语言

一、前置准备:更新系统 在部署前,确保Ubuntu系统包为最新状态,避免兼容性问题:

sudo apt update && sudo apt upgrade -y

二、安装Web服务器(以Nginx为例) Nginx因高性能常用于PHP应用部署,安装步骤如下:

sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx  # 设置开机自启

验证Nginx是否运行:浏览器访问服务器IP,若看到Nginx欢迎页面则说明成功。

三、安装PHP及必要扩展 PHP应用需对应版本的PHP解释器和常用扩展(如MySQL数据库交互、GD图像处理等):

sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y

四、配置Web服务器处理PHP请求 以Nginx为例,需修改站点配置文件以传递PHP请求至PHP-FPM:

sudo nano /etc/nginx/sites-available/default

找到server块,添加或修改以下内容:

location / {
    try_files $uri $uri/ =404;  # 尝试匹配文件,不存在则返回404
}
location ~ \.php$ {
    include snippets/fastcgi-php.conf;  # 引入FastCGI配置
    fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;  # 根据PHP版本调整sock路径
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  # 设置脚本路径
    include fastcgi_params;  # 包含通用FastCGI参数
}

保存退出后,测试Nginx配置语法:

sudo nginx -t

若无错误,重新加载Nginx:

sudo systemctl reload nginx

五、部署PHP应用 将本地PHP应用文件上传至服务器文档根目录(默认/var/www/html),例如使用scp

scp -r /local/path/to/your/app user@server_ip:/var/www/html/

六、设置文件权限 确保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 {} \;  # 文件权限644
sudo find /var/www/html/your-app -type d -exec chmod 755 {} \;  # 目录权限755

七、配置防火墙(可选但推荐) 若使用UFW防火墙,允许HTTP(80)和HTTPS(443)流量:

sudo ufw allow 'Nginx Full'
sudo ufw enable  # 启用防火墙

八、测试PHP运行 在应用目录创建info.php文件,验证PHP是否正常工作:

sudo nano /var/www/html/info.php

添加以下内容:

<?php phpinfo(); ?>

保存后,浏览器访问http://server_ip/info.php,若看到PHP信息页面则说明部署成功。

九、优化配置(可选但建议)

  1. 启用OPcache:提升PHP脚本执行速度,编辑php.ini
    sudo nano /etc/php/8.1/fpm/php.ini
    
    找到[opcache]部分,修改为:
    zend_extension=opcache.so
    opcache.enable=1
    opcache.memory_consumption=64
    opcache.max_accelerated_files=4000
    opcache.revalidate_freq=2
    
  2. 调整PHP-FPM进程:根据服务器资源优化www.conf/etc/php/8.1/fpm/pool.d/www.conf):
    pm = dynamic
    pm.max_children = 50  # 最大子进程数
    pm.start_servers = 5  # 启动时的进程数
    pm.min_spare_servers = 5  # 最小空闲进程数
    pm.max_spare_servers = 35  # 最大空闲进程数
    

十、使用SSL加密(可选但推荐) 通过Let’s Encrypt免费获取SSL证书,启用HTTPS:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com

按提示完成证书安装,Certbot会自动配置Nginx重定向HTTP至HTTPS。

0
看了该问题的人还看了