在搭建路上, 博主一路摸爬滚打, 从原来的什么都不会, 到现在基本一次成功

走过很多弯路, 百度上面很多类似的教程, 但是都不是很合适, 总有一些莫名其妙的问题

今天把搭建的方法总结在这里, 方便新手学习

首先, 要有一台 CentOS 7 的服务器

博主选用的服务器是 Vultr 的服务器 -> Vultr服务器申请教程

如果你什么都不会, 直接跟着教程走, 复制命令就可以了

首先, 就是 Nginx 的安装

一般服务器自带的 Nginx 版本都不是最新的 Nginx 版本

要想使用到最新的 Nginx 版本, 首先要进入

http://nginx.org/packages/centos/7/noarch/RPMS/

找到对应的 yum repo, 然后更新 repo 的 rpm

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

这个是到目前为止最新的 rpm

因为服务器在国外, 所以国内的服务器下载速度可能有些慢, 稍微等待一下

更新完成之后 :

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

接下来可以进行 Nginx 的安装

yum install -y nginx

安装完成会提示 :

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

接下来就可以测试 Nginx 是否真的安装成功了

首先, 要开启 Nginx

systemctl start nginx

然后可以设置开机启动 Nginx

systemctl enable nginx

成功之后会显示 :

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

很多服务商提供的服务器默认是开启防火墙的, 所以要想测试 Nginx 是否启动成功, 还要修改防火墙的配置

firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --permanent --zone=public --add-service=https

firewall-cmd --reload

每一句命令输入之后都会有 success 返回

之后直接访问服务器 IP 如果可以看到如下页面, 就代表 Nginx 安装成功

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

Nginx 安装和测试成功之后, 接下来进入 MySQL 的安装

首先, 同样要寻找合适的 yum repo

之后更新 rpm

访问 MySQL 官方网站寻找合适的 yum repo

https://dev.mysql.com/downloads/repo/yum/

现在最新的命令 :

rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

成功之后会提示 :

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

接下来安装 MySQL

yum install -y mysql-community-server mysql-community-devel

安装成功之后会提示 :

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

接下来对 MySQL 进行设置

首先, 需要开启 MySQL :

systemctl start mysqld

由于 MySQL 安装完之后自己设置了自启动, 那么这里可以省去设置开机启动的命令

MyQSL 5.7 和之前的版本有所不同, MySQL 5.7 在安装的时候已经设置好了初始密码, 以前的版本密码为空

可以通过下面的命令来获得初始密码 :

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

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

对于 MySQL 5.7 给出的初始密码, 其实已经很安全了, 唯一的缺点就是不好记, 这时候可以搭配 1Password 等软件

如果要修改密码的, 可以执行下面的命令 :

首先进入 MySQL

mysql -uroot -p

会提示你输入密码, 输入刚刚给出的初始密码即可

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

之后直接输入 :

ALTER USER 'root'@'localhost' IDENTIFIED BY '你要修改的新密码';

将中文字替换成你的密码即可

不过, 值得注意的是, MySQL 5.7 对于密码的要求非常严格, 必须至少包含1个大写字母、1个小写字母、1个数字和1个特殊字符, 而且长度不得小于8个字符

修改完成之后输入 quit 退出即可

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

到这里 MySQL 的安装和配置就算完成了,  后期的工作都可以通过 phpMyAdmin 来实现

接下来是 PHP 7 的安装

首先参考这个网站更新相应 rpm :

https://webtatic.com/packages/php70/

那么 CentOS 7 对应的命令就是应该是 :
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

接下来输入命令安装 PHP 7

yum install -y php71w php71w-bcmath php71w-cli php71w-common php71w-dba php71w-devel php71w-embedded php71w-enchant php71w-fpm php71w-gd php71w-imap php71w-interbase php71w-intl php71w-ldap php71w-mbstring php71w-mcrypt php71w-mysqlnd php71w-odbc php71w-opcache php71w-pdo php71w-pdo_dblib php71w-pear.noarch php71w-phpdbg php71w-process php71w-pspell php71w-recode php71w-snmp php71w-soap php71w-tidy php71w-xml php71w-xmlrpc php71w-pecl-mongodb php71w-pecl-redis php71w-pecl-igbinary php71w-pecl-apcu php71w-pecl-apcu-devel php71w-pecl-geoip php71w-pecl-igbinary-devel php71w-pecl-imagick php71w-pecl-libsodium php71w-pecl-memcached php71w-pecl-xdebug

这里已经默认安装了 PHP 7 的很多组件, 如果不需要那么多组件, 可以通过自己选择来挑选自己需要的组件

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

到这里 PHP 7 的安装就算是完成了

我们需要稍微配置一下 PHP, 以便于以后安装某些程序不再麻烦

先打开 PHP 配置文件

vim /etc/php-fpm.d/www.conf

搜索 user 和 group, 也就是第八行和第十行, 改为 :

user = nginx

group = nginx

然后按 "/", 输入$HOSTNAME (这个动作为 搜索 "$HOSTNAME")

将 366-370 行的 ";" 去掉 (取消注释)

env[HOSTNAME] = $HOSTNAME

env[PATH] = /usr/local/bin:/usr/bin:/bin

env[TMP] = /tmp

env[TMPDIR] = /tmp

env[TEMP] = /tmp

配置完 PHP-FPM 之后, 还需要对 php.ini 文件进行配置, 方便今后的使用

首先打开 php.ini

vim /etc/php.ini

查找

mysqli.default_socket

并且修改为

mysqli.default_socket = /var/lib/mysql/mysql.sock

查找

date.timezone

去掉前面的 ";", 并且修改为

date.timezone = PRC

接下来修改 PHP 上传限制, 找到

max_execution_time

将后面的 30 改成 0

找到

post_max_size

将后面的数字改成你想要的, 单位 M

找到

upload_max_filesize

将后面的数字改成你想要的, 单位 M

保存之后, 还要赋予 nginx 对应目录的权限, 否则一些程式可能无法正常运行

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

chown -R nginx:nginx /var/lib/php/wsdlcache

接下来, 还要做的是启动 PHP-FPM, 如果不启动, 访问网站就会出现 502 Bad Gateway 错误

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

systemctl start php-fpm

如果有需要开机启动的, 可以输入 :

systemctl enable php-fpm

最后, 需要把 session 文件夹的权限还给 nginx

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

PHP 的配置就算完成了, 就要正式开始建立网站了, 网上有很多现成的免费网站程序

首先, 要建立一个专门放网页的目录

博主建在 /www

那么就要创建目录

mkdir -p /www/Jonny/web

进入目录

cd /www/Jonny/web

因为很多服务商提供的 CentOS 并没有自带 vim 编辑器, 那么我们这里用 vi 命令进行编辑

vi info.php

按 i 进入编辑模式

输入

<?php phpinfo(); ?>

按 esc 键退出编辑模式, 之后输入 : 在输入 wq 按回车退出

出来之后, 输入 ls -l 可以看到我们刚刚新创建的 info.php

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

到这里, 我们的 PHP 测试页面就算完成了

之后就是 Nginx 的配置

首先进入 Nginx 配置的相关目录

cd /etc/nginx/conf.d

然后通过 vi 命令创建一个新的 .conf 文件, 对于文件的命名, 个人建议使用域名

比如, 这个配置对应的网站是 jonny.vip, 那么我们就命名 jonny.vip.conf

vi jonny.vip.conf

按 i 进入编辑模式

之后输入如下的代码

server {

    listen 80;#你的端口

    server_name jonny.vip www.jonny.vip;#你网站的域名

    root /www/Jonny/web;#绑定的目录

    location / {

        index index.php index.html index.htm;

    }

    location ~ \.php$ {

        fastcgi_pass 127.0.0.1:9000;#FastCGI的端口, 如果按照本文上面的方式安装的 PHP, 那么无需修改, 默认为9000

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        include fastcgi_params;

    }

}

上面含有注释的都是需要修改的

不过如果按照本文的方式安装的, 那么只需要修改绑定目录和域名即可

这里就不用域名做演示了, 直接用服务器的 IP 作为域名好了

设置好之后重新启动 Nginx

systemctl reload nginx

如果上述代码有问题, 可能会遇到 Nginx启动错误, 那么这个时候可以通过 :

nginx -t

查看具体错误在哪里

如果重新启动成功, 那么直接访问相关网站的域名 : http://你的域名/info.php, 就可以看到如下界面 :

在 CentOS 7 上搭建 Nginx + PHP 7 + MySQL 5.7-Jonny'Blog

就说明 PHP 7 也安装成功了

到此为止, 相关的搭建工作已经完成了, 接下来只要上传网站源码就可以了