在 CentOS 7 上安装 LNMP 环境:MySQL 8.0、PHP 8.3 和 ThinkPHP 8.0

news2024/12/26 11:47:43

在 CentOS 7 上安装 LNMP 环境,并配置 MySQL 8.0、PHP 8.3 以及 ThinkPHP 8.0,能够为你的 web 应用程序提供一个强大的开发和运行环境。下面是详细的安装步骤:

---

## 在 CentOS 7 上安装 LNMP 环境:MySQL 8.0、PHP 8.3 和 ThinkPHP 8.0

查看本机系统

cat /etc/os-release

### 0. 通过lnmp一键安装

0.1 看到lnmp官网已经支持php8.3,所以打算用一键安装包,下载,按照提示安装

0.2,等到安装最后,发现失败,于是放弃这个方案

卸载命令

cd lnmp2.1/

./uninstall.sh

### 1. 更新系统

确保系统包是最新的:

sudo yum update -y

### 2. 安装 Nginx

Nginx 是高效的 Web 服务器。安装步骤如下:

1. **添加 EPEL 仓库:**

    sudo yum install -y epel-release

2. **安装 Nginx:**

    sudo yum install -y nginx

3. **启动并设置 Nginx 自启动:**

    sudo systemctl start nginx
    sudo systemctl enable nginx

4. **检查 Nginx 状态:**

    sudo systemctl status nginx

### 3. 安装 MySQL 8.0

MySQL 8.0 是一个强大的关系型数据库管理系统。安装步骤如下:

1. **下载并安装 MySQL Yum 仓库:**

    sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

2. **安装 MySQL 8.0:**

    sudo yum install -y mysql-server

3. **启动并设置 MySQL 自启动:**

    sudo systemctl start mysqld
    sudo systemctl enable mysqld

4. **获取临时 root 密码:**

    sudo grep 'temporary password' /var/log/mysqld.log

5. **运行安全配置脚本:**

    sudo mysql_secure_installation

    按照提示设置 root 密码,并完成其他安全设置。

### 4. 安装 PHP 8.3

PHP 8.3 是最新的 PHP 版本。按照以下步骤安装 PHP 8.3:

1. **安装 Remi 仓库:**

    sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

2. **启用 PHP 8.3 仓库:**

    sudo yum-config-manager --enable remi-php83

3. **安装 PHP 8.3 及常用扩展:**

    sudo yum install -y php php-fpm php-mysqlnd php-pdo php-gd php-mbstring php-xml

由于缺少一些扩展,打算单独安装

安装失败的方法    sudo pecl install xmlrpc 

按照提示优化 ,最后还是失败   sudo pecl install channel://pecl.php.net/xmlrpc-1.0.0RC3

最后有效的方法 yum 安装php8.3的xmlrpc依赖:
 

sudo yum install php php-xmlrpc

php -m | grep xmlrpc

soap和bcmath同理
 

sudo yum install php php-soap
php -m | grep soap


sudo yum install php php-bcmath
php -m | grep bcmath

文件地址/etc/php.d

可查看PHP依赖安装配置列表

4. **配置 PHP-FPM:**

    编辑 `/etc/php-fpm.d/www.conf` 文件,将 `user` 和 `group` 设置为 `nginx`:

    ```bash
    sudo nano /etc/php-fpm.d/www.conf
    ```

    修改以下配置:

    ```ini
    user = nginx
    group = nginx
    ```

5. **启动并设置 PHP-FPM 自启动:**

    ```bash
    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm
    ```

6. **检查 PHP-FPM 状态:**

    ```bash
    sudo systemctl status php-fpm
    ```

### 5. 配置 Nginx 支持 PHP

修改 Nginx 配置文件以支持 PHP:

1. **编辑 Nginx 配置文件:**

    ```bash
    sudo nano /etc/nginx/conf.d/default.conf
    ```

2. **修改配置文件,添加 PHP 支持:**

    在 `server` 块中,添加 PHP 支持配置:

    ```nginx
    server {
        listen       80;
        server_name  localhost;

        # Location for PHP files
        location ~ \.php$ {
            root           /usr/share/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }
    ```

3. **测试 Nginx 配置:**

    ```bash
    sudo nginx -t
    ```

    如果没有错误,重新加载 Nginx:

    ```bash
    sudo systemctl reload nginx
    ```

### 6. 安装 ThinkPHP 8.0

ThinkPHP 是一个流行的 PHP 框架。安装步骤如下:

1. **下载 ThinkPHP 8.0:**

    使用 Composer 安装 ThinkPHP 8.0(确保系统上已安装 Composer,如果没有安装,请参见 Composer 官方网站的安装指南):

    ```bash
    cd /usr/share/nginx/html
    composer create-project topthink/think tp
    ```

2. **设置目录权限:**

    ```bash
    sudo chown -R nginx:nginx /usr/share/nginx/html/tp
    ```

3. **测试 ThinkPHP 是否正常工作:**

    在浏览器中访问 `http://your_server_ip/tp/public`,你应该能够看到 ThinkPHP 的欢迎页面。

### 7. 清理测试文件

完成所有测试后,可以删除不必要的测试文件以确保安全:

```bash
sudo rm /usr/share/nginx/html/info.php
```

### 总结

通过以上步骤,你已经在 CentOS 7 上成功安装并配置了 LNMP 环境,包括 MySQL 8.0、PHP 8.3 和 ThinkPHP 8.0。这一组合提供了强大的 Web 开发和运行环境,适用于各种 web 应用程序的开发和部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2085539.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙( Beta5版)开发实战:基于AVCodecKit【音视频解码】

1:场景描述 场景:基于VideoCoder的音视频解码及二次处理播放。 首先导入选择器picker模块,使用PhotoViewPicker方法拉起图库选择视频文件,将视频文件传递到native侧使用Demuxer解封装器进行解封装,再使用OH_VideoDec…

83、 项目的发布和容器的重启策略

0、强制删除 [rootmaster01 ~]# kubectl run --imagenginx:1.22 nginx1 pod/nginx1 created [rootmaster01 ~]# kubectl get pod NAME READY STATUS RESTARTS AGE nginx1 0/1 ContainerCreating 0 1s [rootmaster01 ~]# kubectl delete…

Mysql基础练习题 577.员工奖金 (力扣)

577.编写解决方案,报告每个奖金 少于 1000 的员工的姓名和奖金数额。 建表插入数据: Create table If Not Exists Employee (empId int, name varchar(255), supervisor int, salary int) Create table If Not Exists Bonus (empId int, bonus int) Tr…

Android 查看代码行数(命令行和Statistic插件)

目录 一、命令行 1.1 使用 1.2 结果分析 二、Statistic 2.1 下载 Statistic 插件 2.2 设置 Statistic 插件 2.3 使用 Statistic 插件 相关推荐 一、命令行 find . -name "*.java" -o -name "*.kt" | xargs wc -l find .:从当前目录&am…

基于Material Design风格开源的Avalonia UI控件库

前言 今天大姚给大家分享一款基于Material Design风格开源、免费(MIT License)的Avalonia UI控件库:Material.Avalonia。 当前项目还处于alpha阶段。 Avalonia介绍 Avalonia是一个强大的框架,使开发人员能够使用.NET创建跨平台应…

Prometheus(七):自动发现服务consule

目录 1 consule配置使用1.1 Prometheus 支持的多种服务发现机制1.2 安装1、基于 docker 的 consul 集群 - docker-compose2、单节点cosule安装-docker安装 1.3 使用1、使用接口注册服务2、配置 Prometheus 对接Consul 实现自动服务发现3、使用接口注册服务2-JSON文件4、relabel…

【微信小程序】全局数据共享 - MobX

1. 什么是全局数据共享 2. 小程序中的全局数据共享方案 3.Mobx的使用 1.npm init -y(根据实际情况选择) 在小程序项目中,可以通过 npm 的方式引入 MobX 。 如果你还没有在小程序中使用过 npm ,那先在小程序目录中执行命令: npm init -y2. …

从“输血“到“造血“:“拨改投“政策如何推动产业升级?

在经济发展的浪潮中,“拨改投”政策如同一股清流,以创新之姿重塑了财政资金的传统使用模式。这一政策精髓在于,将财政资金从直接的拨款方式转变为灵活的股权投资方式,不仅激活了市场活力,更引领了产业升级的新风尚。 “…

Windows 10/11降级漏洞的工具包现已发布 仅供安全测试

早前有研究人员在分析 Windows 10/11 更新机制时发现微软虽然已经考虑到潜在的安全问题增加了各种限制,但还是存在失误因此存在弱点,研究人员则通过该弱点成功降级了系统。通过该漏洞不仅可以成功降级系统,同时系统还会认为自己已经完成更新并…

高级算法设计与分析 学习笔记1 递归与分治法 复杂度计算 大数乘法

本章的目录: 排序问题的示例与分析:递归与分治 插入排序: 类似于排序扑克牌。先把第一个元素当成已排序序列,然后把第二个纳入,用一次插入排序,然后将第三个纳入…… 插入排序性能分析 大O表示上界&#x…

云微客一分钟告诉你,为什么要做短视频矩阵?

都说2024年是经济下行的一年,但是要问2024年的营销关键词是什么的话,那一定是:短视频矩阵。短视频矩阵就是在多个短视频平台上建立多个账号,通过矩阵系统发布不同类型的短视频内容,实现品牌曝光、用户引流、粉丝积累等…

探索AI智能问答:改变未来交流的新动力

随着大数据和机器学习的发展,AI智能问答系统已经不仅仅是科幻小说中的幻想,而是正逐步融入我们的日常生活,从客户服务到教育,再到医疗诊断,其应用范围如此之广,让人叹为观止。 一、AI智能问答系统的原理与运…

关于武汉芯景科技有限公司的实时时钟芯片XJ8337开发指南(兼容DS1337)

一、芯片引脚介绍 1.芯片引脚 2.引脚描述 二、系统结构图 三、功能描述 1.时钟功能 2.闹钟功能(两个闹钟) 3.振荡器停止控制 4.频率输出(1HZ、1.096KHZ、8.192KHZ、32.768KHZ) 5.振荡器停止检测 6.闹钟中断标志 四、程序代…

AI模型应该追求全能还是专精

目录 1.概述 2.AI模型的全面评估和比较 2.1. 精度 (Accuracy) 2.2. 速度 (Speed) 2.3. 鲁棒性 (Robustness) 2.4. 可扩展性 (Scalability) 2.5. 解释性/可解释性 (Interpretability) 2.6.应用场景分析 3.AI模型的专精化和可扩展性 3.1. 模型构架选择 3.2. 训练策略 …

sheng的学习笔记-AI-图半监督学习

AI目录:sheng的学习笔记-AI目录-CSDN博客 半监督学习:sheng的学习笔记-AI-半监督学习-CSDN博客 什么是图半监督学习 给定一个数据集,我们可将其映射为一个图,数据集中每个样本对应于图中一个结点,若两个样本之间的相…

mysql的组从复制

1.原理分析 三个线程 1.实际上主从同步的原理就是基于 binlog 进行数据同步的。在主从复制过程中,会基于 3 个线程来操作, 一个主库线程,两个从库线程。 2.二进制日志转储线程( Binlog dump thread )是一个主库线程…

神仙级的免费开源电子书阅读器,还支持听书功能,极空间部署『Koodo Reader』

神仙级的免费开源电子书阅读器,还支持听书功能,极空间部署『Koodo Reader』 哈喽小伙伴们好,我是Stark-C~ 前段时间不是给大家分享的电子书管理工具『TaleBook』嘛~,然后就有粉丝私信我有没有那种专门看电子书的阅读器&#xff…

Qt上传文件小记

最近由于公司上线了云平台,需要用Qt与云平台进行对接,故拾起了network模块。 众所周知Qt网络http相关的类QNetworkAccessManager发挥着举足轻重的作用。 普通的http:GET POST PUT DELETE已经耳熟能详,网上也有很多的文章有介绍到…

如何限制企业内部文件外发?告别文件泄露,七大招数限制企业内部文件外发!

如何限制企业内部文件外发,告别文件泄露!文件一旦外泄,不仅可能泄露商业机密,还可能对企业的声誉和利益造成重大损害。 因此,如何有效限制企业内部文件外发,成为了每个企业必须面对和解决的问题。以下七大…

Vue 3 CLI TypeScript 项目搭建全攻略

一、前期准备 在搭建 Vue 3 CLI TypeScript 项目之前,我们需要做好一系列的准备工作。 首先,Node.js 是必不可少的运行环境。Vue 3 CLI 要求 Node.js 的版本至少为 8.9 以上。您可以从Node.js 官方网站下载最新的长期支持(LTS)版…