本教程详解在Linux系统中构建高效Web服务的方法,涵盖Nginx、PHP、MySQL及Redis的安装与配置流程,助力快速创建稳定的应用程序运行平台。
### Web环境搭建:Linux+Nginx+PHP+MySQL+Redis
#### 一、环境概述与推荐版本
在构建一个高效且稳定的商城系统时,选择合适的Web环境至关重要。本指南将介绍一套广泛应用于电商平台的技术栈——**Ubuntu + PHP + Nginx + MySQL + Redis**。这些技术组合在一起可以为您的商城系统提供强大的性能支持。
- **Ubuntu**: 作为操作系统的基础,推荐使用最新的稳定版本,目前推荐使用 Ubuntu 20.04。
- **PHP**: 高性能的脚本语言,适用于开发动态网页应用程序。推荐使用 PHP 7.4 版本。
- **Nginx**: 轻量级高性能的Web服务器反向代理服务器。推荐使用 Nginx 1.18。
- **MySQL**: 强大的关系型数据库管理系统。推荐使用 MySQL 8.0。
- **Redis**: 高性能的键值存储数据库,可用于缓存、队列等多种场景。推荐使用 Redis 5.0。
#### 二、软件安装
##### 安装Ubuntu
Ubuntu 的安装相对简单,通常在购买云服务器时可以选择预装的操作系统环境。如果需要在本地虚拟机上安装 Ubuntu,则可以通过官网下载相应的 ISO 文件进行安装。
完成安装后,通过 SSH 进行远程管理。
##### 安装Nginx
Nginx 是一款轻量级的Web 服务器,可以轻松地进行以下操作:
```bash
sudo apt-get update
sudo apt-get install nginx
```
Nginx 的网站目录位于 `var/www/html`,而网站配置文件则位于 `/etc/nginx/sites-available/default`。常用命令如下:
- `sudo service nginx start` 启动服务。
- `sudo service nginx status` 查看启动状态。
- `sudo systemctl enable nginx.service` 开机自动启动。
- `sudo systemctl disable nginx.service` 禁止开机自动启动。
- `sudo service nginx stop` 停止服务。
- `sudo service nginx restart` 重启服务。
##### 安装PHP
安装指定版本的 PHP 及其相关扩展:
```bash
sudo apt-get install software-properties-common python-software-properties
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.4 php7.4-fpm php7.4-mysql php7.4-redis
```
启动 PHP-FPM 服务:
```bash
sudo service php7.3-fpm start
```
配置 Nginx 使用 PHP,通常只需要修改 Nginx 的配置文件即可。
##### 安装MySQL
安装 MySQL 数据库管理系统(用于存储商城系统中的各种数据):
```bash
sudo apt-get install mysql-server mysql-client
```
启动和管理 MySQL 服务:
- `sudo service mysql start` 启动。
- `sudo service mysql status` 查看状态。
- `sudo systemctl enable mysql.service` 开机自动启动。
- `sudo systemctl disable mysql.service` 禁止开机自动启动。
- `sudo service mysql stop` 停止服务。
- `sudo service mysql restart` 重启服务。
##### 安装Redis
安装 Redis 高性能键值存储数据库:
```bash
sudo apt-get install redis-server
```
启动 Redis:
```bash
redis-server
```
#### 三、环境配置与测试
创建一个 PHP 文件,输出 `phpinfo()`,检查是否已经成功加载了必要的扩展。如果没有,则需要手动修改 PHP 的配置文件。
编辑 `/etc/php/7.3/fpm/php.ini` 配置:
```bash
sudo vim /etc/php/7.4/fpm/php.ini
```
#### 四、常见问题及解决方案
##### 1. php-fpm 并发进程满
现象:PHP服务挂掉,查看错误日志显示 `WARNING: [pool www] server reached pm.max_children setting (5), consider raising it`。
原因分析:php-fpm并发进程满了,需要修改配置文件中的相关参数来调整最大子进程数、启动初始进程数等设置以提高性能和稳定性。
解决方案:编辑 `/etc/php/7.4/fpm/pool.d/www.conf` 文件并进行如下更改:
- `pm.max_children = 30`
- `pm.start_servers = 10`
- `pm.min_spare_servers = 10`
- `pm.max_spare_servers = 24`
- `pm.max_requests = 500`
最后,重启 php-fpm服务使配置生效:
```bash
sudo service php7.3-fpm restart
```
##### 2. PHPStorm 连接远程服务器
在没有服务器管理权限的情况下,可以通过提供服务器SSH连接使用的私钥文件来实现。例如:
- 用户名:u
- 私钥路径: