当前位置:首页 » 网页前端 » lnmp脚本心得
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

lnmp脚本心得

发布时间: 2023-05-03 22:00:56

A. 如何搭建 LNMP环境

应网友需求,特地写上一篇关于Linode VPS配念升老置LNMP环境和搭建wordpress的文章。其实这篇文章也不会写详细的如何配置lnmp,因为lnmp.org官网本身就有详细的教程和军哥的论坛后援技术支持。这里主要叙述一些我当初实施过程中的思路和心得。希望能帮到一些还没入门的朋友。其实我自己并非技术人员,为什么走到后来还是使用VPS,喂有这么做才能解决一些问题,说多了都是泪唉。
因来我博客的大都为外贸业务员,当然也是直奔如何构建wordpress网站的。这时你首要做的事情肯定就是购买空间主机来完成网站的建笑颂设。空间主机与VPS有着很大的区别,具体的区别就不用专业术语了,估计说了也很难让大众一下子明白,就举一个例子吧。空间主机就像你去买一台电脑,人家帮你把盘分好、系统装完全,往后你只管安装自己需要的软件使用就好。而VPS则是相当于你买完电脑后,需要你自己亲手分区把系统装完全之后再下载各种软件等供日常使用。所以如果你并非web技术人员,而只是想建一个网站并且日后做电商使用,是没有必要购买VPS来自行搭建环境的,这里的环境是指网站建设和运行所需要的系统配置。所以购买主机空间最佳,然后一键安装wordpress,是多么容易的事。这里首推bluehost与godaddy的国外空间。
如果你是web技术人员,想要尝试自行构架环境并做更深层次的技术使用,那么建议你购买Linode家的VPS,本着负责任的态度,我只推荐自己使用过觉得不错的,速度快,价格中等,被墙的几率最小,不行就搬呗,Linode售后是很nice的。当你已经做完VPS的初始配置之后,需要给这台机器配置网站程序需要的运行环境,而wordpress则需要Linux、PHP、Mysql的构架。正因为人们想把事情变的更为简单,才有了LNMP的诞生。
LNMP一键安装包是什么?
你将安装包上传到VPS中,用命令来执行安装包,它将自动安装完所有内容,就类似于一键安装电脑系统的概念,嗯。
中文官方网站:LNMP.org 军哥的论坛有你出现常见问题的全面解决方案。
安装包下载
安装指南
添加虚拟主机 (建站的步骤)
wordpress安装包
建议仔升新手们本着耐心,积极学习的态度看完lnmp.org中的每一个步骤,并且实际手动的去操作,出现问题从军哥的交流中找找解决方案。有志者事竟成。

B. 电脑上的LNMP是什么,它的作用是什么。

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。 Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。[1] Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。[2] Mysql是一个小型关系型数据库管理系统。[3] Php是一种 HTML 内嵌式的语滑饥言,念高是一种在服务器端执行的嵌入HTML文档的脚本语言信高返。[3][4] 这四种软件均为免费软件,组合到一起,成为一个免费、高效的网站服务系统。

C. LAMP和LNMP区别是什么

LAMP和LNMP区别:

1、定义不同:

lamp:是Web应用软件组合。

lnmp:指的是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一键安装包。

2、作用不同:

lamp:是Linux(操作系统)、ApacheHTTP 服务器。一般用来建立喊猜web应用平台。

lnmp:是用来在Linux系统下Nginx+MySQL+PHP这种网站中搭建服务器架誉瞎构。

3、用户评价不同:

lamp:LAMP是最强大的郑虚型网站解决方案。

lnmp:lnmp搭建的Linux系统,是目前最流行的免费操作系统。

4、软件组件不同:

lamp:Linux、Apache、MySQL、PHP,Perl 或 Python。

lnmp:Nginx、MySQL、PHP、PHPMyAdmin、Apache(可选)、Zend Optimizer(可选)、eAccelerator(可选)、ionCube(可选)、PureFTPd(可选)、VsFTPd(可选)。

5、适用环境不同:

lamp:

系统支持:CentOS-5 (32bit/64bit)、CentOS-6 (32bit/64bit)等linux系统

内存要求:≥256M

lnmp:

CentOS 5.8 32Bit / 64Bit

CentOS 6.2 32Bit / 64Bit

CentOS 6.3 32Bit / 64Bit

D. 如何配置LNMP环境搭建wordpress网站

个人建弊轮春站的办法很简单,首先网站服务器选择1核2G1M,40G高效云盘。要准备以下的资料

  • 选择云服务器,租耐例如阿里或者腾讯等

  • 国内服务器要备案,hk和国外服务器不用。

  • 建立网站环境,这时候用lnmp环境,速度更快,安装 wp程序。

  • 安装桐亮wp过程就很简单了,按照页面提示输入数据库名、账号密码,然后输入网站title,后台账号密码,邮箱,安装成功就可以了

  • 解析域名到服务器

  • WordPress程序选择的主机配置应该支持php。支持伪静态。首选Linux系统主机。

E. CentOS 7 用户怎样安装 LNMP

LNMP动态网站部署架悔厅竖构是一套由Linux + Nginx + MySQL + PHP组成的动态网站系统解决方案。LNMP中的字母L是Linux系统的意碧大思,不仅可以是RHEL、CentOS、Fedora,还可以是Debian、Ubuntu等系统。在使用源码包安装服务程序之前,首先要让安装主机具备编译程序源码的环境,他需要具备C语言、C++语言、Perl语言的编译器,以及各种常见的编译支持函数库程序。因此请先配置妥当Yum软件仓库,然后把下面列出的这些软伏李件包都统统安装上:
[root@linuxprobe ~]# yum install -y apr* autoconf automake bison bzip2 bzip2* compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel
Loaded plugins: langpacks, proct-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
………………省略部分安装过程………………
Installing:
apr x86_64 1.4.8-3.el7 rhel7 103 k
apr-devel x86_64 1.4.8-3.el7 rhel7 188 k
apr-util x86_64 1.5.2-6.el7 rhel7 92 k
apr-util-devel x86_64 1.5.2-6.el7 rhel7 76 k
autoconf noarch 2.69-11.el7 rhel7 701 k
automake noarch 1.13.4-3.el7 rhel7 679 k
bison x86_64 2.7-4.el7 rhel7 578 k
bzip2-devel x86_64 1.0.6-12.el7 rhel7 218 k
compat-dapl x86_64 1:1.2.19-3.el7 rhel7 109 k
compat-db-headers noarch 4.7.25-27.el7 rhel7 48 k
compat-db47 x86_64 4.7.25-27.el7 rhel7 795 k
compat-gcc-44 x86_64 4.4.7-8.el7 rhel7 10 M
compat-gcc-44-c++ x86_64 4.4.7-8.el7 rhel7 6.3 M
compat-glibc x86_64 1:2.12-4.el7 rhel7 1.2 M
compat-glibc-headers x86_64 1:2.12-4.el7 rhel7 452 k
compat-libcap1 x86_64 1.10-7.el7 rhel7 19 k
compat-libf2c-34 x86_64 3.4.6-32.el7 rhel7 155 k
compat-libgfortran-41 x86_64 4.1.2-44.el7 rhel7 142 k
compat-libtiff3 x86_64 3.9.4-11.el7 rhel7 135 k
compat-openldap x86_64 1:2.3.43-5.el7 rhel7 174 k
cpp x86_64 4.8.2-16.el7 rhel7 5.9 M
fontconfig-devel x86_64 2.10.95-7.el7 rhel7 128 k
freetype-devel x86_64 2.4.11-9.el7 rhel7 355 k
gcc x86_64 4.8.2-16.el7 rhel7 16 M
gcc-c++ x86_64 4.8.2-16.el7 rhel7 7.1 M
………………省略部分安装过程………………
Complete!
[root@linuxprobe ~]# cd /usr/local/src
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/cmake-2.8.11.2.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/Discuz_X3.2_SC_GBK.zip
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/freetype-2.5.3.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/jpegsrc.v9a.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/libgd-2.1.0.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/libmcrypt-2.5.8.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/libpng-1.6.12.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/libvpx-v1.3.0.tar.bz2
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/mysql-5.6.19.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/nginx-1.6.0.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/openssl-1.0.1h.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/php-5.5.14.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/pcre-8.35.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/t1lib-5.1.2.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/tiff-4.0.3.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/yasm-1.2.0.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/zlib-1.2.8.tar.gz
[root@linuxprobe src]# ls
zlib-1.2.8.tar.gz libmcrypt-2.5.8.tar.gz pcre-8.35.tar.gz
cmake-2.8.11.2.tar.gz libpng-1.6.12.tar.gz php-5.5.14.tar.gz
Discuz_X3.2_SC_GBK.zip libvpx-v1.3.0.tar.bz2 t1lib-5.1.2.tar.gz
freetype-2.5.3.tar.gz mysql-5.6.19.tar.gz tiff-4.0.3.tar.gz
jpegsrc.v9a.tar.gz nginx-1.6.0.tar.gz yasm-1.2.0.tar.gz
libgd-2.1.0.tar.gz openssl-1.0.1h.tar.gz

CMake是Linux系统中一款常用的编译工具。要想通过源码包安装服务程序,就一定要严格遵守上面总结的安装步骤—下载及解压源码包文件、编译源码包代码、生成二进制安装程序、运行二进制的服务程序安装包。接下来在解压、编译各个软件包源码程序时,都会生成大量的输出信息,下文中将其省略,请读者以实际操作为准。
[root@linuxprobe src]# tar xzvf cmake-2.8.11.2.tar.gz
[root@linuxprobe src]# cd cmake-2.8.11.2/
[root@linuxprobe cmake-2.8.11.2]# ./configure
[root@linuxprobe cmake-2.8.11.2]# make
[root@linuxprobe cmake-2.8.11.2]# make install

20.2.1 配置Mysql服务
[root@linuxprobe cmake-2.8.11.2]# cd ..
[root@linuxprobe src]# useradd mysql -s /sbin/nologin

创建一个用于保存MySQL数据库程序和数据库文件的目录,并把该目录的所有者和所属组身份修改为mysql。其中,/usr/local/mysql是用于保存MySQL数据库服务程序的目录,/usr/local/mysql/var则是用于保存真实数据库文件的目录。
[root@linuxprobe src]# mkdir -p /usr/local/mysql/var
[root@linuxprobe src]# chown -Rf mysql:mysql /usr/local/mysql

接下来解压、编译、安装MySQL数据库服务程序。在编译数据库时使用的是cmake命令,其中,-DCMAKE_INSTALL_PREFIX参数用于定义数据库服务程序的保存目录,-DMYSQL_DATADIR参数用于定义真实数据库文件的目录,-DSYSCONFDIR则是定义MySQL数据库配置文件的保存目录。由于MySQL数据库服务程序比较大,因此编译的过程比较漫长,在此期间可以稍微休息一下。
[root@linuxprobe src]# tar xzvf mysql-5.6.19.tar.gz
[root@linuxprobe src]# cd mysql-5.6.19/
[root@linuxprobe mysql-5.6.19]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/var -DSYSCONFDIR=/etc
[root@linuxprobe mysql-5.6.19]# make
[root@linuxprobe mysql-5.6.19]# make install
[root@linuxprobe mysql-5.6.19]# rm -rf /etc/my.cnf
[root@linuxprobe mysql-5.6.19]# cd /usr/local/mysql
[root@linuxprobe mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var

把系统新生成的MySQL数据库配置文件链接到/etc目录中,然后把程序目录中的开机程序文件复制到/etc/rc.d/init.d目录中,以便通过service命令来管理MySQL数据库服务程序。记得把数据库脚本文件的权限修改成755以便于让用户有执行该脚本的权限:
[root@linuxprobe mysql]# ln -s my.cnf /etc/my.cnf
[root@linuxprobe mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@linuxprobe mysql]# chmod 755 /etc/rc.d/init.d/mysqld

编辑刚复制的MySQL数据库脚本文件,把第46、47行的basedir与datadir参数分别修改为MySQL数据库程序的保存目录和真实数据库的文件内容。
[root@linuxprobe mysql]# vim /etc/rc.d/init.d/mysqld
………………省略部分输出信息………………
39 #
40 # If you want to affect other MySQL variables, you should make your changes
41 # in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files.
42
43 # If you change base dir, you must also change datadir. These may get
44 # overwritten by settings in the MySQL configuration files.
45
46 basedir=/usr/local/mysql 47 datadir=/usr/local/mysql/var
48
………………省略部分输出信息………………
[root@Linuxprobe mysql]# service mysqld start
Starting MySQL. SUCCESS!
[root@linuxprobe mysql]# chkconfig mysqld on
[root@linuxprobe mysql]# vim /etc/profile
………………省略部分输出信息………………
64
65 for i in /etc/profile.d/*.sh ; do
66 if [ -r "$i" ]; then
67 if [ "${-#*i}" != "$-" ]; then
68 . "$i"
69 else
70 . "$i" >/dev/null
71 fi
72 fi
73 done
74 export PATH=$PATH:/usr/local/mysql/bin
75 unset i
76 unset -f pathmunge
[root@linuxprobe mysql]# source /etc/profile
[root@linuxprobe mysql]# mkdir /var/lib/mysql

受限制,没办法全部搬运,可网络 免费电子书 linux就该这么学,第20章,复制文章中的命令来安装

F. 502 bad gateway怎么解决

502 Bad Gateway是一种报错提示,这一错误并不意味着上游服务器已关闭(无响应网关/代理),而是上游服务器和网关/代理不同意的协议交换数据。
第一种原因:目前lnmp一键安装包比较多的问题就是502 Bad Gateway,大部分情况下原因是在安装php前,脚本中某些lib包可能没有安装上,造成php没有编译安装成功。解决办法:可以尝试根据lnmp一键安装包中的脚本手动安装一下,看看是什么睁咐枣错误导致的。
第二种原因:在php.ini里,eaccelerator配置项一定要放在Zend Optimizer配置之前,否则也可能引起502 Bad Gateway
第三种原因:在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。
第四种原因:php执行超时,修改/usr/local/php/etc/php.ini 将max_execution_time 改为300。
第五种原因:磁盘空间不足,如mysql日志占用大量空间。
第六种原因:查看php-cgi进程是否在运行。
另外的解决办法:
Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止,一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关。
php-fpm.conf有两个至关重要的参数,一个是max_children,另一个是request_terminate_timeout,但是这个值不是通用的,而是需要自己计算的。
在安装好使用过程中出现502问题,一般是因为默认php-cgi进程是5个,可能因为phpcgi进程不够用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 将其中的max_children值适当增加。
计算的方式如下:如果服务器性能足够好,且宽带资源足够充足,PHP脚本没有系循环或BUG的简态话可以直接将 request_terminate_timeout设置成0s。0s的含义是让PHP-CGI一直执行下去而没有悉拆时间限制。如果做不到这一点,也就 是说PHP-CGI可能出现某个BUG,或者宽带不够充足或者其他的原因导致PHP-CGI假死那么就建议给 request_terminate_timeout赋一个值,这个值可以根据服务器的性能进行设定。一般来说性能越好可以设置越高,20分钟-30分 钟都可以。
而max_children这个值又是怎么计算出来的呢?这个值原则上是越大越好,php-cgi的进程多了就会处理的很快,排队的请求就会很少。 设置max_children也需要根据服务器的性能进行设定,一般来说一台服务器正常情况下每一个php-cgi所耗费的内存在20M左右。
按照官方的答案,排查了相关的可能,并结合了网友的答案,得出了下面的解决办法:
1、查看php fastcgi的进程数(max_children值)代码:netstat -anpo | grep “php-cgi” | wc -l
5(假如显示5)
2、查看当前进程,代码:top观察fastcgi进程数,假如使用的进程数等于或高于5个,说明需要增加(根据机器实际状况而定)
3、调整/usr/local/php/etc/php-fpm.conf 的相关设置
<value name=”max_children”>10</value>
<value name=”request_terminate_timeout”>60s</value>
max_children最多10个进程,按照每个进程20MB内存,最多200MB。
request_terminate_timeout执行的时间为60秒,也就是1分钟。