CentOS 7安装部署LEMP以及phpMyAdmin

LEMP环境是指Linux+Nginx+MySQL+PHP组成的网站服务环境,因为Nginx的读法跟Engine X一样,为了组成一个更符合英语语言习惯的单词,所以缩写成LEMP而不是LNMP。不过到了要查资料或者同事之间交流的时候,LEMP和LNMP在国内外都是通用的。而phpMyAdmin则可以让管理者通过Web接口管理MySQL数据库,完成基本的增删查改等操作,如果涉及需要人为频繁操作数据库的项目则不建议使用

以下步骤已经在CentOS 7.7 64-bit的环境中得到验证,且理论上通用于所有版本的CentOS 7系统

考虑到编译安装要解决复杂的依赖问题,本教程将使用预编译软件包(通过yum命令)的方式来进行安装。如果操作的过程中出现什么问题可以留言反馈,我基本都会回复(反正也没什么人看~)

请在开始之前更新所有已经安装的软件以及系统内核,更新完之后重启一次

sudo yum install epel-release
sudo yum -y update
shutdown -r now

本文快速导览:

安装Nginx

目前EPEL官方源的Nginx已经更新到最新稳定版本(1.16.1),所以无需另外使用Nginx官方源,直接安装即可。

sudo yum install nginx -y

安装成功之后启动Nginx

sudo systemctl start nginx

现在你可以在自己电脑上打开浏览器访问如下链接,注意要改为服务器的公网IP地址

http://此处为服务器IP地址/

如无意外,应该会出现以下画面

有可能也会显示以下画面

如果看到以上两种情况,就证明Nginx已经正确安装好,如果出现如下状况,请联系你的VPS或者云服务器人工客服,询问放行80端口相关事宜。

在确保Nginx已经正确安装好之后,把Nginx设置为开机自启动

sudo systemctl enable nginx

安装MySQL(MariaDB)

简单说下,MySQL以前是开源的,现在被闭源了,而MariaDB则是MySQL开源的时候衍生的一个分支,现在仍然保持开源,两者兼容性非常高。如今无论效能还是更新速度还是稳定性MariaDB已经远超MySQL,所以这里我们将使用MariaDB而非MySQL。

由于EPEL官方源的MariaDB停留在5.5版本,MariaDB本身的稳定版已经走到10.4版本(其实是5.5直接到10.0,中间跨度并没有那么大),为了安装最新稳定版,我们先添加MariaDB自己的软件源

sudo vi /etc/yum.repos.d/MariaDB.repo

将下列文本复制粘贴到刚刚打开的空文档

# MariaDB 10.4 CentOS repository list - created 2020-04-19 09:01 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

记得保存退出,然后开始安装MariaDB

sudo yum install MariaDB-server MariaDB-client

安装完成之后应该会如下图所示

然后启动MariaDB服务器

sudo systemctl start mariadb

接下来执行服务器的首次设置

sudo mysql_secure_installation

首次设置将会有较长的设置流程,请跟随图片指引操作

操作完成之后,MariaDB的初次配置就已经完成,最后将MariaDB添加到开机自启动

sudo systemctl enable mariadb

到这一步完成MariaDB的部署。

安装PHP

CentOS 7本身的软件源的PHP版本是5.4,而PHP到达7.0之后效能提升非常大,并且很多框架程序也开始逐步抛弃PHP5,所以本次将安装PHP

sudo yum install yum-utils
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

以上命令为我们安装了一个靠谱的第三方软件源:REMI,软件源安装完,就要将PHP7.4的软件源开启

sudo yum-config-manager --enable remi-php74

如果要装7.3版本就将命令最后的74改成73,以此类推

然后正式开始安装PHP

sudo yum install php php-mysql php-fpm

出现如上所示画面证明安装成功,接下来就要开始进行PHP的基本设置

sudo vi /etc/php.ini

在该文件内搜索cgi.fix_pathinfo,找到相关设置之后改成如下图所示(将前面的分号删除,以及将1改为0)

修改完成之后请切记保存退出

接下来修改PHP-FPM基本参数

sudo vi /etc/php-fpm.d/www.conf

打开www.conf之后改成如下图所示,相关的路径和单词可以从图片的下方复制

listen = /var/run/php-fpm/php-fpm.sock
****************************************
user = nginx
group = nginx
****************************************
listen.owner = nginx
listen.group = nginx

修改完成之后切记保存退出,接下来启动PHP

sudo systemctl start php-fpm

然后将PHP设置为开机自启动

sudo systemctl enable php-fpm

至此,PHP部署完毕

将Nginx与PHP衔接

到此为止LEMP的各项都已经完成独立部署,但是Nginx与PHP现在仍不互通,需要做一些小的修改

sudo vi /etc/nginx/conf.d/default.conf

然后将该文档清空(有可能本来就是空的),复制粘贴下面的内容

server {
    listen       80;
    server_name  114.114.114.114; 
    #注意将114.114.114.114改成你服务器的公网IP

    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    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;
    }
}

然后重启Nginx服务,确保新的配置加载完成

sudo systemctl restart nginx

然后创建一个新的PHP文件

sudo vi /usr/share/nginx/html/info.php

复制粘贴下面的代码到新文件里面

<?php phpinfo(); ?>

记得保存退出,然后打开自己电脑的浏览器,访问下面地址

http://此处替换成服务器IP地址/info.php

如果能够显示如下页面,则证明Nginx与PHP衔接成功

至此,LEMP环境部署已经全部完成

安装phpMyAdmin

接下来安装phpMyAdmin,这是一个提供网页管理数据库的工具,如果你的MariaDB完全按照我的配置来做,那么接下来的phpMyAdmin可以做到全兼容

由于我们之前安装PHP7的时候已经安装了REMI软件源,但是当时只激活了PHP7的部分,没有激活整个REMI软件源。输入下面指令激活整个REMI软件源

sudo yum-config-manager --enable remi

通过REMI软件源安装phpMyAdmin

sudo yum install phpmyadmin

将phpMyAdmin的配置文件管理列入Nginx同一组

sudo chgrp -R nginx /etc/phpMyAdmin

然后新建文件夹

sudo mkdir -p /etc/nginx/snippets

编辑用于phpMyAdmin的Nginx配置文件

sudo vi /etc/nginx/snippets/phpMyAdmin.conf

复制下列内容粘贴到配置文件中

location /phpMyAdmin {
       root /usr/share/;
       index index.php index.html index.htm;
       location ~ ^/phpMyAdmin/(.+\.php)$ {
               try_files $uri =404;
               root /usr/share/;
               fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
               fastcgi_index index.php;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               include /etc/nginx/fastcgi_params;
       }
       location ~* ^/phpMyAdmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
               root /usr/share/;
       }
}
location /phpmyadmin {
    rewrite ^/* /phpMyAdmin last;
}

保存该配置文件之后退出,打开原先编辑过的default.conf文件

sudo vi /etc/nginx/conf.d/default.conf

在server字段里面的末尾处加上一行

include snippets/phpMyAdmin.conf;

改完之后大概长这个样

server {
    listen       80;
    server_name  114.114.114.114; 
    #注意将114.114.114.114改成你服务器的公网IP

    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    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;
    }
    include snippets/phpMyAdmin.conf;
}

确认修改之后保存关闭该文件,打开php.ini

vi /etc/php.ini

找到Dynamic Extensions,并在后面补上以下内容

extension=mbstring

最后结果如图所示

修改完毕之后重启PHP和Nginx

systemctl restart php-fpm
systemctl restart nginx

修正session文件夹的归属权限问题

sudo chown -R nginx:nginx /var/lib/php/session/

最后访问以下地址

http://服务器IP地址/phpmyadmin

如果出现如上所示的页面即安装配置成功,账户和密码是MySQL(MariaDB)的账户密码。

一些有用的链接

REMI源的官方网站

通过MariaDB官方软件源安装的方法

发表评论

电子邮件地址不会被公开。 必填项已用*标注