首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP进阶-在Ubuntu上搭建LAMP环境教程

PHP进阶-在Ubuntu上搭建LAMP环境教程

原创
作者头像
Damon小智
修改2025-01-24 07:34:07
修改2025-01-24 07:34:07
4474
举报
文章被收录于专栏:PHPPHPLinux

本文将为您提供一个在Ubuntu服务器上搭建LAMP(Linux, Apache, MySQL, PHP)环境的完整指南。通过本文,您将学习如何安装和配置Apache、MySQL、PHP,并将您的PHP项目部署到服务器上。本文适用于Ubuntu 20.04及更高版本。

一、系统更新

在开始之前,确保您的系统软件包是最新的。

代码语言:bash
复制
sudo apt update
sudo apt upgrade -y

二、安装Apache

1. 安装Apache Web服务器

代码语言:bash
复制
sudo apt install apache2 -y

2. 启动并设置Apache开机自启

代码语言:bash
复制
sudo systemctl start apache2
sudo systemctl enable apache2

3. 验证Apache是否正常运行

在浏览器中访问 http://<您的服务器IP>/,应显示Apache默认的欢迎页面。如果无法访问,请检查防火墙设置(后续步骤将涵盖防火墙配置)。


三、安装MySQL

1. 安装MySQL服务器

代码语言:bash
复制
sudo apt install mysql-server -y

2. 启动并设置MySQL开机自启

代码语言:bash
复制
sudo systemctl start mysql
sudo systemctl enable mysql

3. 验证MySQL安装

登录MySQL以确认安装成功。

代码语言:bash
复制
sudo mysql -u root -p

MySQL默认密码是root,直接登录即可。

4. 修改初始密码

代码语言:bash
复制
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

5. 创建库和表

这里我们用SQL语句把项目需要的数据库建好即可。


四、安装PHP及必要模块

1. 添加Ondřej Surý的PHP PPA(提供最新的PHP版本)

代码语言:bash
复制
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php
sudo apt update

2. 安装PHP 8.3和相关模块

这里以8.3为例,其他版本只需要替换这个版本号。

代码语言:bash
复制
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

其中,PHP FastCGI Process Manager,用于与Apache配合。

3. 启动并设置PHP-FPM开机自启

代码语言:bash
复制
sudo systemctl start php8.3-fpm
sudo systemctl enable php8.3-fpm

4. 验证PHP安装

代码语言:bash
复制
php -v

预期输出示例:

代码语言:bash
复制
PHP 8.3.0 (cli) (built: ...)

五、配置Apache与PHP-FPM集成

1. 启用必要的Apache模块

确保启用了proxyproxy_fcgirewrite模块,这对于PHP-FPM的集成和URL重写非常重要。

代码语言:bash
复制
sudo a2enmod proxy proxy_fcgi rewrite

2. 配置虚拟主机

创建一个新的Apache虚拟主机配置文件,例如dco.conf

代码语言:bash
复制
sudo nano /etc/apache2/sites-available/dco.conf

3. 编写虚拟主机配置

将以下内容粘贴到dco.conf文件中:

代码语言:apache
复制
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot xxxxx 

    ServerName xx.xxx.xxx.xxx 

    <Directory /var/www/dco>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/dco.error.log
    CustomLog ${APACHE_LOG_DIR}/dco.access.log combined

    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
    </FilesMatch>
</VirtualHost>

说明:

  • ServerName:设置为您的服务器IP地址。
  • DocumentRoot:指向您的PHP项目目录。 如果没创建,要 sudo mkdir -p xxxxxx 创建目录。
  • <Directory> :允许.htaccess文件覆盖配置,并授予访问权限。
  • <FilesMatch \.php$> :配置Apache通过PHP-FPM处理PHP文件。确保php8.3-fpm.sock路径正确。

4. 启用虚拟主机并禁用默认配置

启用新创建的虚拟主机:

代码语言:bash
复制
sudo a2ensite dco.conf

禁用默认虚拟主机(可选,但推荐以避免配置冲突):

代码语言:bash
复制
sudo a2dissite 000-default.conf

5. 测试Apache配置并重新加载

测试配置文件语法是否正确:

代码语言:bash
复制
sudo apache2ctl configtest

预期输出:

代码语言:bash
复制
Syntax OK

这里warning不用管,显示 Syntax OK 即可。

重新加载Apache服务以应用更改:

代码语言:bash
复制
sudo systemctl reload apache2

六、配置防火墙

确保服务器防火墙允许HTTP(80)和HTTPS(443)流量。

1. 安装UFW(如果尚未安装)

代码语言:bash
复制
sudo apt install ufw -y

2. 允许Apache通过防火墙

代码语言:bash
复制
sudo ufw allow 'Apache Full'

3. 启用防火墙

代码语言:bash
复制
sudo ufw enable

4. 检查防火墙状态

代码语言:bash
复制
sudo ufw status

预期输出示例:

代码语言:bash
复制
Status: active

To                         Action      From
--                         ------      ----
Apache Full                ALLOW       Anywhere
Apache Full (v6)           ALLOW       Anywhere (v6)

七、部署PHP项目

1. 创建项目目录

代码语言:bash
复制
sudo mkdir -p /var/www/dco

2. 上传项目文件

将您的PHP项目文件上传到服务器上的 /var/www/dco 目录。

3. 设置文件权限

确保Apache用户(www-data)对项目文件有适当的读写权限。

这里我直接给全权限。

代码语言:bash
复制
sudo chmod -R 777 /var/www/dco

八、创建测试PHP文件

为了确认PHP是否正常工作,创建一个简单的 info.php 文件进行测试。

代码语言:bash
复制
sudo nano /var/www/dco/info.php

添加以下内容:

代码语言:php
复制
<?php
phpinfo();
?>

保存并退出编辑器。


九、测试访问

1. 在浏览器中访问测试文件

打开浏览器,访问以下URL:

代码语言:bash
复制
http://124.221.49.91/info.php

预期结果:

  • 显示PHP配置信息页面,包含PHP版本、已安装的模块等信息。

2. 删除测试文件(安全性考虑)

测试完成后,建议删除 info.php 文件以防止泄露服务器信息。

代码语言:bash
复制
sudo rm /var/www/dco/info.php

十、错误排查

如果按照上述步骤操作后仍然无法解决问题,可以去查看各块的日志:

  1. Apache错误日志的相关条目
代码语言:bash
复制
sudo tail -n 50 /var/log/apache2/dco.error.log
  1. PHP-FPM错误日志的相关条目
代码语言:bash
复制
sudo tail -n 50 /var/log/php8.3-fpm.log
# 或
sudo tail -n 50 /var/log/php8.3-fpm/error.log

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、系统更新
  • 二、安装Apache
    • 1. 安装Apache Web服务器
    • 2. 启动并设置Apache开机自启
    • 3. 验证Apache是否正常运行
  • 三、安装MySQL
    • 1. 安装MySQL服务器
    • 2. 启动并设置MySQL开机自启
    • 3. 验证MySQL安装
    • 4. 修改初始密码
    • 5. 创建库和表
  • 四、安装PHP及必要模块
    • 1. 添加Ondřej Surý的PHP PPA(提供最新的PHP版本)
    • 2. 安装PHP 8.3和相关模块
    • 3. 启动并设置PHP-FPM开机自启
    • 4. 验证PHP安装
  • 五、配置Apache与PHP-FPM集成
    • 1. 启用必要的Apache模块
    • 2. 配置虚拟主机
    • 3. 编写虚拟主机配置
    • 4. 启用虚拟主机并禁用默认配置
    • 5. 测试Apache配置并重新加载
  • 六、配置防火墙
    • 1. 安装UFW(如果尚未安装)
    • 2. 允许Apache通过防火墙
    • 3. 启用防火墙
    • 4. 检查防火墙状态
  • 七、部署PHP项目
    • 1. 创建项目目录
    • 2. 上传项目文件
    • 3. 设置文件权限
  • 八、创建测试PHP文件
  • 九、测试访问
    • 1. 在浏览器中访问测试文件
    • 2. 删除测试文件(安全性考虑)
  • 十、错误排查
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档