写点什么

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

作者:Damon小智
  • 2025-01-19
    江苏
  • 本文字数:2181 字

    阅读完需:约 7 分钟

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

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



一、系统更新

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


sudo apt updatesudo apt upgrade -y
复制代码



二、安装 Apache

1. 安装 Apache Web 服务器

sudo apt install apache2 -y
复制代码

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

sudo systemctl start apache2sudo systemctl enable apache2
复制代码

3. 验证 Apache 是否正常运行

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



三、安装 MySQL

1. 安装 MySQL 服务器

sudo apt install mysql-server -y
复制代码

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

sudo systemctl start mysqlsudo systemctl enable mysql
复制代码

3. 验证 MySQL 安装

登录 MySQL 以确认安装成功。


sudo mysql -u root -p
复制代码


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

4. 修改初始密码

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

5. 创建库和表

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



四、安装 PHP 及必要模块

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

sudo apt install software-properties-common -ysudo add-apt-repository ppa:ondrej/phpsudo apt update
复制代码

2. 安装 PHP 8.3 和相关模块

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


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 开机自启

sudo systemctl start php8.3-fpmsudo systemctl enable php8.3-fpm
复制代码

4. 验证 PHP 安装

php -v
复制代码


预期输出示例:


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



五、配置 Apache 与 PHP-FPM 集成

1. 启用必要的 Apache 模块

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


sudo a2enmod proxy proxy_fcgi rewrite
复制代码

2. 配置虚拟主机

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


sudo nano /etc/apache2/sites-available/dco.conf
复制代码

3. 编写虚拟主机配置

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


<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 项目目录。

  • <Directory>:允许.htaccess文件覆盖配置,并授予访问权限。

  • <FilesMatch \.php$>:配置 Apache 通过 PHP-FPM 处理 PHP 文件。确保php8.3-fpm.sock路径正确。

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

启用新创建的虚拟主机:


sudo a2ensite dco.conf
复制代码


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


sudo a2dissite 000-default.conf
复制代码

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

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


sudo apache2ctl configtest
复制代码


预期输出:


Syntax OK
复制代码


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


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


sudo systemctl reload apache2
复制代码



六、配置防火墙

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

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

sudo apt install ufw -y
复制代码

2. 允许 Apache 通过防火墙

sudo ufw allow 'Apache Full'
复制代码

3. 启用防火墙

sudo ufw enable
复制代码

4. 检查防火墙状态

sudo ufw status
复制代码


预期输出示例:


Status: active
To Action From-- ------ ----Apache Full ALLOW AnywhereApache Full (v6) ALLOW Anywhere (v6)
复制代码



七、部署 PHP 项目

1. 创建项目目录

sudo mkdir -p /var/www/dco
复制代码

2. 上传项目文件

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

3. 设置文件权限

确保 Apache 用户(www-data)对项目文件有适当的读写权限。这里我直接给全权限。


sudo chmod -R 777 /var/www/dco
复制代码



八、创建测试 PHP 文件

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


sudo nano /var/www/dco/info.php
复制代码


添加以下内容:


<?phpphpinfo();?>
复制代码


保存并退出编辑器。



九、测试访问

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

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


http://39.106.146.13/info.php
复制代码



预期结果:


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

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

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


sudo rm /var/www/dco/info.php
复制代码



十、错误排查

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


  1. Apache 错误日志的相关条目


    sudo tail -n 50 /var/log/apache2/dco.error.log
复制代码


  1. PHP-FPM 错误日志的相关条目


    sudo tail -n 50 /var/log/php8.3-fpm.log    # 或    sudo tail -n 50 /var/log/php8.3-fpm/error.log
复制代码


用户头像

Damon小智

关注

每天进步一点点 2023-07-21 加入

个人开发者

评论

发布
暂无评论
PHP进阶-在Ubuntu上搭建LAMP环境教程_php_Damon小智_InfoQ写作社区