LAMP (Linux, Apache, MySQL, PHP) 是部署PHP应用的经典环境组合。以下是详细的部署步骤:
确保你有一个运行Linux的服务器,并具有管理员权限。
sudo apt update
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
sudo yum install httpd mariadb-server php php-mysqlnd
sudo systemctl start httpd mariadb
sudo systemctl enable httpd mariadb
确保Apache正在运行:
sudo systemctl status apache2 # Ubuntu/Debian
sudo systemctl status httpd # CentOS/RHEL
设置Apache启动时自动运行:
sudo systemctl enable apache2
创建配置文件:
sudo nano /etc/apache2/sites-available/yourdomain.conf
添加以下内容(根据实际情况修改):
<VirtualHost *:80>
ServerAdmin admin@yourdomain.com
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/yourdomain/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/yourdomain/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
启用站点并重载Apache:
sudo a2ensite yourdomain.conf
sudo systemctl reload apache2
运行安全安装脚本:
sudo mysql_secure_installation
登录MySQL并创建数据库和用户:
sudo mysql -u root -p
CREATE DATABASE app_db;
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
将应用文件上传到web目录:
sudo mkdir -p /var/www/yourdomain/public_html
sudo chown -R $USER:$USER /var/www/yourdomain/public_html
# 上传你的PHP文件到此目录
设置正确的权限:
sudo chown -R www-data:www-data /var/www/yourdomain/public_html
sudo find /var/www/yourdomain/public_html -type d -exec chmod 755 {} \;
sudo find /var/www/yourdomain/public_html -type f -exec chmod 644 {} \;
根据应用需求安装额外扩展:
sudo apt install php-curl php-gd php-mbstring php-xml php-zip # Ubuntu/Debian
sudo yum install php-curl php-gd php-mbstring php-xml php-zip # CentOS/RHEL
编辑php.ini文件:
sudo nano /etc/php/7.x/apache2/php.ini # 路径和版本可能不同
常见需要修改的配置:
upload_max_filesize = 32M
post_max_size = 48M
memory_limit = 256M
max_execution_time = 300
date.timezone = Asia/Shanghai
重启Apache使更改生效:
sudo systemctl restart apache2
创建测试PHP文件:
echo "<?php phpinfo(); ?>" > /var/www/yourdomain/public_html/info.php
在浏览器访问:http://yourdomain.com/info.php
,应显示PHP信息页面
测试MySQL连接:
<?php
$conn = new mysqli('localhost', 'app_user', 'secure_password', 'app_db');
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
$conn->close();
?>
删除测试文件:
rm /var/www/yourdomain/public_html/info.php
配置防火墙:
sudo ufw allow 'Apache Full' # Ubuntu/Debian
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload # CentOS/RHEL
考虑安装SSL证书(如Let's Encrypt):
sudo apt install certbot python3-certbot-apache # Ubuntu/Debian
sudo certbot --apache
根据你的PHP应用需求,可能还需要:
- 配置.htaccess
文件
- 设置cron作业
- 配置应用特定的环境变量
- 安装Composer依赖
通过以上步骤,你的PHP应用应该已经在LAMP环境中成功部署并运行。