如何在Ubuntu上部署PHP应用服务器
在Ubuntu上部署PHP应用服务器通常采用**LNMP(Linux+Nginx+MySQL+PHP)**架构,以下是详细步骤:
首先确保系统软件包为最新版本,避免兼容性问题:
sudo apt update && sudo apt upgrade -y
Nginx作为高性能HTTP服务器,负责处理静态请求和反向代理:
sudo apt install nginx -y
安装完成后,通过浏览器访问服务器IP地址,若看到Nginx默认欢迎页面,则说明安装成功。
若应用需要数据库支持(如WordPress、Laravel),安装MySQL:
sudo apt install mysql-server -y
运行安全脚本强化MySQL配置(设置root密码、移除匿名用户、禁止远程root登录等):
sudo mysql_secure_installation
PHP-FPM(FastCGI进程管理器)是PHP的高性能处理方案,需安装PHP核心及常用扩展(如MySQL、PDO):
sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring -y
启动PHP-FPM并设置开机自启:
sudo systemctl start php-fpm && sudo systemctl enable php-fpm
编辑Nginx默认站点配置文件(或创建新配置文件,如/etc/nginx/sites-available/yourapp):
sudo nano /etc/nginx/sites-available/default
在server块中添加以下内容,确保Nginx能处理PHP请求:
server {
listen 80;
server_name yourdomain.com; # 替换为你的域名或IP
root /var/www/html; # 应用根目录(可自定义)
index index.php index.html;
location / {
try_files $uri $uri/ =404; # 尝试匹配文件,不存在则返回404
}
location ~ \.php$ {
include snippets/fastcgi-php.conf; # 引入FastCGI配置
fastcgi_pass unix:/run/php/php-fpm.sock; # 与PHP-FPM通信(默认Unix套接字)
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 传递脚本路径
include fastcgi_params; # 包含通用FastCGI参数
}
location ~ /\.ht {
deny all; # 禁止访问.htaccess文件(Apache遗留配置)
}
}
测试Nginx配置语法是否正确:
sudo nginx -t
若无错误,重新加载Nginx使配置生效:
sudo systemctl reload nginx
将应用文件上传至Nginx根目录(如/var/www/html),可使用scp、rsync或FTP工具:
scp -r /local/path/to/your/app user@your_server_ip:/var/www/html
设置正确的文件权限,确保Nginx(www-data用户)能读取应用文件:
sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} \; # 目录权限755
sudo find /var/www/html -type f -exec chmod 644 {} \; # 文件权限644
在应用根目录创建info.php测试文件,验证PHP是否正常工作:
sudo nano /var/www/html/info.php
添加以下内容:
<?php
phpinfo();
?>
保存后,在浏览器访问http://your_server_ip/info.php,若看到PHP信息页面,则说明部署成功。
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按提示操作,Certbot会自动修改Nginx配置以支持HTTPS。sudo apt install ufw -y
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo mysql -u root -p
在MySQL shell中执行:CREATE DATABASE your_app_db;
CREATE USER 'your_app_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON your_app_db.* TO 'your_app_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
然后在应用配置文件(如.env)中填写数据库连接信息。通过以上步骤,你已在Ubuntu上成功部署PHP应用服务器。可根据应用需求调整配置(如PHP版本、扩展、数据库设置等)。