linux 下安装 LNMP 最简单的安装方法

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: linux 下安装 LNMP 最简单的安装方法

最近在安装linux  lnmp centos7环境的时候还是有点小问题,从头总结了一下。

安装的版本是 nginx 1.12  mysql 5.7 php 5.6

一,安装nginx

nginx的官方网站:

http://nginx.org/en/download.html

Mainline version  主线版本

Stable version  稳定版本

Legacy versions  遗产版本 /历史版本

1.下载

安装前确认安装扩展 没有的直接 yum install wget gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel    

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz

2.解压

    [root@localhost src]# tar zxvf nginx-1.12.2.tar.gz

/****** 取消Debug编译模式   START*******/

cd nginx-1.12.2

vi auto/cc/gcc    #将这句注释掉 取消Debug编译模式 大概在172行

#CFLAGS="$CFLAGS -g"

/**********取消Debug编译模式   END**************/

3. 预编译

cd nginx-1.12.2 
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre --with-http_gzip_static_module --with-http_dav_module   --with-http_addition_module  --with-http_sub_module --with-http_flv_module  --with-http_mp4_module

解释

--with-http_gzip_static_module :支持压缩

--with-http_stub_status_module :支持nginx状态查询

--with-http_ssl_module :支持https

--with-pcre :为了支持rewrite重写功能,必须制定pcre

--with-http_dav_module             #启用支持(增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法)                        

--with-http_addition_module         #启用支持(作为一个输出过滤器,支持不完全缓冲,分部分相应请求)

--with-http_sub_module              #启用支持(允许一些其他文本替换Nginx相应中的一些文本)

--with-http_flv_module              #启用支持(提供支持flv视频文件支持)

--with-http_mp4_module              #启用支持(提供支持mp4视频文件支持,提供伪流媒体服务端支持)

make -j 4 && make install 4核编译

4. [root@localhost src]# make && make install

5.添加系统变量(方便启停服务)

[root@localhost nginx-1.12.2]# vim /etc/profile

 我一般是在56行添加    export PATH=/usr/local/nginx/sbin:$PATH

重启配置 source /etc/profile

[root@localhost nginx-1.12.2]# nginx -V

添加软连  ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

生成服务启动脚本

vim /etc/init.d/nginx

#!/bin/bash
# chkconfig: - 99 2
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
        start)
        $PROG
        ;;
        stop)
        kill -3 $(cat $PIDF)
        ;;
        restart)
        $0 stop &> /dev/null
        if [ $? -ne 0 ] ; then continue ; fi
        $0 start
        ;;
        reload)
        kill -1 $(cat $PIDF)
        ;;
        *)
        echo "Userage: $0 { start | stop | restart | reload }"
        exit 1
esac
exit 0

配置服务开机自动启动

[root@localhost ~]# chmod +x /etc/init.d/nginx

[root@localhost ~]# chkconfig --add nginx

[root@localhost ~]# chkconfig nginx on

首次启动   /usr/local/nginx/sbin/nginx

二、安装mysql 5.7

用的是rpm 好处是不用配置那么多东西 。 配置不用管。

 

  [root@localhost ~]# cd /usr/local/src/
  [root@localhost src]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm 

  [root@localhost src]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm

  [root@localhost src]# yum -y install mysql-server

也可以指定安装目录     yum --installroot=/usr/local/mysql --releasever=/ -y install mysql-server 可以自己研究

 

根据步骤安装就可以了,

默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service

socket文件:/var/run/mysqld/mysqld.pid

 启动mysql服务

service mysqld restart

重置密码

  [root@localhost ~]# grep "password" /var/log/mysqld.log  

 

可以看到  输入 mysql -u root -p   密码 进入     第一次登陆 ,需要重置密码 要不什么也不能操作 

 接下来重置密码:5.7.20 为了安全密码           必须包含 数字字母符号

alter user 'root'@'localhost' identified by 'Root!!2018';

  也可以 直接再添加新用户    

 grant all on *.* to 'rootadmin'@'%' identified by 'Root@@'  with grant option;

 增加root用户指定可以任意IP登录,如果想限制只能让指定IP登录请把%替换成IP地址

最后记得刷新权限;

flush privileges ;

三、安装php

 

需要的插件 包

yum -y install gcc gcc-c++ libxml2 libxml2-devel bzip2 bzip2-devel libmcrypt libmcrypt-devel openssl openssl-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel readline readline-devel libxslt-devel perl perl-devel psmisc.x86_64 recode recode-devel libtidy libtidy-devel  epel-release libmcrypt-devel  autoconf

1.下载

     [root@localhost ~]# cd /usr/local/src/

     [root@localhost src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.gz

2.解压

    [root@localhost src]# tar zxvf php-5.6.32.tar.gz

3. 预编译

进入目录 [root@localhost src]# cd php-5.6.32

创建php-fpm用户,并禁止登录;

[root@localhost php-5.6.32]# useradd -s /sbin/nologin php-fpm 

./configure --prefix=/usr/local/php --sysconfdir=/usr/local/php/etc --with-config-file-path=/usr/local/php/etc/    --with-fpm-user=php-fpm  --with-fpm-group=php-fpm  --enable-fpm --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mhash  --with-openssl --with-zlib --with-bz2 --with-curl --with-libxml-dir --with-gd --with-jpeg-dir  --with-png-dir --with-zlib --enable-mbstring --with-mcrypt --enable-sockets --with-iconv-dir   --enable-zip --with-pcre-dir --with-pear --enable-session  --enable-gd-native-ttf  --enable-xml --with-freetype-dir --enable-gd-jis-conv --enable-inline-optimization --enable-shared  --enable-soap --enable-bcmath --enable-sysvmsg --enable-sysvsem --enable-sysvshm  --enable-mbregex --enable-pcntl --with-xmlrpc --with-gettext --enable-exif --with-readline   --enable-ftp   --enable-redis

提示错误mcrypt.h没有找到,安装libmcrypt-devel包,默认的yum源,没有这个包,需要安装epel扩展源后,才可以安装。

[root@localhost php-5.6.32]# yum install -y epel-release

[root@localhost php-5.6.32]# yum install -y libmcrypt

[root@localhost php-5.6.32]# yum install -y libmcrypt-devel

 

再次执行./configure,没有错误提示,出现Thank you for using PHP,配置OK。

完成后使用echo $?查看是否安装正确;

[root@localhost  php-5.6.32]# make && make install

[root@localhost  php-5.6.32]# echo $?

0 0表示上一步的结果成功。

 

配置文件

需要将当前目录下的php.ini文件拷贝到 php的安装目录etc下

[root@localhost php-5.6.32]# cp php.ini-production /usr/local/php/etc/php.ini

php.ini 文件是在包目录下的 php.ini-development(开发), php.ini-production(生产)  

拷贝php启动脚本,php-fpm配置文件,更改php-fpm权限为755;添加php-fpm开机启动;

[root@ php-5.6.32]# cp /usr/local/src/php-5.6.32/sapi/fpm/init.d.php-fpm   /etc/init.d/php-fpm 
(启动脚本)
[root@ php-5.6.32]# mv /usr/local/php/etc/php-fpm.conf.default   /usr/local/php/etc/php-fpm.conf  (就是去掉了末尾的.default )
[root@ php-5.6.32]# chmod 755 /etc/init.d/php-fpm 
[root@lphp-5.6.32]# chkconfig --add php-fpm 
[root@lphp-5.6.32]# service php-fpm start 
Starting php-fpm  done
[root@php-5.6.32]# chkconfig php-fpm on

将php的安装目录也加入到系统的环境变量  在最后一行加入

vim /etc/profile

export PATH=/usr/local/php/bin:$PATH

source /etc/profile 重新加载

[root@localhost ~]# php -v

PHP 5.6.32 (cli) (built: Mar 12 2018 17:43:15)

Copyright (c) 1997-2016 The PHP Group

Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies完成 接下来就是测试

-----php---安装成功

三、测试   在地址栏输入你的ip。然后测试PHP安装是否成功。确保nginx 和PHP都是运行的。

1.写测试页面   进入nginx的html    cd /usr/local/nginx/html/

编辑    vim index.php

<?php
phpinfo();
?>

2. 配置nginx

核心配置的两个 加入到nginx.conf

vim /usr/local/nginx/conf/nginx.conf

找到 location   添加  index.php

将请求转给php的9000端口  确保nginx 和PHP都是运行的哈。  

 location ~ \.php$ {

           root           html;
           fastcgi_pass   127.0.0.1:9000;
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           include        fastcgi_params;
       }

安装上面的应该没问题,有问题的留言,大家一块解决。

**************************************************************************************

 

 

参考

这个是添加pathinfo的  除了首页能访问别的页面都是404的问题

         try_files $uri $uri/ /index.php?$query_string;

              if (!-e $request_filename){  

                        rewrite ^(.*)$ /index.php?s=$1 last;  break;

                     }

这是 server{} 里面的完整配置

server {
        listen       80;
        server_name  localhost;
        root   /www/yiqi/public/;
        location / {
            root   /www/yiqi/public/;
            index  index.php index.html index.htm;
                        try_files $uri $uri/ /index.php?$query_string;
                                 if (!-e $request_filename) {
                                   rewrite ^(.*)$ /index.php?s=$1 last;  break;
                                 }
        }
         location ~ .*\.(php|php5)?$ {
            root   /www/yiqi/public/;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
            fastcgi_connect_timeout 75;
      fastcgi_read_timeout 600;
      fastcgi_send_timeout 600;
        }
         error_page 404 /404.html;
         #access_log  logs/80.access.log  main;
         #error_log   logs/80.error.log  info;
        }

 

 

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
219
分享
相关文章
在Ubuntu Linux系统下如何搭建并安装EDK2
以上就是在Ubuntu Linux系统下搭建并安装EDK2的过程。这个过程可能会有些复杂,但只要按照步骤一步步来,应该不会有太大问题。如果在过程中遇到任何问题,都可以在网上找到相应的解决方案。希望这个指南能对你有所帮助!
36 17
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
46 10
|
9天前
|
Linux安装Elasticsearch详细教程
Linux安装Elasticsearch详细教程
43 1
|
16天前
|
利用PHP压缩音频:Linux环境下的ffmpeg简易安装指南
希望这个指南能为你的编程之旅提供帮助。只需记住,每一行代码都像音乐的音符,组合在一起,创造出美妙的旋律。祝你编程愉快!
62 6
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
117 21
YashanDB Linux客户端安装
本文详细介绍了YashanDB客户端在Linux系统中的安装、使用与卸载步骤。安装方法包括适用于所有Linux平台的脚本安装和专用于CentOS的rpm安装。脚本安装需解压软件包并配置环境变量,而rpm安装则需以root用户执行相关命令。此外,文章还说明了如何通过yasql连接YashanDB并进行数据库操作,以及两种安装方式对应的卸载方法,帮助用户顺利完成客户端的管理与维护。
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
104 23
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
30天前
|
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
78 0
手动部署LNMP环境(Alibaba Cloud Linux 2)
本场景带您体验如何在Alibaba Cloud Linux 2.1903 LTS 64位操作系统的云服务器上搭建LNMP环境。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等