一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

怎样在Ubuntu中部署PHP应用

时间:2026-06-11 08:29:59 编辑:袖梨 来源:一聚教程网

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

如何在Ubuntu中部署PHP应用

sudo apt update && sudo apt upgrade -y

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

sudo apt install nginx -ysudo systemctl start nginxsudo 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
  • php-fpm:PHP FastCGI进程管理器,提升性能;
  • php-mysql:支持MySQL数据库连接;
  • 其他扩展根据应用需求添加(如php-imagick处理图片)。

四、配置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-appsudo find /var/www/html/your-app -type f -exec chmod 644 {} ;# 文件权限644sudo 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.soopcache.enable=1opcache.memory_consumption=64opcache.max_accelerated_files=4000opcache.revalidate_freq=2
  2. 调整PHP-FPM进程:根据服务器资源优化www.conf/etc/php/8.1/fpm/pool.d/www.conf):
    pm = dynamicpm.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 -ysudo certbot --nginx -d yourdomain.com

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

热门栏目