Home > Archives > 如何在Centos 7中安装配置LNMP

如何在Centos 7中安装配置LNMP

Publish:

找了很多帮助,看了很多参考,最终,还是自己再整理一下吧。

建议:有一点Java基础,有一点Linux基础,就可以按照步骤做了。没有PHP基础,一点关系都没有。

啥!你还没有Centos 7系统,那就不需要读这篇笔记了,已瞎。

首先我们需要建一个用户(比如wwwroot)来执行接下来所有的安装活动。

建用户(wwwroot)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    ## 登录服务器:
    ssh root@domain.name

    ## 更改密码:
    passwd

    ## 添加用户:
    adduser 你要设置的用户名(wwwroot)

    ## 设置密码:
    passwd 你要设置的密码(wwwroot)

    ## 添加权限:
    visudo

    #然后找到下面的内容,并新添加一行:
    # User privilege specification
    root ALL=(ALL) ALL
    你的用户名 ALL=(ALL) ALL

    ## 修改ssh端口是必要的,最起码默认的端口,还是尽量改了吧
    sudo nano /etc/ssh/sshd_config
    Port 25000
    PermitRootLogin no
    AllowUsers 你的用户名

    #接着重启ssh服务,
    sudo systemctl reload sshd.service
    测试的话用下面这句,如果没问题,可以登录,那就可以退出了~
    ssh -p 25000 你的用户名@domain.name

运行环境配置

上面说完了初始化,现在应该要搭建LEMP环境了,由于默认的yum源中nginx比较老,想要使用新的版本需要添加源,(注意我们现在是使用刚才配置的新帐号登录的,换言之,不是root帐号,所以需要输入sudo)

安装Nginx

参考我的另外一篇博文.

安装Mysql

1
2
3
4
5
6
7
8
9
10
11
    安装Mysql
    sudo yum install mariadb-server mariadb
    
    同样的,等待完成后启动mysql数据库:
    sudo systemctl start mariadb
    
    接着可以进行mysql的初始化配置,设置密码帐号,删除测试表(这里基本是都输入y):
    sudo mysql_secure_installation
    
    按照提示设置数据库的密码即可,同理配置开机启动:
    sudo systemctl enable mariadb.service

安装php-fpm组件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    安装php-fpm组件
    sudo yum install php php-mysql php-fpm
    
    同样的基本都是等待完成即可,然后继续配置php:
    sudo nano /etc/php.ini
    
    然后修改按照自己的需要去掉注释“;”(快速定位内容请使用ctrl+w):
    cgi.fix_pathinfo=0
    
    接着ctrl+o保存,ctrl+x退出编辑,并继续编辑php-fpm如下:
    sudo nano /etc/php-fpm.d/www.conf
    
    找到listen并改为如下内容:
    listen=/var/run/php-fpm/php-fpm.sock

    这里补充一句,用户组是要改了的,不然运行起来是有问题的:
    user = nginx
    group = nginx
    接着启动服务,没有问题的情况下,开启开机启动:

    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm.service

配置nginx+php-fpm

这里抽时间单独拿出来讲配置文件的写法,现在只是为了测试环境是否搭建成功,所以采用简略的写法:

sudo nano /etc/nginx/conf.d/default.conf 去除注释以后,大概是这个样子的:

1
2
3
4
5
6
7
8
9
10
11
12
13
    server {
            listen 80;
            server_name localhost;

            location / {
                    root /usr/share/nginx/html;
                    index index.html index.htm;
            }
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                    root /usr/share/nginx/html;
            }
    }

然后我们修改成下面的样子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    server {

            # 监听端口,默认就是80
            listen 80;

            # 网站域名
            server_name www.wecenter.com;

            # 网站根目录(我是改成了/home/wwwroot)
            root /home/wwwroot;
            index index.php index.html index.htm;

            location / {
                    try_files $uri $uri/ /index.php; #开启伪静态
            }

            # 错误页配置
            error_page 404 /404.html;
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                    root /usr/share/nginx/html;
            }

            # php-fpm配置,即对于php后缀的,都是用php-fpm处理
            location ~ \.php$ {
                    try_files $uri =404;
                    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                    fastcgi_index index.php;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
            }
    }

这里都改完以后就可以保存了,然后在你的根目录(上面设置的根目录,比如我的/home/wwwroot)下面新建一个index.php文件并写入:

1
    <?php phpinfo();?>

这里要说一下啊,我们的现在使用的帐号和用yum安装nginx的用户是不一样的,换言之,就是直接写入的文件会读取不到,所以再改权限:

1
2
3
    sudo chmod -R 755 /home/wwwroot
    sudo chmod -R 755 /home/wwwroot/*
    sudo chown -R nginx.nginx /home/wwwroot/*

或者这样输入:

1
2
3
    cd /home/wwwroot
    sudo chmod -R 755 ./
    sudo chown -R nginx.nginx ./

环境测试

之前修改了nginx的配置,所以重启下nginx:

1
2
    # 重启Nginx
    sudo systemctl restart nginx.service

接着打开你的网站看看效果吧,不出意外的话,应该可以看到服务器信息了。

一些额外支持的配置

安装配置php-mcrypt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    yum  install epel-release  //扩展包更新包
    yum  update //更新yum源
    yum install libmcrypt libmcrypt-devel mcrypt mhash  就ok了

    [wwwroot@localhost nginx]$ sudo locate php.ini
    /etc/php.ini
    /usr/share/doc/php-common-5.4.16/php.ini-development
    /usr/share/doc/php-common-5.4.16/php.ini-production
    [wwwroot@localhost nginx]$ 


    #vim /etc/php.ini
    增加两行
    extension=mcrypt.so
    ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
    ;mcrypt.modes_dir=
    mcrypt.modes_dir=/usr/local/lib/
    :wq  保存退出

    extension_dir=/usr/lib64/php/modules //这里主要是要看你到底安装到了哪里。
    extension=mcrypt.so

    php -m //查看有多少模块已经安装好了,所有动作完毕,记得重启一下,否则没有效果。

centos开启GD库的支持

1
2
    #在线安装GD库
    yum -y install php-gd

然后会在/etc/php.d文件夹中产生GD库的文件gd.ini,说明你已经安装成功。并且这时候也不需要在php配置文件php.ini中添加extension=php_gd2.dll,因为系统会自动把php.d文件夹中的*.ini文件读取到php配置文件php.ini中

1
2
    #重启PHP,使其生效
    sudo systemctl restart php-fpm

安装ImageMagick

ImageMagick是一套软件系列,主要用于图片的创建、编辑以及转换等 Centos 安装ImageMagick 依次运行以下命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    sudo yum install ImageMagick
    sudo yum install ImageMagick-devel
    sudo yum install php-pear [for PECL]
    安装php-pear
    sudo yum -y install php-devel
    安装C编译器
    sudo yum install gcc
    如果装不了gcc就用这个命令:
    sudo yum install gcc gcc-c++ autoconf automake
    安装imagick
    sudo pecl install imagick
    加载imagick到php
    sudo nano /etc/php.ini
    在/etc/php.ini 加上extension=imagick.so
    重启php
    sudo systemctl restart php-fpm

安装 unzip zip 方便上传网站

1
    sudo yum install unzip zip

开启网页压缩

1
2
    sudo nano /etc/nginx/nginx.conf
    将#gzip on;的#号去掉

之前修改了nginx的配置,所以重启下nginx:

1
    sudo systemctl restart nginx.service

在文章最后,说一下nano、vi和vim都只是Linux下的编辑器,花几分钟,学习一下,你就会了。

  1. 这里说一下vi吧,其实我也不太会,但是勉强还能用一点,进入以后,键盘i进入插入模式,不进行输入的时候就esc,然后切换到你要输入的位置,保存退出的话是键盘输入:wq并且回车键退出

  2. 这里再说一下nano吧,进入以后,键盘上下左右进入代码需要插入的地方,Ctrl+W快速查找 Ctrl+O保存修改 Ctrl+X退出编辑

声明: 本文采用 BY-NC-SA 授权。转载请注明转自: Ding Bao Guo