您好,登录后才能下订单哦!
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的官方网站(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之前,需要配置编译选项。以下是一个常见的配置示例:
./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的配置文件位于/usr/local/nginx/conf/nginx.conf
。你可以根据需要修改配置文件,例如设置虚拟主机、配置SSL等。
启动Nginx:
sudo /usr/local/nginx/sbin/nginx
你可以通过访问http://localhost
来验证Nginx是否成功启动。
访问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之前,需要安装一些额外的依赖包:
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数据库:
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的官方网站(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之前,需要安装一些额外的依赖包:
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的配置文件:
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
编辑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
在Nginx的根目录下创建一个PHP文件:
echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/index.php
访问http://localhost/index.php
,如果看到PHP的信息页面,说明LNMP环境已经成功搭建。
nginx -t
命令进行测试。/usr/local/mysql/data/
目录下。通过源码方式搭建LNMP环境虽然相对复杂,但可以更好地控制软件的版本和配置,适合对性能有较高要求的场景。本文详细介绍了如何从源码编译和安装Nginx、MySQL和PHP,并配置它们协同工作。希望本文能帮助你成功搭建LNMP环境,为你的Web应用程序提供一个稳定、高效的运行环境。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。