LNMP代表的就是:Linux系统下Nginx+MysqL+PHP这种网站服务器架构。

Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debiancentosubuntufedoragentoo等。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器

MysqL是一个小型关系型数据库管理系统

PHP是一种在服务器端执行的嵌入HTML文档的脚本语言

这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

(一)首先需要安装一个Ubuntu系统,我是在虚拟机上安装的,过程非常简单

安装好后就可以在系统上装Nginx、MysqL、PHP了。

我们先要配置系统的网卡,让他可以上网,并设置他的DNS

root@bogon:~#vim/etc/network/interfaces
root@bogon:~#vim/etc/resolv.conf

然后重启网卡,Ubuntu和centos重启网卡的命令并不相同

root@bogon:~#ifdowneth0&&ifupeth0

查看一下网卡信息确认是否已经配置好

(二)

然后进行下一步,安装Nginx,可以到官网下载,找到稳定版

打开/etc/apt/source.list文件,将下面两行命令粘贴到文件的末尾,不要粘错了!!

debhttp://Nginx.org/packages/ubuntu/codenameNginx

deb-srchttp://Nginx.org/packages/ubuntu/codenameNginx

然后将codename改成trusty,不同版本的系统替换的单词不同,到官网查找即可

下载秘钥

root@bogon:~#wgethttp://Nginx.org/keys/Nginx_signing.key

下载后执行下面的这条命令

root@bogon:~#apt-keyaddNginx_signing.key

最后更新源,安装Nginx,启动Nginx

root@bogon:~#apt-getupdate
root@bogon:~#apt-getinstallNginx
root@bogon:~#serviceNginxstart

我们看一下80端口起来没有

root@bogon:~#netstat-ntpl|grep80

设置一下防火墙允许80端口通过,ubuntu和centos命令也不同

root@bogon:~#ufwallow80

用浏览器登录本机IP地址,就可以看到Nginx的欢迎页面了

(三)

Nginx装好后就可以安装MysqL了

先建立MysqL相关的用户、组、文件夹,将新建的目录递归设置属主MysqL和属组MysqL

root@bogon:~#groupaddMysqL
root@bogon:~#useradd-gMysqLMysqL-s/bin/false
root@bogon:~#mkdir-p/disk/data/MysqL/var
root@bogon:~#chown-RMysqL:MysqL/disk/data/MysqL/var

解压MysqL包。

root@bogon:~#tarzxvfMysqL-5.5.35.tar.gz

安装一些程序包,否则后面会报错

root@bogon:~#apt-getinstallg++
root@bogon:~#apt-getinstalllibaio1
root@bogon:~#apt-getinstalllibncurses5-dev
root@bogon:~#apt-getinstalllibncurses5
root@bogon:~#wgethttp://ftp.gnu.org/gnu/bison/bison-2.5.1.tar.gz
root@bogon:~#tarzxvfbison-2.5.1.tar.gz
root@bogon:~#cdbison-2.5.1/
root@bogon:~/cdbison-2.5.1#./configure

在配置过程中会出错,是因为没有安装m4

root@bogon:~/cdbison-2.5.1#apt-getinstallm4
Ubuntu中没有make命令,安装一下。在Ubuntu中用apt-get命令
root@bogon:~/cdbison-2.5.1#apt-getinstallmake
root@bogon:~/cdbison-2.5.1#make&&makeinstall

然后进行MysqL的安装

root@bogon:~#cdMysqL-5.5.35/
root@bogon:~/MysqL-5.5.35#cmake.-DCMAKE_INSTALL_PREFIX=/disk/local/MysqL-DMysqL_DATADIR=/disk/data/MysqL/var-DSYSconfdIR=/etc

你会看到Ubuntu上cmake命令也没有

root@bogon:~/MysqL-5.5.35#apt-getinstallcmake

再cmake一下,如果还报错,就rm CMakeCache.txt

成功后编译安装

root@bogon:~/MysqL-5.5.35#make&&makeinstall

MysqL安装好后就可以进行配置了,一定要在安装目录下进行

root@bogon:~#cd/disk/local/MysqL
root@bogon:~/disk/local/MysqL#cp./support-files/my-huge.cnf/etc/my.cnf

修改配置文件,做好备份

root@bogon:~/disk/local/MysqL#vim/etc/my.cnf
root@bogon:~/disk/local/MysqL#mv/etc/my.cnf/etc/my.cnf.bak
root@bogon:~/disk/local/MysqL#vim/etc/my.cnf.bak
root@bogon:~/disk/local/MysqL#vim/etc/my.cnf

将以下配置写到配置文件中

[client]
port=3306
socket=/tmp/MysqL.sock
[MysqLd]
datadir=/disk/data/MysqL/var
port=3306
socket=/tmp/MysqL.sock
skip-external-locking
key_buffer_size=256M
max_allowed_packet=20M
sort_buffer_size=2M
read_buffer_size=2M
read_rnd_buffer_size=8M
myisam_sort_buffer_size=64M
#server-id=1
#xzy
thread_stack=192K
thread_cache_size=64
myisam-recover=BACKUP
max_connections=5000
query_cache_limit=2M
query_cache_size=256M
#错误日志记录
log_error=/disk/log/MysqL/error.log
#慢查询日志
#slow-query-log=/disk/log/MysqL/MysqL-slow.log
#long_query_time=5
#log-queries-not-using-indexes
#二进制文件日志
log_bin=/disk/log/MysqL/MysqL-bin.log
binlog_format=row
expire_logs_days=10
max_binlog_size=100M
#不区分大小写
lower_case_table_names=1
[MysqLdump]
quick
max_allowed_packet=16M
[MysqL]
no-auto-rehash
[myisamchk]
key_buffer_size=256M
sort_buffer_size=256M
read_buffer=2M
write_buffer=2M
[MysqLhotcopy]
interactive-timeout

新建日志文件,并设置属主和属组

root@bogon:~/disk/local/MysqL#kdir-p/disk/log/MysqL
root@bogon:~/disk/local/MysqL#chown-RMysqL:MysqL/disk/log/MysqL

初始化数据库

root@bogon:~/disk/local/MysqL#/disk/local/MysqL/scripts/MysqL_install_db--user=MysqL

把MysqL加入系统启动,他会告诉你找不到/etc/rc.d/init.d/MysqLd文件

root@bogon:~/disk/local/MysqL#cp./support-files/MysqL.server/etc/rc.d/init.d/MysqLd

此时进入当前目录下的support-files/目录

root@bogon:~/disk/local/MysqL/support-files#./MysqL.serverrestart

这样就将MysqL启动起来了

MysqL使用3306端口,将3306端口加入防火墙

root@bogon:~#ufwallow3306

查看防火墙状态

root@bogon:~#ufwstatus

最后就是给MysqL数据库里的root账号一个密码,这个MysqL的root不是指操作系统的root,而是指这个数据库管理系统的root

root@bogon:~/disk/local/MysqL/bin#./MysqLadmin-urootpassword'666666'

接下来我们修改一下/etc/profile文件将这句话加到文件末尾,把MysqL服务加入系统环境变量

exportPATH=$PATH:/disk/local/MysqL/bin

使配置立即生效source /etc/profile 这样我们就能Tab出MySQL命令了

我们用账号密码登录下MysqL

root@bogon:~#MysqL-uroot-p

再输入密码就能登录进行数据库的操作了

我们用windows下的Natcivat连接服务器MysqL,出现1130错误提示,是因为远程服务器无权限登录MysqL

对root用户授权并设置密码

MysqL>grantallon*.*to'root'@'%'identifiedby'888888';

(四)安装PHP,PHP的安装比较简单

root@bogon:~#apt-getinstallPHP5
root@bogon:~#apt-getinstallPHP5-fpm
root@bogon:~#apt-getinstallPHP5-curl
root@bogon:~#apt-getinstalllibmcrypt4PHP5-mcrypt
root@bogon:~#apt-getinstallPHP5-gd
root@bogon:~#apt-getinstallPHP5-xmlrpc
root@bogon:~#apt-getinstalllibapache2-mod-PHP5
root@bogon:~#apt-getinstallPHP5-MysqL
root@bogon:~#/etc/init.d/PHP5-fpmstart

然后将PHP和Nginx进行整合,修改默认配置文件,将下面的代码取消注释

root@ubuntu:/etc/Nginx/conf.d#vimdefault.conf
location~\.PHP${
roothtml;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.PHP;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi_params;
}

如果更改了端口,记得设置防火墙!!!修改完配置文件后,记得重启Nginx服务!!!

检查一下9000端口是否开启,如果没有的话

修改/etc/PHP5/fpm/pool.d/www,conf,将文件中的Listen改为9000

在网站根目录/usr/share/Nginx/html下新建一个index.PHP文件,写入<?PHP PHPinfo();?>

记得重启PHP5-fpm服务!!!

在浏览器地址中输入http://本机地址/index.PHP就能访问到PHP页面了

(五)现在讲lnmp环境搭建好了,接下来安装discuz论坛

将discuz_X3.3_SC_UTF8.zip压缩包解压到网站根目录下/usr/share/Nginx/html

安装unzip命令 -d 指定解压目录

会得到三个文件夹upload、readme、utility

对网站根目录设置权限

root@bogon:~#chmod-R777/usr/share/Nginx/html/

用浏览器访问http://主机地址/upload/install/index.PHP

进入discuz安装首页进行安装,填写主机名,数据库密码,管理员密码

安装成功后用管理员登录就可以了

Ubuntu系统下lnmp环境的搭建的更多相关文章

  1. 关于h5中的fetch方法解读(小结)

    这篇文章主要介绍了关于h5中的fetch方法解读(小结),fetch身为H5中的一个新对象,他的诞生,是为了取代ajax的存在而出现,有兴趣的可以了解一下

  2. 如何在iOS 10上设置日志级别?

    换句话说,如果我在iOS上运行的代码就像这样:那么在Console.app中看到记录的消息需要做些什么呢?

  3. 从iOS应用程序发送帖子到PHP脚本不工作…简单的解决方案就像

    我之前已经做了好几次了但是由于某些原因我无法通过这个帖子…我尝试了设置为_POST且没有的变量的PHP脚本……当它们未设置为发布时它工作精细.这是我的iOS代码:这里是PHP的一大块,POST变量不在正确的位置?我想这对于更有经验的开发人员来说是一个相当简单的答案,感谢您的帮助!解决方法$_POST是一个数组,而不是一个函数.您需要使用方括号来访问数组索引:

  4. 为什么Xcode 8(iOS 10)在控制台中打印[LogMessageLogging]

    为什么Xcode8打印[LogMessageLogging]在控制台中,当我调用地图视图时?任何人都可以提出一些建议吗?解决方法PrivacyTheunifiedloggingsystemconsidersdynamicstringsandcomplexdynamicobjectstobeprivate,anddoesnotcollectthemautomatically.Toensuretheprivacyofusers,itisrecommendedthatlogmessagesconsiststri

  5. ios – 在Swift 4中为os_log传递可变参数

    我正在尝试为Swift4/iOS11中的os_log编写一个方便的包装器,但是我已经遇到了传递可变参数的艰难战斗.基本上,我想编写一个如下所示的函数.不幸的是,我似乎无法弄清楚传递参数的神奇语法,并且在CVararg讨论的泥潭中有点迷失.(…这让我想念Python的splatting语法)解决方法我还没有找到解决方案,所以这个愚蠢的黑客:

  6. xcode – osx上的config.log是什么?它在哪里?

    任何人都可以解释’configure’是什么和做什么,一般可以找到config.log文件?

  7. api – HTTPS请求仅在iOS,Ionic 2上失败

    我有一个Ionic2应用程序,它调用SpringBootAPI将推送通知发送到其他设备.API使用HTTPS配置.APIPOST请求适用于除iOS之外的所有内容.我在服务器上的SSL证书是自签名的(可能就是这样吗?

  8. swift学习日志—— Log日志

    Log输出是程序开发中很重要的组成部分,虽然它并不是直接的业务代码,但是却可以忠实地反映我们的程序是如何工作的,以及记录程序运行的过程中发生了什么。在OC中的Log日志设置请看我的另一篇博客:设置Log日志打印开关在Swift中,最简单的输出方法就是使用print,在我们关心的地方输出字符串和值。如果我们在开发中就注意使用了统一的log输出的话,这就变得非常简单了。

  9. 使用XcodeColors 来显示XCGLogger,进行swift 的logger定制

    XcodeColors项目地址XcodeColorsinstallationinstructionsforXcode4,5,6&7:Downloadorclonetherepository.OpentheXcodeColorsprojectwithXcodeIfcompilingforXcode4,thenchangetheschemestousetheXcode4buildconfigurati

  10. swift 自定义log输出

    swift自定义log输出直接上代码

随机推荐

  1. crontab发送一个月份的电子邮件

    ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

  2. 模拟两个ubuntu服务器计算机之间的慢速连接

    我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

  3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

    我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

  4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

    我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

  5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

    &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

  6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

    我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

  7. ubuntu – vagrant无法连接到虚拟框

    当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

  8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

    我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

  9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

    我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

  10. 检查ubuntu上安装的rubygems版本?

    如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

返回
顶部