准备工作:
1)把所有的软件安装在/usr/local/,源码包放在/package/,数据:自定义,日志文件:自定义

创建www所属组及用户
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www

设置系统资源限制
ulimit -SHn 65535

下载各源码包:
cd /package
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
wget http://www.zlib.net/zlib-1.2.11.tar.gz
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1.tar.gz
wget http://www.zlib.net/zlib-1.2.11.tar.gz
wget http://nginx.org/download/nginx-1.9.6.tar.gz
wget http://cn2.php.net/distributions/php-7.1.19.tar.gz
wget https://curl.haxx.se/download/curl-7.64.0.tar.gz

安装依赖:
yum -y install make zlib zlib-devel gcc gcc-c++ libtool openssl openssl-devel lrzsz autoconf automake pcre* gd gd-devel

nginx安装:
useradd -M -s /sbin/nologin nginx
cd /package
tar -zxvf pcre-8.42.tar.gz -C /usr/local/
tar -zxvf openssl-1.1.1.tar.gz -C /usr/local/
tar -zxvf zlib-1.2.11.tar.gz -C /usr/local/

mkdir -p /var/tmp/nginx/{fcgi,uwsgi,scgi,proxy}

mkdir /var/log/nginx
touch /var/log/nginx/{access.log,error.log}

mkdir /var/run/nginx
touch /var/run/nginx/nginx.pid

mkdir /var/lock/
touch /var/lock/nginx.lock

tar -zxvf nginx-1.9.6.tar.gz
cd nginx-1.9.6
./configure --prefix=/usr/local/nginx/ \
--with-pcre=/usr/local/pcre-8.42 \
--user=nginx --group=nginx \
--with-zlib=/usr/local/zlib-1.2.11 \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-pcre=/usr/local/pcre-8.42/ \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_realip_module \
--with-http_image_filter_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--without-http_autoindex_module

make -j2 && make install

ln -s /usr/local/nginx/sbin/nginx /usr/bin/

修改nginx配置文件:
vim /usr/local/nginx/conf/nginx.conf
user nginx nginx;
error_log /var/log/nginx/error.log;
pid /var/run/nginx/nginx.pid;
charset koi8-r;
.........
.........
location / {
root html;
index index.php index.html index.htm;                #这里加上index.php
}
#error_page 404 /404.html;
........
.........
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;               #改成$document_root
include fastcgi_params;
}

启动nginx:
nginx -c /usr/local/nginx/conf/nginx.conf

配置启动脚本:(service nginx start)
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: 2345 99 20
#description: nginx-server
nginx=/usr/local/nginx/sbin/nginx

case $1 in
start)
  netstat -anptu | grep nginx
  if [ $? -eq 0 ];then
    echo "nginx service is already running"
  else
    echo "nginx Service started successfully "
    $nginx
  fi
;;
stop)
  $nginx -s stop
  if [ $? -eq 0 ];then
    echo "nginx service closed successfully"
  else
    echo "nginx server stop fail,try again"
  fi
;;
status)
    netstat -anlpt | grep nginx
    if [ $? -eq 0 ];then
      echo "nginx server is running"
    else
      echo "nginx service not started "
    fi
;;
restart)
  $nginx -s reload
  if [ $? -eq 0 ];then
    echo "nginx service restart successfully "
  else
    echo "nginx server restart failed"
  fi
;;
*)
  echo "please enter {start restart status stop}"
;;
esac

chmod +x /etc/init.d/nginx
chkconfig --add nginx
chkconfig nginx on

配置nginx以守护进程方式启动:(systemctl start nginx)
vim /lib/systemd/system/nginxd.service
[Unit]
Description=The Nginx HTTP Server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
EnvironmentFile=/usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target

PHP安装:
cd /package
wget https://curl.haxx.se/download/curl-7.64.0.tar.gz
tar -zxvf curl-7.64.0.tar.gz -C /usr/local/

yum -y install libxml2-devel libpng-devel libjpeg*
cp -rp /usr/lib64/libpng* /usr/lib
tar -zxvf php-7.1.19.tar.gz
cd php-7.1.19
./configure --prefix=/usr/local/php7 \
--with-gd \
--with-zlib \
--with-config-file-path=/usr/local/php7 \
--enable-mbstring \
--enable-fpm \
--with-curl  =/usr/local/curl***    (如果没有源码安装curl就只写等号左边部分)

make -j2 && make install

配置PHP:
cp /package/php-7.1.19/php.ini-production   /usr/local/php7/etc/php.ini
cp /usr/local/php7/etc/php-fpm.conf.default   /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default   /usr/local/php7/etc/php-fpm.d/www.conf
ln -s /usr/local/php7/bin/*   /usr/local/bin/
ln -s /usr/local/php7/sbin/*   /usr/local/sbin/

配置php-fpm:
cp /package/php-7.1.19/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm --level 2345 on
vim /usr/local/php7/etc/php.ini
date.timezone = PRC
expose_php = Off
short_open_tag = On
opcache.enable_cli=0
echo "zend_extension=opcache.so" >> /usr/local/php7/etc/php.ini

让fpm随nginx一起启动,重启:
vim /etc/init.d/nginx
start)
       netstat -anptu | grep nginx
  if [ $? -eq 0 ];then
    /usr/local/php7/sbin/php-fpm >> /dev/null       #添加该句
    echo "nginx service is already running"
  else
    /usr/local/php7/sbin/php-fpm >> /dev/null      #添加该句
    echo "nginx Service started successfully "
....... 省略中间部分 .......
stop)
  $nginx -s stop
  if [ $? -eq 0 ];then
  kill -s QUIT `cat /usr/local/php7/var/run/php-fpm.pid`>>/dev/null               #添加该句

.......省略中间部分 .......

restart)
  $nginx -s reload
  if [ $? -eq 0 ];then
    kill -s QUIT `cat /usr/local/php7/var/run/php-fpm.pid` >> /dev/null      #添加该句
    /usr/local/php7/sbin/php-fpm #添加该句
    echo "nginx service restart successfully "
  else
  echo -e "\033[35mNginx is not started,nginx server restart failed\033[0m"         #修改该句

MYSQL安装:
useradd mysql -s /sbin/nologin
cd /package
yum -y install cmake bison ncurses ncurses-devel wget gcc gcc-c++ (是接上面的,要是单独安装mysql需把上面yum的东西都装上)
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.25.tar.gz
tar -zxvf mysql-boost-5.7.25.tar.gz
cd mysql-5.7.25/

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/package/mysql-5.7.25/boost/boost_1_59_0 \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql

make -j4 && make install

创建数据存储目录
mkdir -p /usr/local/mysql/data 
chown -R mysql.mysql /usr/local/mysql/

配置my.cnf文件
vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/usr/local/mysql/mysql.sock
character-set-server=utf8
pid-file=/usr/local/mysql/mysqld.pid
log-error=/var/log/mysqld.log

配置MySQL启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

修改路径:
vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

配置环境变量
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile

配置MySQL启动脚本,这个和上面的二选一都可以
vim /lib/systemd/system/mysqld.service
[Unit]
Description=MySQL DBMS

[Service]
LimitNOFILE=10000
Type=simple
User=mysql
Group=mysql
PIDFile=/usr/local/mysql/mysqld.pid
ExecStart=/usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data
ExecStop=/bin/kill -9 $MAINPID

[Install]
WantedBy=multi-user.target

chmod +x /lib/systemd/system/mysqld.service
systemctl enable mysqld.service             #设置开机启动

touch /var/log/mysqld.log
chown -R mysql.mysql /var/log/mysqld.log
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql.mysql /var/log/mariadb/

初始数据库:
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
注1:这一步执行完后会在最后一行的最后生成一个mysql的root登录密码,需注意
注2:如果要想初始化之后分配临时密码,可以将-insecure 部分去掉,初始化之后,可以分配到一个临时密码。
注3:密码在/var/log/mysqld.log中的最后,我的是 Aq&wBPyzP1ri,每次会不同

启动数据库:
/etc/init.d/mysqld start
mysql -uroot -p              #这里的密码是在 /var/log/mysqld.log中的最后那个密码

ALTER USER USER() IDENTIFIED BY '123456';          #必须先alter一下才行
grant all privileges on *.* to 'root'@'localhost' identified by '<passworld>';
grant all privileges on *.* to 'root'@'%' identified by '<passworld>';

Linux下PHP安装curl扩展:
cd /package
wget https://curl.haxx.se/download/curl-7.64.0.tar.gz
tar -zxvf curl-7.64.0.tar.gz
cd curl-7.64.0
./configure --prefix=/usr/local/curl
make -j2 && make install

cd /package/php-7.1.19
./configure --prefix=/usr/local/php7 \
--with-gd \
--with-zlib \
--with-config-file-path=/usr/local/php7 \
--enable-mbstring \
--enable-fpm \
--with-curl=/usr/local/curl

make -j2 && make install

重启php生效
service nginx start {stop}

LNMP环境的更多相关文章

  1. 阿里云ECS安装lnmp环境-转载自:http://ninghao.net/blog/1368

    远程控制你的服务器 远程控制 Linux 类型的系统的服务器,比如 CentOS 系统的服务器,一般不像 Windows 服务器那样,使用图形界面的远程控制.我们需要使用命令行工具,远程连接到服务器, ...

  2. LAMP坏境和LNMP环境安装Nagios4.1.1和基本配置

    ----------------------------------------以下内容为笔者生产环境的监控,安装都是经过一步步测试的-------------------------------- ...

  3. 烂泥:学习centos之快速搭建LNMP环境

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 以前在centos下安装软件都是喜欢源码安装,不过昨天因为一个事情需要一个centos 下的LNMP环境.反倒不会搞了,今天特意记录下,以备后续使用. 一 ...

  4. Ubuntu系统下lnmp环境搭建和Nginx多站点配置

    最近需要使用Ubuntu作为服务器搭建Lnmp环境,顺便将操作过程写下来,与大家分享.如有不足之处,欢迎大家提出不同意见.(本文默认读者已经熟悉相关linux命令的使用,比如创建文件和文件夹,编辑文件 ...

  5. CentOS安装LNMP环境的基础组件

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 在安装LNMP环境之前,请确保已经使用yum安装了以下各类基础组件(如果系统已自带,还可以考虑yum update下基础组件): ...

  6. LNMP环境搭建笔记

    说明:前面尝试的在ubuntu12.04上搭建的LAMP环境由于开发的需要需要对php的版本进行升级,然而通过apt-get库安装的php的版本是5.3.10,不能满足开发需要.此笔记安装的php的 ...

  7. 烂泥:学习ubuntu之快速搭建LNMP环境

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 现在公司使用的都是ubuntu系统,这几天由于个别项目需要,需要搭建一个LNMP环境.为了快速搭建这个环境,我使用是apt-get方式进行安装.具体的操作 ...

  8. LNMP环境搭建

    LNMP环境搭建 Linux + Nginx + MySQL + PHP PHP是一种脚本语言,当前中国乃至世界上使用PHP语言开发的网站非常普遍 Nginx是一个web服务软件,和apache是一类 ...

  9. CentOS6.6搭建LNMP环境

    CentOS6.6搭建LNMP环境 1.设置yum源,本地安装依赖包 1 yum -y install gcc gcc-c++ automake autoconf libtool make 2.下载依 ...

  10. 阿里云(ECS)Centos服务器LNMP环境搭建

    阿里云( ECS ) Centos7 服务器 LNMP 环境搭建 前言 第一次接触阿里云是大四的时候,当时在校外公司做兼职,关于智能家居项目的,话说当时俺就只有一个月左右的 php 后台开发经验(还是 ...

随机推荐

  1. 在Arcmap中加载互联网地图资源的4种方法

    前一段时间想在Arcmap中打开互联网地图中的地图数据,如影像数据.基础地图数据等,经过简单研究目前总结了四种方法,整理下与大家分享,有些内容可能理解有误,希望大家多多指教.4种方法如下: a)    ...

  2. 添加/删除/修改Windows 7右键的“打开方式”

    右键菜单添加/删除"打开方式" 此"打开方式"非系统的"打开方式",二者可以并存. 右键菜单添加"打开方式" 在HKEY ...

  3. 页面间固定参数,通过cookie传值

    最后在做的页面,比如用户数据(用户头像,名称,年龄)这些信息,因为大部分页面都要用,之前是通过url地址传,另一页面接收.考虑到这样做会让url过长,因此,尝试使用cookie,把固定的值保存在coo ...

  4. Django APP打包重用

    引言 有时候,我们需要将自己写的app分发(dist)给同事,分享给朋友,或者在互联网上发布,这都需要打包.分发我们的app. Django的子系统重用是基于app级别的.也就是一个项目可以包含多个互 ...

  5. The Microsoft Distributed Transaction Coordinator (MS DTC) has cancelled the distributed transaction.

    同事反馈一个系统在运行一个存储过程时遇到了下面错误: Msg 1206, Level 18, State 169, Procedure xxxxxx, Line 118The Microsoft Di ...

  6. 洗礼灵魂,修炼python(81)--全栈项目实战篇(9)—— 购物商城登录验证系统

    都在线购物过吧?那么你应该体验过,当没有登录账户时,点开购物车,个人中心,收藏物品等的操作时,都会直接跳转到登录账户的界面,然后如果登录一次后就不用再登录,直到用户登出. 是的,本次项目就是做一个登录 ...

  7. 自动化测试基础篇--Selenium简单的163邮箱登录实例

    摘自https://www.cnblogs.com/sanzangTst/p/7472556.html 前面几篇内容一直讲解Selenium Python的基本使用方法.学习了什么是selenium: ...

  8. 在Lua中提示UnityEngine.dll的方法

    我的环境 安装最新的 EmmyLua-1.2.1及以上版本 IDEA 2017.1.2 及以上版本 关于EmmlyLua的介绍可查看我之前的文章:Lua代码提示和方法跳转 说明:本文方法摘自 Emmy ...

  9. git-------基础知识(本地推送项目版本---github上)

    创建Git仓库 一:初始化版本库:-git init 二:添加文件到缓存区:-git add  --添加所有文件 是:加个点-列:git add . 三:查看仓库状态:-git status 四:添加 ...

  10. PE 添加系统管理员账号(域控可加)转

    使用U盘制作一个PE系统,这里推荐老毛桃或者大白菜:开机进入Bios,选择U盘启动:进入U盘启动画面后,选择一个PE系统:进入PE系统后,我们去本机系统盘,将 C:/Windows/System32/ ...