在CENTOS上源码搭建LNMP环境

前言

1.操作前提:

  • CentOS Linux release 7.5.1804;
  • sudo用户(需要root权限);

2.需要安装的组件:

  • nginx稳定版:nginx-1.14.0;
  • MariaDB 10.3.10 Stable;
  • PHP 7.2.11 Stable;

3.操作步骤:

  • 添加环境依赖包;
  • 安装libiconv,libmcrypt等;
  • 安装nginx;
  • 安装php;
  • 安装mariadb;

下载安装包

wget http://nginx.org/download/nginx-1.14.0.tar.gz &&  tar xzvf nginx-1.14.0.tar.gz 

wget http://am1.php.net/distributions/php-7.2.11.tar.gz && tar xzvf php-7.2.11.tar.gz

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz &&  tar xzvf libiconv-1.14.tar.gz

wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz && tar xzvf ./libmcrypt-2.5.8.tar.gz

删除不需要的源码包:

rm -rf *.tar.gz

添加环境依赖包

以下依赖包是整个Lnmp搭建过程中所需的基本依赖包,如果在安装过程中出现错误,提示缺少某依赖包,可以自己安装:

#执行下面这条命令,各参数之间以空格分开

sudo yum -y install zlib-devel pcre-devel openssl-devel gcc gcc-c++  ncurses-devel perl perl-devel perl-ExtUtils-Embedlibjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  libxml2 libxml2-devel curl-devel libxslt libxslt-devel gd gd-devel GeoIP GeoIP-devel

编译nginx

为了使Nginx能够启用http/2,需要通过源码的方式安装nginx,并指定--with-openssl的版本在1.0.2版本以上,这里我将需要版本的依赖安装在/usr/local/src目录:

$ cd /usr/local/src/

# PCRE version 8.40
$ sudo wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz && sudo tar xzvf pcre-8.40.tar.gz

# zlib version 1.2.11
$ sudo wget https://www.zlib.net/zlib-1.2.11.tar.gz && sudo tar xzvf zlib-1.2.11.tar.gz

# OpenSSL version openssl-1.1.0h
$ sudo wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz && sudo tar xzvf openssl-1.1.0h.tar.gz

删除不需要的包

sudo rm -rf *.tar.gz

编译nginx

cd ~/src/nginx-1.14.0
sudo ./configure --prefix=/etc/nginx             --sbin-path=/usr/sbin/nginx             --modules-path=/usr/lib64/nginx/modules             --conf-path=/etc/nginx/nginx.conf             --error-log-path=/var/log/nginx/error.log             --pid-path=/var/run/nginx.pid             --lock-path=/var/run/nginx.lock             --user=nginx             --group=nginx             --build=CentOS             --builddir=nginx-1.14.0             --with-select_module             --with-poll_module             --with-threads             --with-file-aio             --with-http_ssl_module             --with-http_v2_module             --with-http_realip_module             --with-http_addition_module             --with-http_xslt_module=dynamic             --with-http_image_filter_module=dynamic             --with-http_geoip_module=dynamic             --with-http_sub_module             --with-http_dav_module             --with-http_flv_module             --with-http_mp4_module             --with-http_gunzip_module             --with-http_gzip_static_module             --with-http_auth_request_module             --with-http_random_index_module             --with-http_secure_link_module             --with-http_degradation_module             --with-http_slice_module             --with-http_stub_status_module             --http-log-path=/var/log/nginx/access.log             --http-client-body-temp-path=/var/cache/nginx/client_temp             --http-proxy-temp-path=/var/cache/nginx/proxy_temp             --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp             --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp             --http-scgi-temp-path=/var/cache/nginx/scgi_temp             --with-mail=dynamic             --with-mail_ssl_module             --with-stream=dynamic             --with-stream_ssl_module             --with-stream_realip_module             --with-stream_geoip_module=dynamic             --with-stream_ssl_preread_module             --with-compat             --with-pcre=/usr/local/src/pcre-8.40             --with-pcre-jit             --with-zlib=/usr/local/src/zlib-1.2.11             --with-openssl=/usr/local/src/openssl-1.1.0h             --with-openssl-opt=no-nextprotoneg             --with-debug

上面--prefix=/etc/nginx为安装目录。

sudo make && sudo make install

创建软链

sudo ln -s /usr/lib64/nginx/modules /etc/nginx/modules

这样就可以在nginx的配置文件中像这样加载动态模块:load_module modules/ngx_foo_module.so;。

查看编译信息

sudo nginx -V

修改/etc/nginx/nginx.conf

去掉 user nobody;一行的注释。

检查配置是否存在潜在错误

## 执行检查可能会报错
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed

## 如果报上面的错误,则执行下面的代码
sudo mkdir -p /var/cache/nginx && sudo nginx -t

创建nginx系统服务单元

编辑文件:

sudo vi /usr/lib/systemd/system/nginx.service

将下面的内容复制进去

[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

启动nginx并设置开机启动

sudo systemctl start nginx.service && sudo systemctl enable nginx.service

至此,nginx的安装到此结束,nginx的源码安装参考出处:centos7通过编译源码的方式安装nginx

接下来进行源码编译安装Php的操作。

编译安装php

php需要libiconv、libmcrypt等依赖,下面进行编译:【阅读原文

原文地址:https://www.cnblogs.com/cobcmw/p/9893210.html

时间: 2024-08-09 11:47:03

在CENTOS上源码搭建LNMP环境的相关文章

源码搭建lnmp环境

关闭防火墙: [[email protected]_DB ~]# service iptables stop iptables: Setting chains to policy ACCEPT: filter          [  OK  ] iptables: Flushing firewall rules:                         [  OK  ] iptables: Unloading modules:                              

源码搭建LAMP环境

源码搭建LAMP环境 一,LAMP环境概述: LAMP指的Linux(操作系统).ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web 服务器.是一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势

源码搭建LNMP

源码安装LNMP 作者:尹正杰 前言:非常简单的一个平台LNMP,在生产实际环节中我们也经常用到! 二话不说,开始享受我们的搭建过程吧! 一.源码安装nginx 1.安装依赖包 [[email protected] yinzhengjie]# yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre* make gd-devel libjpeg-devel libpng-deve

linux下源码搭建php环境之mysql(一)

现在已经大半夜了,五一劳动节挺无聊的. 折腾一下吧,实在是睡不着.于是乎在电脑上安装个虚拟机,然后呢,在虚拟机上搭建一个php环境. 首先我得安装MYSQL吧.发现遇到的问题真多..待我娓娓道来. 主要介绍linux操作系统下MySQL源码进行纯手动安装,如果你对linux操作系统下MySQL源码进行纯手动安装的实际操作流程感兴趣的话,你不妨浏览以下的文章. 1.实现linux下纯手动MySQL源码安装,首先要下载MySQL的源码,我下载的是MySQL-5.0.87.tar.gz 2.解压tar

Centos7.4源码搭建LAMP环境

CENTOS 7.4源码搭建LAMP 目录 一.源码安装apache2.4.33. 2 1.1.使用wget下载号所需的包 1.2.解压源码包并编译安装apache以及所需依赖包 1.3.启动apache服务 二.源码安装mysql 2.1.源码安装mysql 2.2.编译安装完成,对数据库进行初始化 2.3.启动数据库 2.4.创建数据库,给discuz用户授权 三.源码安装PHP并与apache进行整合 四.安装discuz论坛 一. 源码安装apache2.4.33 下载apache源码包

CentOS6系统源码安装LNMP环境详解

一.安装nginx 以下命令均在root权限下执行,普通用户可通过su命令切换1.安装依赖 yum install gcc-c++ yum install pcre pcre-devel yum install openssl openssl-devel 2.下载源码 wget http://nginx.org/download/nginx-1.8.1.tar.gztar -zxvf nginx-1.8.1.tar.gzcd nginx-1.8.1 3.创建nginx用户 useradd -M 

CentOS6.7源码搭建LNMP平台

LNMP是Linux+ Nginx+ MySQL +PHP的简称.先安装mysql:然后是php,php使用fast-cgi的方式运行:最后安装Nginx. 安装平台:CentOS6.7 X86_64 MySql版本:mysql-5.6.27 MySql安装目录:/usr/local/mysql MySql数据库存放目录:/data/mysql MySql的用户和组:mysql:mysql MySql源码存放目录:/usr/local/src 安装前的准备: (1).关闭selinux vim

CentOS 下源码安装LAMP环境

一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代表的方面功能非常强大的组件.    LAMP这个词的由来最早始于德国杂志“c't Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字.这些组件并不是开始就设计为一起使用的,但是,这些软件都是开源的,可以很方便的随时获得并免费使用,这就导致了这些组

源码编译LNMP环境

  一.环境准备: 1.部署LNMP架构需要安装依赖包 yum -y install make gcc gcc-c++ flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel gd freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2