ubuntu lamp如何部署项目
导读:Ubuntu LAMP环境部署与项目上线指南 LAMP(Linux + Apache + MySQL + PHP)是经典的Web开发环境组合,适用于搭建动态网站或Web应用。以下是在Ubuntu系统上部署LAMP环境并上线项目的详细步骤:...
Ubuntu LAMP环境部署与项目上线指南
LAMP(Linux + Apache + MySQL + PHP)是经典的Web开发环境组合,适用于搭建动态网站或Web应用。以下是在Ubuntu系统上部署LAMP环境并上线项目的详细步骤:
一、前期准备
-
更新系统软件包:确保系统所有组件为最新版本,避免兼容性问题。
sudo apt update & & sudo apt upgrade -y
-
安装基础工具(可选但推荐):便于后续文件编辑和网络诊断。
sudo apt install vim net-tools -y
二、安装与配置Apache(Web服务器)
- 安装Apache:
sudo apt install apache2 -y
- 启动服务并设置开机自启:
sudo systemctl start apache2 sudo systemctl enable apache2
- 验证Apache运行状态:
- 浏览器访问
http://< 服务器IP>
,若看到Apache默认欢迎页面(如“It Works!”),则说明安装成功。 - 检查服务状态:
若显示“active (running)”,则表示服务正常运行。sudo systemctl status apache2
- 浏览器访问
三、安装与配置MySQL(数据库服务器)
- 安装MySQL:
sudo apt install mysql-server -y
- 运行安全加固脚本:
执行以下命令设置root密码、删除匿名用户、禁止root远程登录等:sudo mysql_secure_installation
- 按提示输入当前root密码(安装时设置的密码),然后设置新密码(建议包含大小写字母、数字和特殊字符)。
- 选择“Yes”删除匿名用户、禁止root远程登录、删除测试数据库。
- 登录MySQL并创建项目数据库:
sudo mysql -u root -p
- 输入密码后进入MySQL命令行。
- 创建数据库(如
myproject_db
):CREATE DATABASE myproject_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 创建专用用户并授权(避免使用root账户):
CREATE USER 'myproject_user'@'localhost' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON myproject_db.* TO 'myproject_user'@'localhost'; FLUSH PRIVILEGES;
- 退出MySQL:
EXIT;
四、安装与配置PHP(服务器端脚本语言)
- 安装PHP及常用模块:
为兼容最新特性,建议添加Ondřej Surý的PHP PPA(提供较新的PHP版本,如8.3):sudo apt install software-properties-common -y sudo add-apt-repository ppa:ondrej/php -y sudo apt update sudo apt install php8.3 php8.3-fpm php8.3-mysql php8.3-xml php8.3-curl php8.3-mbstring php8.3-zip php8.3-gd -y
php8.3-fpm
:PHP FastCGI进程管理器,提升Apache与PHP的交互性能。php8.3-mysql
:MySQL数据库驱动,用于PHP连接MySQL。
- 启动PHP-FPM并设置开机自启:
sudo systemctl start php8.3-fpm sudo systemctl enable php8.3-fpm
- 配置Apache支持PHP:
- 启用必要的Apache模块(用于处理PHP请求和URL重写):
sudo a2enmod proxy proxy_fcgi rewrite
- 重启Apache使模块生效:
sudo systemctl restart apache2
- 启用必要的Apache模块(用于处理PHP请求和URL重写):
- 验证PHP安装:
- 在Apache默认根目录创建
info.php
文件:sudo nano /var/www/html/info.php
- 输入以下内容并保存:
< ?php phpinfo(); ?>
- 浏览器访问
http://< 服务器IP> /info.php
,若看到PHP详细信息页面(如版本、模块列表),则说明PHP配置成功。
- 在Apache默认根目录创建
五、部署项目文件
- 上传项目文件:
将本地项目文件(如WordPress、自定义PHP项目)上传至Apache默认根目录/var/www/html
(或自定义虚拟主机目录)。- 使用FTP/SFTP工具(如FileZilla):连接服务器后,将本地项目文件夹拖至
/var/www/html
。 - 使用SCP命令(命令行):
scp -r /local/project/path username@server_ip:/var/www/html/
- 使用FTP/SFTP工具(如FileZilla):连接服务器后,将本地项目文件夹拖至
- 设置文件权限:
确保Apache用户(www-data
)对项目文件有读写权限:sudo chown -R www-data:www-data /var/www/html sudo chmod -R 755 /var/www/html
chown
:将文件所有者改为www-data
(Apache运行用户)。chmod
:设置目录权限为755(所有者可读写执行,其他用户可读执行),文件权限为644(所有者可读写,其他用户可读)。
六、配置虚拟主机(可选,适用于多站点)
若需部署多个项目(如example1.com
和example2.com
),可通过虚拟主机隔离配置:
- 创建虚拟主机配置文件:
sudo nano /etc/apache2/sites-available/myproject.conf
- 添加以下内容(替换
myproject.com
为你的域名或IP,/var/www/myproject
为项目目录):< VirtualHost *:80> ServerAdmin admin@example.com ServerName myproject.com ServerAlias www.myproject.com DocumentRoot /var/www/myproject/public_html ErrorLog ${ APACHE_LOG_DIR} /myproject_error.log CustomLog ${ APACHE_LOG_DIR} /myproject_access.log combined < /VirtualHost>
DocumentRoot
:指定项目根目录(需提前创建,如/var/www/myproject/public_html
)。ServerName
:主域名;ServerAlias
:别名(如www
前缀)。
- 启用虚拟主机并禁用默认配置:
sudo a2ensite myproject.conf sudo a2dissite 000-default.conf
- 重启Apache应用配置:
sudo systemctl restart apache2
- 测试访问:
浏览器访问http://myproject.com
(需确保域名已解析至服务器IP),若看到项目页面,则说明虚拟主机配置成功。
七、配置防火墙(可选,提升安全性)
若系统启用了ufw
防火墙,需允许HTTP(端口80)和HTTPS(端口443)流量:
sudo ufw allow 'Apache Full'
sudo ufw reload
Apache Full
:包含HTTP(80)和HTTPS(443)端口。- 若需仅允许HTTP,可使用:
sudo ufw allow 80/tcp
八、常见问题排查
- 无法访问项目页面:
- 检查Apache服务是否运行:
sudo systemctl status apache2
。 - 检查防火墙设置:
sudo ufw status
(确保允许HTTP/HTTPS)。 - 检查项目文件权限:
ls -l /var/www/html
(确保www-data
用户有读写权限)。
- 检查Apache服务是否运行:
- PHP页面无法解析:
- 检查
php8.3-fpm
服务是否运行:sudo systemctl status php8.3-fpm
。 - 检查Apache是否加载了PHP模块:
apache2ctl -M | grep proxy_fcgi
(应显示proxy_fcgi_module
)。
- 检查
- MySQL连接失败:
- 检查MySQL服务是否运行:
sudo systemctl status mysql
。 - 检查项目配置文件中的数据库连接信息(用户名、密码、数据库名)是否正确。
- 检查MySQL服务是否运行:
通过以上步骤,你可在Ubuntu系统上成功部署LAMP环境并上线项目。根据项目需求,还可进一步优化配置(如调整PHP内存限制、开启MySQL慢查询日志、配置HTTPS等)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu lamp如何部署项目
本文地址: https://pptw.com/jishu/715981.html