当前位置: 首页 > news >正文

服务器上PHP环境安装与更新版本和扩展(安装PHP、Nginx、Redis、Swoole和OPcache)

#### 一、前言
LNMP(Linux + Nginx + MySQL + PHP)是一种常见的Web服务器环境搭建方案。本文将详细介绍如何在Linux服务器上使用LNMP搭建PHP环境,并安装与更新PHP版本和相关扩展(包括Redis、Swoole和OPcache),以提高网站性能和系统效率。

#### 二、前期准备
1. **操作系统**:本文以CentOS 7为例进行讲解。
2. **安装工具**:yum、wget、git、gcc等。

确保服务器已安装`wget`、`git`和`gcc`,如果没有可以执行以下命令安装:

```bash
sudo yum install wget git gcc -y
```

#### 三、安装步骤

##### 1. **安装Nginx**
Nginx是高性能的HTTP和反向代理服务器,能够处理大量并发请求。

```bash
# 安装Nginx
sudo yum install epel-release -y
sudo yum install nginx -y

# 启动Nginx服务
sudo systemctl start nginx

# 设置开机自启
sudo systemctl enable nginx
```

验证Nginx是否安装成功:
```bash
curl http://localhost
```
如果返回Nginx的欢迎页面,说明安装成功。

##### 2. **安装MySQL(MariaDB)**
PHP通常需要数据库来存储数据。这里安装MariaDB作为MySQL的替代品。

```bash
# 安装MariaDB
sudo yum install mariadb-server mariadb -y

# 启动MariaDB服务
sudo systemctl start mariadb

# 设置开机自启
sudo systemctl enable mariadb

# 配置MariaDB
sudo mysql_secure_installation
```

##### 3. **安装PHP**
PHP是LNMP栈中的关键组成部分。我们通过`remi`仓库来安装最新的PHP版本。

1. **启用Remi仓库**
```bash
sudo yum install -y yum-utils
sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install -y epel-release
sudo yum install -y yum-utils
```

2. **安装最新的PHP版本**
```bash
sudo yum install -y php php-fpm php-mysqlnd php-cli php-opcache php-redis php-swoole php-xml php-mbstring php-json
```

3. **配置PHP-FPM**
```bash
# 启动PHP-FPM
sudo systemctl start php-fpm

# 设置开机自启
sudo systemctl enable php-fpm
```

4. **验证PHP版本**
```bash
php -v
```

##### 4. **安装Redis**
Redis是一个高性能的键值数据库,通常用于缓存。

```bash
# 安装Redis
sudo yum install redis -y

# 启动Redis服务
sudo systemctl start redis

# 设置开机自启
sudo systemctl enable redis
```

##### 5. **安装Swoole**
Swoole是一个高性能的PHP协程引擎,用于实现高并发的Web应用程序。

1. **安装Swoole扩展**
```bash
# 安装PHP开发工具和依赖
sudo yum install php-devel gcc libtool -y

# 使用pecl安装Swoole扩展
sudo pecl install swoole
```

2. **配置PHP以加载Swoole扩展**
```bash
# 编辑php.ini文件
sudo vi /etc/php.ini

# 在文件末尾添加:
extension=swoole.so
```

3. **重启PHP-FPM**
```bash
sudo systemctl restart php-fpm
```

##### 6. **启用OPcache**
OPcache是PHP的一个缓存扩展,用于加速PHP脚本执行。

1. **编辑PHP配置文件以启用OPcache**
```bash
sudo vi /etc/php.ini

# 添加或修改以下配置
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
```

2. **重启PHP-FPM**
```bash
sudo systemctl restart php-fpm
```

#### 四、配置Nginx与PHP-FPM的连接
1. **修改Nginx配置文件**
```bash
sudo vi /etc/nginx/nginx.conf
```

确保在`server`块中添加以下配置:
```nginx
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
```

2. **重新加载Nginx**
```bash
sudo systemctl reload nginx
```

#### 五、验证环境是否搭建成功
1. **创建PHP测试文件**
```bash
sudo vi /usr/share/nginx/html/info.php
```

在文件中添加以下内容:
```php
<?php
phpinfo();
?>
```

2. **访问PHP信息页面**
在浏览器中访问`http://your-server-ip/info.php`,如果显示PHP信息页面,说明PHP环境已成功搭建。

#### 六、更新PHP版本(如果需要)
1. **卸载旧版本PHP**
```bash
sudo yum remove php*
```

2. **安装新版本PHP**
按照上面的步骤,使用Remi仓库安装需要的PHP版本和扩展。

#### 七、总结
通过以上步骤,我们成功地在Linux服务器上搭建了LNMP环境,并安装了PHP、Nginx、Redis、Swoole和OPcache。该环境可以满足高并发Web应用的需求,提供更好的性能和稳定性。定期更新PHP版本和相关扩展,有助于提升服务器的安全性和性能。

http://www.lryc.cn/news/589170.html

相关文章:

  • 26.将 Python 列表拆分为多个小块
  • 22.计算指定范围内数字的幂次和
  • 【c++】在const成员函数中使用mutex
  • CCF-GESP 等级考试 2025年6月认证Python四级真题解析
  • 【时时三省】(C语言基础)通过指针引用多维数组
  • mac上的app如何自动分类
  • MongoDB 数据库 启用访问控制
  • GitHub 上 Star 数量前 8 的开源 Web 应用项目
  • AI大模型开发架构设计(22)——LangChain的大模型架构案例实战
  • 飞搭系列 | 子事件流节点,让逻辑复用更简单!
  • error: #147: declaration is incompatible with错误解决
  • 从OSI到TCP/IP:Linux网络架构深度解析
  • 【15】MFC入门到精通——MFC弹窗提示 MFC关闭对话框 弹窗提示 MFC按键触发 弹窗提示
  • OpenCV图像自动缩放(Autoscaling)函数autoscaling()
  • 如何加固Web服务器的安全?
  • Volo-HTTP 0.4.0发布:正式支持 HTTP/2,客户端易用性大幅提升!
  • python学习---dayday6
  • AbMole小课堂 | Angiotensin II(血管紧张素Ⅱ)在心血管研究中的多元应用
  • Kimi-K2与DeepSeek-Chat全面对比:哪款AI大模型更强?
  • 【Python】定时器快速实现
  • React响应式组件范式:从类组件到Hooks
  • 嵌入式开发学习(第二阶段 C语言笔记)
  • 文心4.5开源背后的战略棋局:百度为何选择All in开放?
  • Python_1
  • xss-labs 1-8关
  • 零信任安全架构:如何在云环境中重构网络边界?
  • kotlin布局交互
  • 响应式编程入门教程第三节:ReactiveCommand 与 UI 交互
  • IDEA中删除多余的jdk选项 【IDEA2024版】
  • 数仓面试题