LNMP简介
LAMP(Linux apache mysql php)---比较早的web服务。
LNMP(Linux nginx mysql php)---比较潮流,新的webn服务,使用率上升趋势(国内非常流行)。
Nginx(Engine X),是俄罗斯人开发的,开源的www服务软件,软件一共780K(非常小),是一款静态(html,js,css,jpg等)www软件,静态小文件高并发,同时占用资源很少。
Nginx使用平台(linux unix windows都可以)和apache一样。
Nginx的功能:
a.www web服务---http 80
b.负载均衡(反向代理proxy)
c.web cache
nginx的优点:
1.配置简单,灵活。
2.高并发(静态小文件),静态1-2W。
3.占用资源少,2W并发开10个线程服务,内存消耗几百兆。
4.功能种类比较多(web cache proxy代理),每个功能都不是很强。
5.支持epoll模型,使得nginx支持高并发。
6.nginx配合动态服务和apache有区别。
7.利用nginx可以对IP限速。可以限制连接数。
实现原理:nginx(apache)--》php--》mysql
nginx的应用场合:
1.静态服务(图片,视频),另一个lighttpd(社区不活跃)。并发:1-3W,html、js、css、.flv
2.动态服务:nginx+fastcgi方式运行php,jsp。并发:500-1500,类似于apache+php,lighttpd+fcgi php
3.反向代理,负载均衡。日PV2000W以下,都可以用nginx做代理。haproxy,F5,a10
4.缓存服务,SQUID,VARNI.
nginx和其它web服务器对比:
1)apache
a.稳定强大
b.Prefork模式取消了进程创建开销,性能很高。
c.处理动态业务数据时,因关联到后端的引擎和数据库,瓶颈不在apache本身
d.高并发时消耗系统资源相对来说多一些
e.基于传统的select模型
2)nginx
a.基于异步IO模型(epoll,kqueue),性能强,能够支持上万并发
b.对小文件支持很好,性能很高(限静态小文件)
c.代码优美,扩展库必须编译进行主程序
d.消耗资源相对低
3)Lighttpd(百度贴吧,豆瓣)
a.基于异步IO模型,性能和nginx相近
b.扩展是SO模式,比nginx要灵活
c.全球使用率较低,安全性没有apache以及nginx好
d.通过插件(mod secdownload)可实现文件URL地址加密
企业生产场景如何选择web服务器(推荐):
静态业务:高并发,用nginx或lighttpd
动态业务:采用nginx和apache均可
既有动态又有静态业务:nginx和apache都可以,单选
对外业务nginx,对内业务apache
安装,配置nginx
1.安装准备:[root@localhost ~]# yum install pcre* -y
[root@localhost ~]# yum install openssl* -y
2.编译:
./configure --prefix=/application/nginx1.12.0 \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_module
3.启动检查:
[root@localhost application]# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx1.12.0/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx1.12.0/conf/nginx.conf test is successful
[root@localhost application]# /application/nginx/sbin/nginx
[root@localhost application]# netstat -lntup|grep nginx(另外80端口也可以查)
出现这个界面表示成功
[root@localhost application]# vim /application/nginx/html/index.html 修改主页内容
4.关于nginx模块
1)Nginx core modules(必须的),包括Main Events
2)Standard HTTP modules(虽然不是必须的,但是缺省都会安装,不建议改动),包括Core Acess FastCGI Gzip(压缩模块,性能优化) LOG(日志模块) Proxy Rewrite(URL重写模块) Upstream(负载均衡模块)等等
提示:缺省条件下,这两组模块都会安装。修改配置文件,主要是根据这2组模块的功能来修改模块的参数。官网能够查看模块的参数。
5.nginx的配置
[root@localhost conf]# egrep -v "#|^$" nginx.conf.default >nginx.conf(去掉注释#行)
[root@localhost conf]# vim nginx.conf(cairui.org是别名)
[root@localhost conf]# mkdir /application/nginx/html/www
[root@localhost conf]# touch /application/nginx/html/www/index.html
[root@localhost conf]# vim /application/nginx/html/www/index.html
[root@localhost conf]# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx1.12.0/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx1.12.0/conf/nginx.conf test is successful
[root@localhost conf]# /application/nginx/sbin/nginx -s reload
修改windows本地hosts文件,保证在win命令提示符内能ping通来自虚拟主机,再上网页查看
添加状态的server标签:
[root@localhost conf]# vim /application/nginx/conf/nginx.conf
##status
server {
listen 80;
server_name status.cairui.org;
location / {
stub_status on;
access_log off;
}
}
在win本地hosts文件中也要添加,
解决恶意域名绑定:
[root@localhost conf]# vim /application/nginx/conf/nginx.conf(必须放在第一个server)
server {
listen 80;
location / {
deny all;
}
}
开启日志功能:
[root@localhost conf]# cat /application/nginx/conf/nginx.conf.default (找到日志格式)
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
拷贝到nginx.conf下,去掉注释
错误日志格式放在最顶端
分析nginx日志的软件:syslog,rsyslog,Awstats,scribe,kafka
Mysql
mysql安装方法:
5.1---编译安装configure,make,make install
5.5---编译安装cmake,make,make install(可以直接用二进制包安装,解压即可)
1.安装mysql
[root@localhost conf]# useradd mysql -s /sbin/nologin -M
[root@localhost tools]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz
[root@localhost tools]# mv mysql-5.5.32-linux2.6-x86_64 /application/mysql5.5.32
[root@localhost tools]# ln -s /application/mysql5.5.32/ /application/mysql
[root@localhost tools]# chown -R mysql.mysql /application/mysql/data/
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/application/mysql/ --datadir=/application/mysql/data/(编译之前需要安装libaio)
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# vim /etc/init.d/mysqld
[root@localhost mysql]# cp support-files/my-small.cnf /etc/my.cnf (每个版本的配置文件不同)
cp:是否覆盖"/etc/my.cnf"? y
[root@localhost mysql]# vim /etc/profile
[root@localhost mysql]# service mysqld start
Starting MySQL.. SUCCESS!
[root@localhost mysql]# mysql
数据库优化:
mysql> show databases
mysql> drop Database test;
mysql> select user,host from mysql.user;
mysql> drop user''@localhost;
[root@localhost mysql]# mysql -uroot -pnew-password
修改密码(进入mysql修改)mysql> set password for root@localhost = password('123');
PHP
LNMP下的php:
apache----》libphp5.so
nginx---》fcgi php-fpm port9000(百度)
在安装php之前确保mysql,nginx运行正常[root@localhost mysql]# netstat -lntup|egrep "nginx|mysql"
1.需要安装的软件
安装libiconv(./configure --prefix=/usr/local/libiconv)
安装libmcrypt(不是必须,建议安装)是一个加密的库
./configure
make
make install
sleep2
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../cd
安装mhash
./configure
make
make install
sleep 2
cd ../
rm -fr /usr/lib64/libmcrypt.*
rm -fr /usr/lib64/libmhash*
ln -s /usr/local/lib64/libmcrypt.la /usr/lib64/libmcrypt.la
ln -s /usr/local/lib64/libmcrypt.so /usr/lib64/libmcrypt.so
ln -s /usr/local/lib64/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4
ln -s /usr/local/lib64/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8
ln -s /usr/local/lib64/libmhash.a /usr/lib64/libmhash.a
ln -s /usr/local/lib64/libmhash.la /usr/lib64/libmhash.la
ln -s /usr/local/lib64/libmhash.so /usr/lib64/libmhash.so
ln -s /usr/local/lib64/libmhash.so.2 /usr/lib64/libmhash.so.2
ln -s /usr/local/lib64/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
安装mcrypt
/sbin/ldconfig
./configure LD_LIBRARY_PATH=/usr/local/lib
make
make install
cd ../
sleep 2
2.安装php
[root@localhost tools]# yum install libxslt* -y
./configure \
--prefix=/application/php5.6.30 \
--with-mysql=/application/mysql \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-safe-mode \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--with-curlwrappers \
--enable-mbregx \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-zend-multibyte \
--enable-static \
--with-xsl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp \
--enable-opcache=no
ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64
报错处理:,,
3.php配置
[root@localhost php-5.3.27]# cp php.ini-production /application/php/lib/php.ini
直接上传
[root@localhost etc]# /application/php/sbin/php-fpm -t
[root@localhost etc]# /application/php/sbin/php-fpm
开机启动
cat >>/etc/rc.local< #nginx+php-fpm by cairui at 2017 /etc/init.d/mysqld start /application/php/sbin/php-fpm /application/nginx/sbin/nginx EOF [root@134 extra]# cat /application/nginx/conf/extra/bbs.conf server { listen 80; server_name bbs.caimengzhi.org; root html/bbs; index index.html index.htmi index.php; location ~ .*\.(php|php5)?$ #此时不{}内不指定目录的话就直接读取上面html/bbs下的php文件 { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } } [root@localhost conf]# cd /application/nginx/html/www/ [root@localhost www]# vim index.php [root@localhost www]# /application/nginx/sbin/nginx -t [root@localhost www]# /application/nginx/sbin/nginx -s reload wiki软件 [root@localhost www]# mysql mysql> create database wiki; mysql> grant all on wiki.* to wiki@'localhost' identified by 'wiki'; mysql> flush privileges ; mysql> quit (wiki下载HDwiki) [root@localhost www]# wget (注意www) [root@localhost www]# unzip download.php\?n\=HDWiki-v6.0GBK-20170209.zip [root@localhost www]# rm -f download.php\?n\=HDWiki-v6.0GBK-20170209.zip [root@localhost www]# mv hdwiki/* . [root@localhost www]# cd ../ [root@localhost html]# chown -R nginx.nginx www/ 以上是linux+Nginx+Mysql+Php图示,操作步骤详解!的详细内容。更多信息请关注PHP中文网其他相关文章!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

系统默认的用户名是一串英文,非常不好记,所以有很多用户想要知道win11怎么修改用户名,其实我们只需要进入账户设置,就可以修改本地账户名称了。win11怎么修改用户名:第一步,右键桌面此电脑,打开“管理”第二步,展开“本地用户和组”,双击打开“用户”第三步,右键想要修改用户名的账户,打开“属性”第四步,在“全名”下输入想要的名称。第五步,修改完成后,重启电脑就可以看到账户名称修改成功了。如果你使用了微软账号登录,那么需要进入微软官网修改。

华为手机微信分身功能是指在手机上同时登录两个微信账号,并且能够实现两个微信账号的隔离使用。这项功能能够帮助用户更方便地管理工作和个人生活,避免混淆。下面将详细介绍在华为手机上如何进行微信分身操作。步骤一:进入手机设置首先,打开华为手机的主屏幕,在桌面上找到“设置”应用,点击进入。步骤二:查找“应用双开”功能在设置界面中,向下滑动找到“应用双开”选项,点击进入

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

许多朋友在更新了win10版本之后觉得不是那么适应,想要恢复到之前使用的版本但是不知道该怎么做。那么今天小编就告诉大家win10怎么退回win8。希望可以帮助到你!win10怎么退回win8:ps:如果版本更新前有备份的话就可以回退版本,如果版本没有备份就不可以回退了哦~1、使用快捷键“win+i”打开设置,找到“更新和安全”。2、然后选择左侧的“恢复”选项。3、点击“回退到windows8.1”。ps:在升级win10后一个月可回退至原系统。4、选择一个为何要回退的原因。5、这时,window

如何重装电脑系统一直是很多小伙伴的疑问,有很多小伙伴总觉得重装系统比较难,但其实并不难的,只需要几步操作就可以了,下面小编就给大家分享如何重装电脑系统教程。 1.下载一个一键重装系统软件(建议:小鱼一键重装系统),然后打开软件。 2.选择自己需要的系统后点击下一步。 3.只需要等待下载完成点击立即重启。 4.重启后选择第二个进入咋们的pe系统。如图所示: 5.进入pe系统后会自动部署安装Windows系统只需要耐心等待即可。 6.安装完成后再重启一次就成功了。 以上就是如何重装

如何在荣耀手机上安装鸿蒙系统现如今,随着科技的飞速发展和人们对智能手机功能需求的不断提高,更多的用户开始对手机系统进行定制和个性化操作。而近期,华为公司推出的鸿蒙操作系统备受关注,不少用户都想尝试在自己的手机上安装这一新系统。作为华为旗下的子品牌,荣耀手机也是用户心仪的选择之一。那么,如何在荣耀手机上安装鸿蒙系统呢?接下来就让我们一起来了解一下吧。首先,我们

去除方法:1、使用substr_replace()函数将首位数字替换为空字符串即可,语法“substr_replace($num,"",0,1)”;2、用substr截取从第二位数字开始的全部字符即可,语法“substr($num,1)”。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Atom编辑器mac版下载
最流行的的开源编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境