Linux系统下LNMP一键搭建Linux、PHP、MySQL环境(适合新手搭建linux下的web生成环境)

一、

首先要解释一下,什么是LNMP,LNMP起源于LAMP,LAMP是Linux+Apache+Mysql/MariaDB+Perl/PHP/Python的缩写,这里将Web服务端的Apache替换成了资源消耗更少,更稳定的Nginx,所以LNMP就是Linux+Nginx+Mysql/MariaDB+Perl/PHP/Python的缩写;

引用LNMP一键安装包网站的简介来简单的介绍一下,为什么要选择LNMP

LNMP一键安装包是什么?

LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/Mint Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序。

我们为什么需要它?
编译安装需要输入大量的命令,如果是配置生产环境需要耗费大量的时间。
不会Linux的站长或Linux新手想使用Linux作为生产环境……

它有什么优势和功能?
无需一个一个的输入命令,无需值守,编译安装优化编译参数,提高性能,解决不必要的软件间依赖,特别针对配置自动优化。

支持自定义Nginx、PHP编译参数及网站和数据库目录、支持生成LetseEcrypt证书、LNMP模式支持多PHP版本、支持单独安装Nginx/MySQL/MariaDB/Pureftpd服务器,同时提供一些实用的辅助工具如:虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常用缓存组件Redis/Xcache等的安装、重置MySQL root密码、502自动重启、日志切割、SSH防护DenyHosts/Fail2Ban、备份等许多实用脚本。

如何获取它?
你可以自由下载 并使用它在VPS或独立服务器上,做为真正的生产环境或测试环境。

我们为什么采用LNMP这种架构?
采用Linux、PHP、MySQL的优点我们不必多说。

Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,已经在一些俄罗斯的大型网站上运行多年,目前很多国内外的门户网站、行业网站也都在是使用Nginx,相当的稳定。

Nginx相当的稳定、功能丰富、安装配置简单、低系统资源

这里我需要说一下,Nginx与Apache想比较,在同样条件下,Nginx占用的系统资源会更小,可承载并发数更多,但是Nginx的伪静态规则设置相比较IIS和Apache要略复杂;

二、安装

安装很简单,一条命令就足够了:wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh

期间会让你设置mysql密码,PHP版本号,是否启用日志记录等等;

当出现Install lnmp V1.4 completed! enjoy it.的话,说明已经安装成功。

三、添加网站

输入:lnmp vhost add

进入添加虚拟主机命令,这是首先输入你的主域。例:91wuxia.com(不要带www)

第二部创建虚拟主机文件夹,如果输入的是91wuxia.com。默认提示创建www.91wuxia.com的文件夹;

(注:该文件夹创建好之后存放位置是/home/wwwroot/www.91wuxia.com)

然后提示是否添加伪静态规则,可以选择默认的,如果你的程序需要自定义,那么随便写一个自己知道的名字就可以了,之后再去添加规则,但是要以.conf为后缀的文件名,例如91wuxia.conf

当所有选项都选完后,回车确认便会开始创建虚拟主机。

添加成功会提示添加的域名、目录、伪静态、日志、数据库、FTP等相关信息;

如果是本地调试,你访问localhost,打开的并不是你创建是/home/wwwroot/www.91wuxia.com文件夹目录,打开的是/home/wwwroot/default下的文件,当然你可以打开localhost/phpmyadmin进行数据库管理;

如果本地调试的话,你需要做hosts将自己的ip进行劫持,也就是域名重定向,具体方法如下:

打开C:\WINDOWS\system32\drivers\etc,最好用notepad++打开,记事本保存容易出现错误;

127.0.0.1 域名
例:

127.0.0.1 www.91wuxia.com

中间是空格,如果有子域名,另起一行,一样格式即可;

如果是远程服务器/VPS/虚拟主机,将域名绑定你的解析地址(IP/cname),直接访问就可以了;

四、神秘的.user.ini文件和chattr命令

当所有的生成环境都搭建完成之后,准备上传程序时,你会发现没有读写权限;

切换root,利用chmod -R 777给文件夹授权时,产生错误提示;

这是神秘的.user.ini出现了,你会发现万能的连自己都能删除自己的root权限,都无法强行删除.user.ini文件;

多番查找,chattr -i 解锁命令才找到

输入chattr -i /网站路径/.user.ini

这里的路径可以是相对的,也可以是绝对的,新手实在不懂可以使用绝对路径,例:

chattr -i /home/wwwroot/www.91wuxia.com/.user.ini

你只需要把www.91wuxia.com替换成自己的域名文件夹名称就可以了;

然后再进行chmod -R 777 /文件夹路径/    进行授权,现在可以全部控制该文件夹了

记得输入chattr +i /网站路径/.user.ini,再锁上。

五、伪静态规则

千辛万苦的将web架设起来了,也可以访问了,看看栏目页,嗯?怎么是404无法访问?

对了,之前说了伪静态还没有设置

伪静态规则存放位置是:/usr/local/nginx/conf/vhost/域名.conf

这里是你虚拟主机的配置文件,如果你有其他二级域名需要绑定,就要在这个里面添加,默认是不会绑定手机版的二级域名,例如m.91wuxia.com,这个域名是需要自己手动添加进去的

还记得刚才说的,在添加虚拟主机时,命名的伪静态规则文件么,对,就是91wuxia.conf,这个配置文件存放在上级conf目录下,该目录下还有很多默认网站的伪静态规则,例如dede,diguo,dz等等

直接vi /usr/local/nginx/conf/91wuxia.conf   将伪静态规则复制进去保存即可(vi的操作命令请自行百度一下)

重启Nginx

重启命令:/etc/init.d/nginx restart

也可以用lnmp的命令:

lnmp stop  关闭

lnmp start 再次开启,实现重启

好了,这就是我自己在VPS上架设web网站的整个流程,以及遇到的一些问题;

原文地址:https://www.cnblogs.com/91wuxia/p/91wuxia.html

时间: 2024-11-10 14:17:35

Linux系统下LNMP一键搭建Linux、PHP、MySQL环境(适合新手搭建linux下的web生成环境)的相关文章

Linux平台(Centos7)-lnmp一键式部署mysql,nginx,php,php-fpm服务

Linux平台(Centos7)-lnmp一键式部署mysql,nginx,php,php-fpm服务 1. 部署方式1:手动部署. 6 1.1. 配置防火墙. 6 1.2. 关闭firewall 6 1.3. 安装iptables防火墙. 6 1.4. 安装Apache 7 1.5. 安装MariaDB 9 1.5.1. 安装MariaDB 9 1.5.2. 启动服务. 10 1.5.3. 设置开机启动. 10 1.5.4. 为root账户设置密码. 11 1.5.5. 重启MariaDB 1

Linux系统原有分区/data 有数据,再不格式化/data分区的情况下重装系统

1丶Linux系统原有分区/data 有数据,再不格式化/data分区的情况下重装系统当前/data/目录中有文件存在,开始重装选择引导设备重启后,一路选择下一步,直到选择下一步后,一直惦记下一步下一步在图上的界面中删除所有分区,保留下有数据的/data分区,即/sda2删除后重新进行分区一直下一步等待系统安装完成后进系统查看数据是否还在2丶给系统增加一个磁盘,并使用LVM管理,将现有卷组扩容给系统添加一块磁盘先用 fdisk -l 查看磁盘对新盘进行分区,设置格式为8e,这是LVM的分区格式使

Linux系统裁减之,制作一个极度精简的Linux-4-为精简的Linux 系统增加用户登录功能

第4章 为精简的Linux 系统增加用户登录功能 4.1下载mingetty和login程序源码 本文使用的CentOS 5.11的源代码都在官方源码网站http://vault.centos.org可以下载, 到http://vault.centos.org/5.11/os/Source/查找mingetty和login程序,如下图: ? ? mingetty和login程序分别属于mingetty-1.07-5.2.2和util-linux-2.13-0.59.el5_8软件包: [[ema

Linux系统编程(第2版)笔记 (本书基本上就是Linux C API的简单使用说明,入门级别的)

Linux系统编程(第2版) 跳转至: 导航. 搜索 目录 1 入门和基本概念 2 文件I/O 3 缓冲I/O 4 高级文件I/O 5 进程管理 6 高级进程管理 7 线程 8 文件和目录管理 9 内存管理 10 信号 11 时间(这里谈不上系统编程了,就是C库API) 12 附录A C语言的GCC扩展 13 附录B 参考书目 入门和基本概念 文件I/O read(): EINTR EAGAIN 其他错误:EBADF EFAULT EINVAL EIO Append模式:每次write之前的文件

linux 系统如何设置先登录普通用户,在转到root用户下

1.修改/etc/sudoers,找到下面一行,在root下面添加普通用户,比如用户abc(前提是abc用户已存在,并设置好密码): Allow root to run any commands anywhere root ALL=(ALL) ALLabc ALL=(ALL) ALL2.意思就是允许赋予用户abc跟root一样的权限,在任何地点执行任何命令.3.编辑ssh的配置文件,找到下面一行,把yes改为no,禁止root用户登录:vi /etc/ssh/sshd_config#Permit

记一次linux系统中马后的处理(RHEL6.3、木马:Linux.BackDoor.Gates.5)

中马表现症状:机器拼命向外发包,耗尽网络流量. 于是查看网络连接使用netstat -antuple(这里第一步就错了,因为木马已经替换了些系统命令,包括netstat,请原谅我年幼无知) 有个222开头来自江苏的IP已经建立了连接 这时可以临时救急,用iptables将来自和发往该IP的数据包DROP掉, iptables -I INPUT -s 222.186.30.203 -j DROP iptables -I OUTPUT -d 222.186.30.203 -j DROP 接着serv

linux系统中如何判断是否安装了mysql

首先需要了解Mysql安装后的相关目录: 1.数据库目录 /var/lib/mysql/ 2.配置文件 /usr/share/mysql(mysql.server命令及配置文件) 3.相关命令 /usr/bin(mysqladmin mysqldump等命令) 4.启动脚本 /etc/rc.d/init.d/(启动脚本文件mysql的目录) 因此可通过如下方式查看:1)查看安装目录,如上所示2)查看服务是否启动:service mysql status3)查看进程服务ps -aux | grep

将一个Linux系统中的文件或文件夹复制到另一台Linux服务器上(scp的使用)

一.复制文件: (1)将本地文件拷贝到远程scp 文件名 用户名@计算机IP或者计算机名称:远程路径(2)从远程将文件拷回本地scp 用户名@计算机IP或者计算机名称:文件名 本地路径 二.复制文件夹(目录):(1)将本地文件夹拷贝到远程scp -r 目录名 用户名@计算机IP或者计算机名称:远程路径(2)从远程将文件夹拷回本地scp -r 用户名@计算机IP或者计算机名称:目录名 本地路径 原文地址:https://www.cnblogs.com/Sky-Raining/p/12294155.

lnmp一键安装包卸载mysql,重新安装报错mysql57-community-release conflicts with mysql-community-release-el6-5.noarch

环境:CentOS Linux release 7.6.1810 lnmp1.5 独立下载mysql仓库 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install mysql57-community-release-el7-10.noarch.rpm 报错 No package matched to upgrade: mysql57-community-releas