2017年最新 centos7 LNMP环境搭建

来源:互联网 发布:纯净水能烧开喝吗 知乎 编辑:程序博客网 时间:2024/06/05 14:51

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

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

这里,我们用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

  1. 将 127.0.0.1:9000 改为 php-fpm.sock 文件
  2. 取消 listen.ownerlisten.group前面的注释
  3. usergroup的值由apache改为nginx

如下:

[...]listen = /var/run/php-fpm/php-fpm.sock[...]listen.owner = nobodylisten.group = nobody[...]user = nginxgroup = nginx[...]

启动 PHP-FPM,并设置为开机启动:

systemctl start php-fpmsystemctl enable php-fpm

PHP-FPM 启动之后,会生成 socket 文件 /var/run/php-fpm/php-fpm.sock作为守护进程运行 FastCGI 服务。

接下来配置 Nginx 的时候会用到这个 socket 文件。













原创粉丝点击