您的位置:首页 >Ubuntu LAMP如何部署PHP应用
发布于2026-04-30 阅读(0)
扫一扫,手机访问

万事开头先打基础。部署的第一步,是把LAMP这套“组合拳”给装好。下面以Ubuntu 20.04或22.04为例,带你走一遍标准流程。需要留意的是,系统仓库里的PHP版本可能随发行版不同而有差异,示例命令里包含了常用的扩展,你可以根据自己项目的实际需要来增减。
打开终端,依次执行以下命令。这组命令会一次性安装Apache、MariaDB、PHP以及一系列常用的PHP扩展。
sudo apt update
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql \
php-cli php-curl php-json php-mbstring php-xml php-zip
安装完成后,得让服务跑起来,并且确保服务器重启后它们能自动启动。
sudo systemctl start apache2 mariadb
sudo systemctl enable apache2 mariadb
对于刚安装的MariaDB,强烈建议运行一下安全配置向导。这个交互式脚本会引导你设置root密码、移除匿名用户、禁止远程root登录等,是提升安全性的第一步。
sudo mysql_secure_installation
为了让Apache正确解析PHP,需要启用对应的PHP模块,并重启服务使其生效。最后,用php -v看一眼版本,确认PHP已就位。
a2enmod php$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
sudo systemctl restart apache2
php -v
走完这几步,一个可用的LAMP基础环境就已经搭建完成了,PHP也能正常工作了。
环境好了,接下来得给应用准备一个“专属数据库”。原则是:为每个应用创建独立的数据库和用户,避免使用root账户直接操作,这样更安全。
首先,用root身份登录MariaDB。然后,在MySQL提示符下执行以下命令。记得把命令里的your_app_db、your_app_user和StrongPassword!替换成你自己设定的数据库名、用户名和强密码。
sudo mysql -u root -p
CREATE DATABASE your_app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'your_app_user'@'localhost' IDENTIFIED BY 'StrongPassword!';
GRANT ALL PRIVILEGES ON your_app_db.* TO 'your_app_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
如果你的项目附带一个SQL备份文件(比如dump.sql),现在就可以把它导入到新建的数据库里了。
mysql -u your_app_user -p your_app_db < /path/to/dump.sql
至此,数据库层面的准备工作就全部完成了,应用已经可以安全地连接数据库并进行数据初始化。
代码放哪里、权限怎么设,这两件事直接关系到应用能否正常运行和安全。一个常见的做法是把代码放在/var/www/目录下。
你可以直接复制代码,或者使用Git克隆仓库。这里以创建/var/www/your_app目录为例。
sudo mkdir -p /var/www/your_app
sudo cp -r /path/to/your_app/. /var/www/your_app/
# 或使用 Git
# sudo git clone https://your-repo.git /var/www/your_app
关键点来了:在Ubuntu上,Apache通常以www-data用户和组运行。因此,我们需要把项目目录的所有权交给它。同时,遵循“最小权限原则”:文件644(读写-只读-只读),目录755(读写执行-只读执行-只读执行)。
sudo chown -R www-data:www-data /var/www/your_app
sudo find /var/www/your_app -type f -exec chmod 644 {} \;
sudo find /var/www/your_app -type d -exec chmod 755 {} \;
# 若应用需要写入(如上传、缓存、日志),仅对相应目录放宽写权限,例如:
# sudo chmod -R 775 /var/www/your_app/storage /var/www/your_app/public/uploads
如果你的PHP项目使用Composer管理依赖,那么还需要在项目根目录下运行安装命令。生产环境记得加上--no-dev选项来跳过开发依赖。
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
cd /var/www/your_app && composer install --optimize-autoloader --no-dev
完成以上操作,就意味着应用代码已经就位,文件权限设置正确,所需的依赖也安装完毕了。
现在,我们需要告诉Apache:“有一个新的网站要托管,这是它的地址和家在哪里。”这就是配置虚拟主机。
绝大多数现代PHP框架(如Lara vel、Symfony)都依赖URL重写来提供友好的路由。所以第一步是启用Apache的rewrite模块。
sudo a2enmod rewrite
在/etc/apache2/sites-a vailable/目录下,为你的应用创建一个新的配置文件,例如your_app.conf。将下面的配置粘贴进去,并替换your_domain.com为你的实际域名,确认DocumentRoot指向你应用的公共目录(通常是public文件夹)。
ServerAdmin webmaster@localhost
ServerName your_domain.com
DocumentRoot /var/www/your_app/public
# 多数框架使用 public 作为根目录
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/your_app_error.log
CustomLog ${APACHE_LOG_DIR}/your_app_access.log combined
启用新站点配置,并禁用默认站点(如果不需要的话,避免端口冲突)。最后,重新加载Apache配置使改动生效。
sudo a2ensite your_app.conf
sudo a2dissite 000-default.conf # 如使用默认站点,建议禁用避免冲突
sudo systemctl reload apache2
经过这番配置,你的应用就已经通过一个独立的域名(或IP)在Apache上安家了,并且支持了URL重写功能。
最后一步,把各个环节串联起来,并做好上线前的检查和加固。
打开你项目的配置文件(例如Lara vel的.env文件),填入之前创建的数据库信息:数据库名(DB_DATABASE)、用户名(DB_USERNAME)、密码(DB_PASSWORD)等。务必确保这里的信息和第二步创建数据库时完全一致。
http://your_domain/,检查应用首页是否能正常显示,核心路由是否工作。sudo tail -f /var/log/apache2/your_app_error.log
sudo tail -f /var/log/apache2/your_app_access.log
为了让应用更健壮、更安全,这里有几个后续可以跟进的建议:
php.ini中,设置display_errors = Off,同时确保log_errors = On。这样既能防止敏感信息泄露给用户,又能让错误记录到日志中供你排查。memory_limit(内存限制)、upload_max_filesize(上传文件大小)和post_max_size(POST数据大小)等参数。sudo apt update && sudo apt upgrade,保持系统和软件包处于最新状态,修复已知漏洞。完成以上所有步骤,你的PHP应用就已经在Ubuntu LAMP环境中完成了从部署、配置到基础加固的全过程,可以准备迎接用户访问了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9