EAimTY的博客
一个没什么技术的开源爱好者,一个苦逼的学生狗。

2018年2月2日更新:将系统换为CentOS7

这篇文章的初始版本所适用的系统是CentOS6,最初写文章时还是一个彻头彻尾的小白。两年后,原文章中的许多方法已不再适用。

为了保证稳定性与安全性,我们使用的所有软件都应确保是最新的稳定版本。

配置yum源

在这一步之前最好确定原本的yum源是官方源。
首先我们需要安装EPEL的yum源。Enterprise Linux额外软件包(Extra Packages for Enterprise Linux,EPEL)是由来自Fedora Project的志愿者发起的社区力量,为了创建由高质量的附加软件组成的、用于补足RHEL和其他兼容版本的软件仓库。可以直接用yum安装:

# yum install epel-release

安装EPEL源的目的,其实是为了安装另一个yum源:remi。remi源依赖EPEL源。

# rpm -ivh https://rpms.remirepo.net/enterprise/remi-release-7.rpm

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi

到这里remi源就安装好了,但我们需要手动启用remi的PHP专用源:

# ls /etc/yum.repos.d/

可以看到有remi-php70.reporemi-php71.reporemi-php72.repo等文件。
如果将remi-php70.repo[remi-php70]段的enabled=0改为enabled=1,之后安装的就是PHP7.0
如果将remi-php71.repo[remi-php70]段的enabled=0改为enabled=1,之后安装的就是PHP7.1
如果将remi-php72.repo[remi-php70]段的enabled=0改为enabled=1,之后安装的就是PHP7.2
以此类推

这是运行:

# yum list php

假如看到版本号是你所希望安装的版本,就说明换remi源成功了。

开启MySQL源

注意,MySQL版本号并不是越大越好
目前MySQL的大版本号有5.5、5.6、5.7、8.0(开发中,不建议用于生产环境中)
一般来说,这四个大版本的版本号越大,相应的就需要越强的性能来驱动

MySQL官方的换源教程非常详细,可以直接参考:
https://dev.mysql.com/downloads/repo/yum/

开启Nginx源

最后要解决的是Nginx换源,推荐使用Nginx官方的源:

# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

至此,换源工作就彻底完成了。

安装软件包

这一步简单,用yum一股脑装上即可:

# yum install nginx mysql-community-server php-fpm

还需要安装一些PHP的组件,按需求安装,这里只安装常用的一些:

# yum install php-pdo php-mysql php-gd php-mcrypt php-pecl-apc php-mbstring

配置LNMP

先来把这堆东西的自启动打开:

# systemctl enable nginx

# systemctl enable mysqld

# systemctl enable php-fpm

配置Nginx

可以删掉Nginx默认的配置文件与目录:

# rm -rf /etc/nginx/conf.d/default.conf /usr/share/nginx

新建一个配置文件:

# vi /etc/nginx/conf.d/www.conf

输入以下内容:

server {
    listen       80;
    server_name  localhost; //这里改成你的域名
    root         /home/www; //这里改成准备放网页文件的目录
    index        index.php index.html index.htm;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

然后修改一下Nginx允许上传最大文件的大小,并禁止Nginx在HTTP Header中发送服务器信息:

# vi /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;这一行上面插入两行:

client_max_body_size 200m;
server_tokens off;

这样Nginx就配置完了,下面配置MySQL

配置MySQL

启动MySQL:

# systemctl start mysql

# mysql_secure_installation

这时会进入MySQL的安装向导中,按照步骤完成即可。

配置PHP

只剩下PHP的配置了。
修改一下PHP的配置文件就可以了:

# vi /etc/php.ini

首先修改PHP允许上传最大文件的大小和数量:
搜索upload_max_filesize=2M,改为upload_max_filesize=200M,这里的200M就是最大可上传的文件大小;
搜索max_file_uploads=2,改为max_file_uploads=200,这里的200就是一次性最多可上传的文件数。

使HTTP Header中不显示PHP信息,搜索expose_php = On,改为expose_php = Off

修改时区:
在vi/vim命令模式中键入/date.timezone来查找date.timezone字符串
找到;date.timezone =这一行,取消掉注释(就是删掉行首的分号),然后在等于号后加上"PRC"这个参数,PRC就是时区代号。
这时,最后这一行是:

date.timezone = "PRC"

另外,如果使用的是Typecho程序,需要打开PHP的pathinfo:
搜索cgi.fix_pathinfo = ,取消掉行首的注释,把参数改为1,也就是:

cgi.fix_pathinfo = 1

测试LNMP

首先启动这些软件:

# systemctl start nginx

# systemctl start mysqld

# systemctl start php-fpm

建立web目录:

# mkdir /home/www(就是在配置Nginx那一步所设置的存放网站文件的目录)

放一个phpinfo:

# vi /home/www/index.php
输入:

<?php phpinfo(); ?>

这时访问你的域名或IP,不出意外就可以看到phpinfo了。

至此,LNMP就彻底安装完成了,把你的网页放在设置好的目录下,全世界就可以访问你的站点了。

仅有一条评论
    yangyi
    yangyi
    2016-06-07 18:42

    写的太好了,大赞!

添加新评论