Ubuntu LAMP部署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
sudo mysql_secure_installation
a2enmod php$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
sudo systemctl restart apache2
php -v
二 数据库创建与导入
sudo mysql -u root -p
在 MySQL 提示符下执行: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;
mysql -u your_app_user -p your_app_db < /path/to/dump.sql
以上完成数据库与权限配置,便于应用安全连接与数据初始化。三 部署应用与目录权限
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
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
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 与虚拟主机
sudo a2enmod rewrite
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName your_domain.com
DocumentRoot /var/www/your_app/public # 多数框架使用 public 作为根目录
<Directory /var/www/your_app/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/your_app_error.log
CustomLog ${APACHE_LOG_DIR}/your_app_access.log combined
</VirtualHost>
sudo a2ensite your_app.conf
sudo a2dissite 000-default.conf # 如使用默认站点,建议禁用避免冲突
sudo systemctl reload apache2
以上完成基于域名的站点隔离与 URL 重写支持。五 应用配置 测试与安全加固
sudo tail -f /var/log/apache2/your_app_error.log
sudo tail -f /var/log/apache2/your_app_access.log
display_errors = Off,log_errors = On)。memory_limit、upload_max_filesize、post_max_size)以匹配应用需求。sudo apt update && sudo apt upgrade)。