如何用源码方式搭建LNMP环境

发布时间:2023-03-29 17:03:11 作者:iii
来源:亿速云 阅读:110

如何用源码方式搭建LNMP环境

目录

  1. 引言
  2. 准备工作
  3. 安装Nginx
  4. mysql">安装MySQL
  5. 安装PHP
  6. 配置LNMP环境
  7. 常见问题及解决方案
  8. 总结

引言

LNMP(Linux, Nginx, MySQL, PHP)是一种常见的Web服务器环境,广泛应用于各种Web应用程序的部署。相比于使用预编译的软件包,通过源码方式搭建LNMP环境可以更好地控制软件的版本和配置,同时也能根据具体需求进行优化。本文将详细介绍如何通过源码方式在Linux系统上搭建LNMP环境。

准备工作

系统要求

在开始之前,确保你的系统满足以下要求:

安装必要的工具

在编译源码之前,需要安装一些必要的工具和依赖包:

sudo apt update
sudo apt install -y build-essential libtool autoconf automake cmake pkg-config libssl-dev libpcre3-dev zlib1g-dev libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libmcrypt-dev libreadline-dev libzip-dev

这些工具和库将用于编译Nginx、MySQL和PHP。

安装Nginx

下载Nginx源码

首先,访问Nginx的官方网站(https://nginx.org/en/download.html)下载最新的稳定版源码包。本文以Nginx 1.20.1为例:

wget https://nginx.org/download/nginx-1.20.1.tar.gz
tar -zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1

编译和安装Nginx

在编译Nginx之前,需要配置编译选项。以下是一个常见的配置示例:

./configure --prefix=/usr/local/nginx \
            --with-http_ssl_module \
            --with-http_v2_module \
            --with-http_realip_module \
            --with-http_stub_status_module \
            --with-http_gzip_static_module \
            --with-pcre \
            --with-stream \
            --with-stream_ssl_module

配置完成后,开始编译和安装:

make
sudo make install

配置Nginx

安装完成后,Nginx的配置文件位于/usr/local/nginx/conf/nginx.conf。你可以根据需要修改配置文件,例如设置虚拟主机、配置SSL等。

启动Nginx:

sudo /usr/local/nginx/sbin/nginx

你可以通过访问http://localhost来验证Nginx是否成功启动。

安装MySQL

下载MySQL源码

访问MySQL的官方网站(https://dev.mysql.com/downloads/mysql/)下载最新的源码包。本文以MySQL 8.0.26为例:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.26.tar.gz
tar -zxvf mysql-8.0.26.tar.gz
cd mysql-8.0.26

编译和安装MySQL

在编译MySQL之前,需要安装一些额外的依赖包:

sudo apt install -y libncurses5-dev libssl-dev libboost-all-dev

配置编译选项:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
        -DMYSQL_DATADIR=/usr/local/mysql/data \
        -DSYSCONFDIR=/etc \
        -DWITH_INNOBASE_STORAGE_ENGINE=1 \
        -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
        -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
        -DWITH_READLINE=1 \
        -DWITH_SSL=system \
        -DWITH_ZLIB=system \
        -DWITH_LIBWRAP=0 \
        -DENABLED_LOCAL_INFILE=1 \
        -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
        -DDEFAULT_CHARSET=utf8mb4 \
        -DDEFAULT_COLLATION=utf8mb4_general_ci

配置完成后,开始编译和安装:

make
sudo make install

配置MySQL

安装完成后,初始化MySQL数据库:

sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

启动MySQL服务:

sudo /usr/local/mysql/support-files/mysql.server start

设置MySQL的root密码:

sudo /usr/local/mysql/bin/mysql_secure_installation

安装PHP

下载PHP源码

访问PHP的官方网站(https://www.php.net/downloads.php)下载最新的源码包。本文以PHP 7.4.23为例:

wget https://www.php.net/distributions/php-7.4.23.tar.gz
tar -zxvf php-7.4.23.tar.gz
cd php-7.4.23

编译和安装PHP

在编译PHP之前,需要安装一些额外的依赖包:

sudo apt install -y libxml2-dev libsqlite3-dev libonig-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libfreetype6-dev libzip-dev libssl-dev

配置编译选项:

./configure --prefix=/usr/local/php \
            --with-config-file-path=/usr/local/php/etc \
            --enable-fpm \
            --with-fpm-user=www-data \
            --with-fpm-group=www-data \
            --with-mysqli=mysqlnd \
            --with-pdo-mysql=mysqlnd \
            --with-openssl \
            --with-zlib \
            --with-curl \
            --with-gd \
            --with-jpeg \
            --with-freetype \
            --with-gettext \
            --with-iconv \
            --with-mhash \
            --with-mcrypt \
            --with-pcre-regex \
            --with-readline \
            --with-pear \
            --enable-mbstring \
            --enable-zip \
            --enable-bcmath \
            --enable-sockets \
            --enable-opcache

配置完成后,开始编译和安装:

make
sudo make install

配置PHP

安装完成后,复制PHP的配置文件:

sudo cp php.ini-production /usr/local/php/etc/php.ini
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

启动PHP-FPM:

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

配置LNMP环境

配置Nginx支持PHP

编辑Nginx的配置文件/usr/local/nginx/conf/nginx.conf,添加以下内容以支持PHP:

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/local/nginx/html;
        index  index.php index.html index.htm;
    }

    location ~ \.php$ {
        root           /usr/local/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

重启Nginx以应用配置:

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

测试LNMP环境

在Nginx的根目录下创建一个PHP文件:

echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/index.php

访问http://localhost/index.php,如果看到PHP的信息页面,说明LNMP环境已经成功搭建。

常见问题及解决方案

  1. Nginx启动失败:检查Nginx的配置文件是否有语法错误,使用nginx -t命令进行测试。
  2. MySQL启动失败:检查MySQL的错误日志文件,通常位于/usr/local/mysql/data/目录下。
  3. PHP-FPM启动失败:检查PHP-FPM的配置文件,确保路径和权限正确。

总结

通过源码方式搭建LNMP环境虽然相对复杂,但可以更好地控制软件的版本和配置,适合对性能有较高要求的场景。本文详细介绍了如何从源码编译和安装Nginx、MySQL和PHP,并配置它们协同工作。希望本文能帮助你成功搭建LNMP环境,为你的Web应用程序提供一个稳定、高效的运行环境。

推荐阅读:
  1. Linux自学笔记——LNMP
  2. LNMP平台部署及应用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

lnmp

上一篇:怎么在PHP中用内置函数将时间转换为时间戳

下一篇:怎么在PHP中将时间戳转换为人类可读的时间格式

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》