lamp与lnmp的优劣
LAMP==Linux+Apache+Mysql+PHP
LNMP==Linux+Nginx+Mysql+PHP
Apache是世界是用排名第一的Web服务器软件,其几乎可以在所有广泛使用的计算机平台上运营,由于其跨平台和安全性被广泛使用,是最流行的Web服务端软件之一。
相比于nginx,apache有些臃肿,内存和CPU开销较大,性能上有损耗,nginx对于静态文件的响应能力远高apache。
Apache是负载PHP的最佳选择,如果流量很大的话,可以使用nginx来负载非PHP的Web请求。在整个IT界而言,70%的流量访问均来源于Apache。
下面说说Nginx
Nginx是一款高性能额Http和反向代理服务器,也是一个AMAP/POP3/SMTP服务器,Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日,2011年6月1日,nginx 1.0.4发布。
相比于Apache,nginx使用资源更少,支持更多并发连接,效率更高,作为负载均衡服务器。nginx即可对内进行支持,也可对外进行服务。其还是一款非常优秀的邮件代理服务器,安装简单,配置简介。
LNMP是Linux+Nginx+Mysql+PHP的组合方式,其特点是利用Nginx的快速与轻量级,替代以前的LAMP(Linux+Apache+Mysql+PHP)的方式。由于安装方便,并且安装脚本也随时更新。
LNMP方式的优点:占用VPS资源较少,Nginx配置起来也比较简单,利用fast-cgi的方式动态解析PHP脚本。
LNMP方式的缺点:php-fpm组件的负载能力有限,在访问量巨大的时候,php-fpm进程容易僵死,容易发生502 bad gateway错误
综上所述:
基于 LAMP 架构设计具有成本低廉、部署灵活、快速开发、安全稳定等特点,是 Web 网络应用和环境的优秀组合。若是服务器配置比较低的个人网站,当然首选 LNMP 架构。
当然,在大流量的时候。把Apache和Nginx结合起来使用,也不失为一个不错选择,如下:
LNAMP是Linux+Nginx+Apache+Mysql+PHP的组合方式,其特点是利用Nginx来作为静态脚本的解析,而利用 Nginx的转发特性,将动态脚本的解析转交给Apache来处理,这样,能充分利用两种Web服务器的特点,对于访问量需求较大的站点来说,是一个很不错的选择。
LNAMP方式的优点:由于Apache本身处理PHP的能力比起php-fpm要强,所以不容易出现类似502 bad gateway的错误。适合访问量较大的站点使用。
LNAMP方式的缺点:相比LNMP方式会多占用一些资源,另外,配置虚拟主机需要同时修改Nginx和Apache的配置文件,要稍微麻烦一些。
一、centos7下载安装
1、去centos官网下载 https://www.centos.org/download/
选择DVD ISO ,之后选择一个镜像源。推荐网易的镜像http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso
2、安装在虚拟机中,下载地址为https://my.vmware.com/cn/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation/10_0,也可以使用virtual box
二、Nginx安装
输入 yum -y install nginx
安装成功后启动 ystemctl start nginx
设置为开机启动 systemctl enable nginx
配置文件 /etc/nginx/nginx.conf
默认网站路径 /usr/share/nginx/html
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
root /etc/htmlwxw;
location / {
index index.html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
root后为网站根目录,可以修改
index后为默认的网页
三、mysql的安装
centos7的yum -y install mysql 只能安装mariadb(MariaDB是MySQL源代码的一个分支,在意识到Oracle会对MySQL许可做什么后分离了出来(MySQL先后被Sun、Oracle收购)。除了作为一个Mysql的“向下替代品”,MariaDB包括的一些新特性使它优于MySQL。)
不过mysql的command是一样的。
1、启动mysql systemctl start mariadb
2、安装完后进入数据库 mysql -u root (第一次进入不需要密码)
3、设置新密码
mysql> set password for 'root'@'localhost' =password('password');
4、mysql配置文件为/etc/my.cnf
最后加上编码配置
[mysql]
default-character-set =utf8
这里的字符编码必须和/usr/share/mysql/charsets/Index.xml中一致。
5、远程连接
把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户。
mysql> grant all privileges on *.* to root@'%'identified by 'password';
如果是新用户而不是root,则要先新建用户
mysql>create user 'username'@'%' identified by 'password';
此时就可以进行远程连接了。
6、数据库操作
导出
mysqldump -u root -p 数据库名>文件名
导入
mysql -uroot -p 数据库名<文件名
7、安装mysql(官网下载法)
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server
四、PHP安装
PHP 通过 PHP-FPM(FastCGI进程管理器)可以很好地与 Nginx 协同工作。
PHP-FPM 针对不同规模的网站功能和性能都非常优良,尤其是高并发大型网站。
如下,安装PHP5或PHP7都可以,两者安装其一即可。
PHP5安装步骤:
yum install php php-mysql php-fpm
install php php-mysql php-fpm
PHP7安装步骤:
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm # 安装 EPEL 源
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # 安装 Webstatic 源
yum install php70w php70w-common php70w-fpm php70w-opcache php70w-mysqlnd php70w-gd php70w-mbstring # PHP 5.3.0以上推荐使用mysqlnd驱动,而不是msyql
http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm # 安装 EPEL 源
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # 安装 Webstatic 源
yum install php70w php70w-common php70w-fpm php70w-opcache php70w-mysqlnd php70w-gd php70w-mbstring # PHP 5.3.0以上推荐使用mysqlnd驱动,而不是msyql
这里,我们用webstatic源来安装PHP7。
webstatic源还有很多PHP7.0扩展,地址:https://webtatic.com/packages/php70/。
PHP7.1版本把地址中的php70
改成php71
即可。
然后是配置。打开文件 /etc/php.ini,删除cgi.fix_pathinfo
前面的;
注释符,再赋值为0
,如下:
[...]
cgi.fix_pathinfo=0
[...]
再配置PHP-FPM。打开文件 /etc/php-fpm.d/www.conf,
- 将
127.0.0.1:9000
改为php-fpm.sock
文件 - 取消
listen.owner
和listen.group
前面的注释 - 将
user
和group
的值由apache
改为nginx
如下:
[...]
listen = /var/run/php-fpm/php-fpm.sock
[...]
listen.owner = nobody
listen.group = nobody
[...]
user = nginx
group = nginx
[...]
var/run/php-fpm/php-fpm.sock
[...]
listen.owner = nobody
listen.group = nobody
[...]
user = nginx
group = nginx
[...]
启动 PHP-FPM,并设置为开机启动:
systemctl start php-fpm
systemctl enable php-fpm
start php-fpm
systemctl enable php-fpm
PHP-FPM 启动之后,会生成 socket 文件 /var/run/php-fpm/php-fpm.sock
作为守护进程运行 FastCGI 服务。
接下来配置 Nginx 的时候会用到这个 socket 文件。
我的博客 暗网世界 对暗网感兴趣的朋友可以关注下!