如何编译安装LNMP环境

news/2024/11/8 4:15:21 标签: linux

LNMP 是 Linux、Nginx、MySQL 和 PHP 的组合,是一种流行的 Web 服务环境。以下是如何在一个典型的 Linux 系统(如 Ubuntu 或 CentOS)上编译安装 LNMP 环境的详细步骤:

1. 准备工作

确保你的系统是最新的,并安装一些必要的工具和库。

# 对于 Ubuntu/Debian
sudo apt update
sudo apt install build-essential libssl-dev libpcre3 libpcre3-dev zlib1g-dev unzip

# 对于 CentOS/RHEL
sudo yum update
sudo yum groupinstall "Development Tools"
sudo yum install pcre-devel zlib-devel openssl-devel wget

2. 安装 Nginx

  1. 下载 Nginx 源码

    cd /usr/local/src
    wget http://nginx.org/download/nginx-1.22.0.tar.gz # 请根据需要更改版本号
    tar -zxvf nginx-1.22.0.tar.gz
    cd nginx-1.22.0
    
  2. 编译和安装

    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre
    make && sudo make install
    
  3. 启动 Nginx

    sudo /usr/local/nginx/sbin/nginx 
    
  4. 检查是否正常运行

    在浏览器中访问 http://your_server_ip/,应该看到 Nginx 的欢迎页面。

3. 安装 MySQL

  1. 下载 MySQL 源码

    cd /usr/local/src 
    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.x.tar.gz # 请根据需要更改版本号 
    tar -zxvf mysql-8.0.x.tar.gz 
    cd mysql-8.0.x/
    
  2. 创建用户和目录

    sudo useradd -r -s /bin/false mysql 
    mkdir /data/mysql 
    chown mysql:mysql /data/mysql 
    
  3. 编译和安装

    cmake . -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost/ \
             -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
             -DMYSQL_DATADIR=/data/mysql/data \
             -DDEFAULT_CHARSET=utf8mb4 \
             -DDEFAULT_COLLATION=utf8mb4_general_ci 
    
    make && sudo make install 
    
  4. 初始化数据库并启动 MySQL

    sudo cp support-files/my-default.cnf /etc/my.cnf  
    sudo bin/mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/data  
    
    sudo cp support-files/mysql.server /etc/init.d/mysql  
    sudo service mysql start 
    
  5. 设置 root 密码并登录 MySQL

    /usr/local/mysql/bin/mysql_secure_installation  
    
     # 按照提示设置密码并进行安全配置。
     
     # 登录:
     /usr/local/mysql/bin/mysql -u root -p  
    

4. 安装 PHP

  1. 下载 PHP 源码

    cd /usr/local/src   
    wget https://www.php.net/distributions/php-8.x.x.tar.gz # 请根据需要更改版本号    
    tar -zxvf php-8.x.x.tar.gz    
    cd php-8.x.x    
    
  2. 编译和安装 PHP-FPM 与必要模块:

./configure --prefix=/usr/local/php \
            --with-config-file-path=/usr/local/php \
            --enable-fpm \
            --with-mysqli=/usr/local/mysql/bin/mysqli_config \
            --with-pdo-mysql=mysqlnd \            
            --enable-mbstring \            
            --with-openssl   

make && sudo make install  

# 启动 php-fpm:
sudo cp sapi/fpm/php-fpm.conf /usr/local/php/etc/  
sudo cp sapi/fpm/www.conf.in  sapi/fpm/www.conf  

/usr/local/php/sbin/php-fpm  

5. 配置 Nginx 支持 PHP

修改 /usr/local/nginx/conf/nginx.conf 文件,在 server 块中添加如下配置,以支持 .php 文件。

location ~ \.(php)$ {     
        include fastcgi_params;    
        fastcgi_pass 127.0.0.1:9000;     
        fastcgi_index index.php;     
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;      
}      

index index.html index.htm index.php;          

重启 Nginx。

sudo /usr/local/nginx/sbin/nginx -s reload      

6. 测试 LNMP 环境

/var/www/html 下创建一个 info.php 文件,内容如下:

<?php phpinfo(); ?>      

然后在浏览器中访问 http://your_server_ip/info.php,如果看到 PHP 信息页面,则表示 LNMP 环境成功搭建完成!

资料参考:https://github.com/0voice


http://www.niftyadmin.cn/n/5743215.html

相关文章

驱动-----中断底半部

之前处理中断在中断服务程序里面&#xff0c;就是我们自己注册了一个中断服务程序&#xff0c;一产生中断就自动调动这个程序。 但是中断的处理越快越好 同步调用&#xff1a;就是等调用的函数执行完毕然后再返回原来的位置。 异步调用&#xff1a;就是不等调用的函数执行完…

线性数据结构之栈结构

栈&#xff08;Stack&#xff09;是一种线性数据结构&#xff0c;遵循“后进先出”&#xff08;Last In, First Out&#xff0c;LIFO&#xff09;的原则。栈主要有两种基本操作&#xff1a;push&#xff08;入栈&#xff09;和 pop&#xff08;出栈&#xff09;。在栈中&#x…

linux驱动-i2c子系统框架学习(1)

可以将整个 I2C 子系统用下面的框图来描述&#xff1a; 可以将上面这一 I2C 子系统划分为三个层次&#xff0c;分别为用户空间、内核空间和硬件层&#xff0c;内核空间就包括 I2C 设备驱动层、I2C 核心层和 I2C 适配器驱动层&#xff0c; 本篇主要内容就是介绍 I2C 子系统框架中…

Linux,shell基础,变量,数值运算

linux 一.shell基础1.什么是shell在linux内核与用户之间的解释器程序,通常指/bin/bash2.shell的使用方式1.交互式2.非交互式3.Bash基本特征1.快捷键2.历史命令3.重定向4.管道5.别名4.shell脚本1.规范脚本构成(1) #!指定解释器(2) # 注释信息(作者信息,步骤,思路,用途,变量等)(3…

i2c-tools 4.3 for Android 9.0

i2c-tools 4.3 Android 9.0下编译i2c-tools 4.3 下载源码 cd external wget https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/i2c-tools-4.3.tar.gz tar -zxvf i2c-tools-4.3.tar.gz 增加Android.mk Android.mk LOCAL_PATH : $(call my-dir)include $(C…

Proteus中数码管动态扫描显示不全(已解决)

文章目录 前言解决方法后记 前言 我是直接把以前写的 51 数码管程序复制过来的&#xff0c;当时看的郭天祥的视频&#xff0c;先送段选&#xff0c;消隐后送位选&#xff0c;最后来个 1ms 的延时。 代码在 Proteus 中数码管静态是可以的&#xff0c;动态显示出了问题——显示…

[spring源码]spring配置类解析

解析配置类 在启动Spring时&#xff0c;需要传入一个AppConfig.class给ApplicationContext&#xff0c;ApplicationContext会根据AppConfig类封装为一个BeanDefinition&#xff0c;这种BeanDefinition我们把它称为配置类BeanDefinition AnnotationConfigApplicationContext a…

Vue3版本的uniapp项目运行至鸿蒙系统

新建Vue3版本的uniapp项目 注意&#xff0c;先将HbuilderX升级至最新版本&#xff0c;这样才支持鸿蒙系统的调试与运行&#xff1b; 按照如下图片点击&#xff0c;快速升级皆可。 通过HbuilderX创建 官方文档指导链接 点击HbuilderX中左上角文件->新建->项目 创建vue3…