lala.im:CentOS7手动安装Nginx/MySQL/PHP/phpMyAdmin

運維技術·lala.im · 2018-02-08 · 147 人浏览

原文地址:https://lala.im/2571.html,請支持原作者!該處僅作轉載。

在装LNMP环境这块,总有很多人觉得WEB面板不靠谱,甚至还有部分人觉得LNMP一键包也不靠谱。
其实我觉得吧,有更好的东西摆在你面前的时候,不妨先放下自己的偏见去尝尝鲜。比如我自己一开始也觉得宝塔这个面板不怎么样,后来越用就越觉得好用。。。好吧,这里又强行给宝塔广告了一波。。。
如果你实在是不放心用这种现成的一键包或是面板来装LNMP环境,那就可以自己手动来装。这篇教程就献给各位想折腾又不怕麻烦的朋友们吧~
本教程写于2018年2月8日,安装的各项软件均为目前较新的版本。详细版本号如下:
Nginx1.12.2\nMySQL5.7\nPHP7.2.1\nphpMyAdmin4.7.7
准备工作:一台VPS系统安装CentOS7X64,使用Xshell以root用户的身份登录到你的机器内。注意你的系统最好是用精简版,别用那种自带Apache的,容易出问题。
1、安装Nginx:
新建repo源:

vi /etc/yum.repos.d/nginx.repo

写入如下内容:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

保存,然后就可以用yum来安装nginx了:

yum -y install nginx

安装成功后如图所示:

範例
2、安装MySQL:
新建repo源:

vi /etc/yum.repos.d/mysql-community.repo

写入如下内容:

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

保存,然后就可以用yum来安装mysql了:

yum -y install mysql-community-server

安装完成后如图所示:

範例
3、安装PHP:
安装EPEL源:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

安装webtatic源:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

这两个源安装完成后如图所示:

範例
某些机器上这个EPEL源可能会有点问题,所以我们修改一下这个源防止后续安装出现问题:

vi /etc/yum.repos.d/epel.repo

把baseurl前面的#号去掉,如图所示:

範例
现在就可以使用yum来安装php了:

yum -y install php72w-fpm php72w-cli php72w-common php72w-gd php72w-mysqlnd php72w-odbc php72w-pdo php72w-pgsql php72w-xmlrpc php72w-xml php72w-mbstring php72w-opcache

注:更多安装包名(PHP组件)可以浏览:https://webtatic.com/packages/php72/
安装完成后如图所示:

範例
4、启动Nginx/MySQL/PHP以及设置开机自启动。
启动:

systemctl start nginx
systemctl start mysqld
systemctl start php-fpm

设置开机自启动:

systemctl enable nginx
systemctl enable mysqld
systemctl enable php-fpm

查看当前Nginx/MySQL/PHP的运行状态:

systemctl status nginx
systemctl status mysqld
systemctl status php-fpm

确保都是如下三图的Actice状态:
Nginx运行正常:

範例
MySQL运行正常:

範例
PHP运行正常:

範例
5、进行各项软件的详细的配置,也可以说是填坑吧。。。
首先是MySQL5.7root密码过期的问题。我们必须把MySQL初始设置的密码进行修改,否则某些程序无法连接数据库。
查看MySQL的初始随机密码:

grep 'temporary password' /var/log/mysqld.log

回显如图,打马赛克的地方就是密码,你们复制记住自己的:

範例
输入如下命令:

mysqladmin -u root -p password

粘贴你之前复制的密码,然后回车,会提示让你设置一个新的密码,修改完成后如图所示:

範例
重启MySQL:

systemctl restart mysqld

接着是PHP的一系列坑,首先用FlashFXP以SFTP的方式登录到你的机器内。
找到如下路径:

/etc/php.ini

把这个php.ini下载到本地,然后用专业一点的编辑器打开,别用记事本!
首先要打开PHP的Pathinfo,在这个文件的762行,把前面的分号去掉:

範例
接着我们装的这个PHP7.2有Session的问题,要修复一下。找到1264行,去掉分号:

範例
然后回到Xshell中,用下面的命令新建一个session目录:

mkdir /var/lib/php/session

进入到/var/lib/php目录:

cd /var/lib/php

给刚新建的session目录777权限:

chmod -R 777 session

回到我们的电脑编辑器内,继续修改php.ini。
这次是进行一些PHP设置上的优化。首先是超时时间要改大一些,找到368行,将后面的值改为300:

範例
接着是文件的上传大小,改大一点,方便日后使用。799行将后面的值改成一个你想要的:

範例
POST提交的值也要改大一点,656行后面的值改成你想要的,建议就按我如图的值来设置:

範例
确定上述我说的这些你都做完了后,保存php.ini,然后用FlashFXP上传替换掉我们服务器内之前的php.ini:

範例
回到Xshell中,重启PHP:

systemctl restart php-fpm

6、现在我们来验证一下我们装的这个LNMP环境大体是否正常:
先安装两个工具:

yum -y install unzip
yum -y install lrzsz

然后编辑nginx默认的站点conf:

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

找到default.conf内和我下面发的这段代码相似的地方,然后复制我的替换掉你们的:

location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }

如图所示:

範例
确定修改正确后,保存,然后进入到nginx的默认站点目录:

cd /usr/share/nginx/html

使用rz命令上传一个PHP探针文件:

rz

接着重启nginx:

systemctl restart nginx

用浏览器访问你的VPS公网IP+探针文件名,能正常显示就说明我们的环境搭建正常:

範例
7、安装phpMyAdmin方便管理MySQL数据库:
首先访问phpMyAdmin官网:https://www.phpmyadmin.net/
下载当前最新版的phpMyAdmin:

範例
将下载好的phpMyAdmin压缩包解压,然后用不包含根文件夹(phpMyAdmin-4.7.7-all-languages)的形式重新压缩一次,压缩完成后,首次用解压缩软件打开的结构目录应该如下图这样的:

範例
回到Xshell中,新建一个phpMyAdmin目录:

cd /usr/share/nginx/
mkdir phpmyadmin

进入到这个目录内使用rz命令上传我们刚压缩好的phpMyAdmin压缩包:

cd phpmyadmin
rz

上传完成后解压:

unzip phpMyAdmin-4.7.7-all-languages.zip

接着新建一个nginx的conf:

vi /etc/nginx/conf.d/phpmyadmin.conf

写入如下配置内容:

server {
    listen       2333;
    server_name  172.105.192.108;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/phpmyadmin;
        index  index.html index.htm index.php;
    }

    location ~ \.php$ {
        root           /usr/share/nginx/phpmyadmin;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/phpmyadmin$fastcgi_script_name;
        include        fastcgi_params;
    }

}

注:server_name后面的值改成你们的VPS公网IP或是域名。listen是监听的端口号,由于phpMyAdmin并不是一个网站程序,而是一个数据库管理工具,为了安全最好是不要让人轻易访问到,所以我把端口号修改成了2333。
接着我们重启nginx:

systemctl restart nginx

现在用浏览器尝试访问一下,应该就能看到phpMyAdmin的登录界面了:

範例
登录账号:root\n登录密码:你自己之前修改的数据库root密码
尝试登录,看看能否登录成功:

範例
至此,我们的LNMP环境就基本搭建完成了,但是我们还不能确定这个环境是否有其他问题,所以为了确保我们的环境是能够正常跑程序的,这里LALA就用我们现在装的这个环境来安装一个WordPress。看看WordPress能不能正常跑起来。
8、配置安装WordPress
下载WordPress程序到nginx的站点文件目录:

yum -y install wget
cd /usr/share/nginx/
wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.zip

解压:

unzip wordpress-4.9.4-zh_CN.zip

将wordpress这个目录的所有者改为apache:

chown -R apache:apache /usr/share/nginx/wordpress

注:你没有看错,这里就是要把用户改成apache。
Q:你装的明明是nginx哪里来的apache?
A:因为我们之前是用webtatic这个源安装的php7.2,而php-fpm默认就是用apache这个用户来跑的,不论你的机器内是否安装了apache这个软件,php-fpm都运行在apache这个用户下。说白了也就是这里的apache只是一个用户名,它不是真的apache服务软件。
Q:为什么要把目录的所有者改成apache?
A:因为权限问题,如果你不更改WordPress站点目录的所有者,接下来你在WordPress上安装插件或是安装主题都会提示要你输入FTP账号密码之类的。我们把所有者改了后就可以解决这类问题。
现在我们来配置WordPress的伪静态,新建一个rewrite目录:

mkdir /etc/nginx/conf.d/rewrite

在此目录下新建一个wordpress.conf:

vi /etc/nginx/conf.d/rewrite/wordpress.conf

写入如下配置内容:

location / {
運維技術 Nginx LNMP lala.im
Theme Jasmine by Kent Liao