CentOS7手动安装高版本Nginx+MySQL+PHP

安装Nginx:

新建repo源:

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

配置nginx的yum仓库:

写入如下内容:

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

保存,生成yum元数据信息

1
yum makecache 

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

1
yum -y install nginx

安装成功后如图所示:

关闭防火墙和centos的安全机制:

1
2
3
systemctl stop firewalld && systemctl disable firewalld 
setenforce 0
vim /etc/selinux/config

修改如下内容:

SELINUX=enforcing —->>> SELINUX=disabled

启动nginx服务,并设置开机自动启动

1
systemctl start nginx && systemctl enable nginx

打开浏览器输入ip地址,我们就能看到nginx默认的欢迎页面了!

安装MySQL:

新建repo源:

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

写入如下内容:

1
2
3
4
5
6
[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元数据信息

1
2
yum clean all 
yum makecache

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

1
yum -y install mysql-community-server

安装完成后如图所示:

启动服务:

1
systemctl start mysqld.service 

我们看一下初始密码:

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

输入如下命令:

1
mysqladmin -u root -p password

粘贴你之前复制的密码,然后回车,会提示让你设置一个新的密码,注意密码的复杂度要符合要求

重启MySQL:

1
systemctl restart mysqld

我们再登陆一次:

1
mysql -u root -p 

安装PHP:

安装EPEL源:

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

安装webtatic源:

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

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

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

1
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/

安装完成后如图所示:

设置开机自启:

启动:

1
2
3
systemctl start nginx
systemctl start mysqld
systemctl start php-fpm

设置开机自启动:

1
2
3
systemctl enable nginx
systemctl enable mysqld
systemctl enable php-fpm

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

1
2
3
systemctl status nginx
systemctl status mysqld
systemctl status php-fpm

确保都是如下三图的Actice状态:

Nginx运行正常:

MySQL运行正常:

PHP运行正常:

详细配置:

接着是PHP的一系列坑,首先用WinSCP以SFTP的方式登录到你的机器内。

找到如下路径:

/etc/php.ini

把这个php.ini下载到本地,然后用专业一点的编辑器打开,别用记事本!

推荐使用Sublime Text

首先要打开PHP的Pathinfo,在这个文件的762行,把前面的分号去掉:

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

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

1
mkdir /var/lib/php/session

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

1
cd /var/lib/php

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

1
chmod -R 777 session

回到我们的电脑编辑器内,继续修改php.ini。

这次是进行一些PHP设置上的优化。首先是超时时间要改大一些,找到368行,将后面的值改为300:

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

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

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

回到Xshell中,重启PHP:

1
systemctl restart php-fpm

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

编辑nginx默认的站点conf:

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

然后复制我的替换掉你们的:

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
33
34
server {
listen 80;
server_name localhost;

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


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


access_log /var/log/nginx/html.access.log main;
error_log /var/log/nginx/html.error.log warn;


error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}


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

测试:

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

1
cd /usr/share/nginx/html

新建一个文件:

1
vi index.php

写入如下内容:

1
<?php phpinfo(); ?>

接着重启nginx:

1
systemctl restart nginx

然后在浏览器里输入我们的服务器ip并访问,能看到php测试页面就基本上是没问题了。