CentOS 7 配置 Nginx + php5.6 + mysql 搭建 lnmp 环境过程全纪录

 在VPS 搭建一个简单的 php+mysql 的小站。 lamp 集成环境可以更快搭建,这里采用每个模块自己安装。

CentOS 7 服务器基本配置


服务器初始安装系统之后,我们就可以利用 ssh 连接上服务器终端了。如果使用的是 windows 系统,可以使用 putty 之类的工具进行连接。我是 mac 系统,所以不需要这些。

你可以选择一直用密码登录,不过我更喜欢用 key 登录,这样可以免密码。

这里,我们都使用 root 最高权限的用户来进行管理。如果你使用的是普通用户,在执行大多数命令的时候都没有权限,需要在前面加上 sudo。

配置 key 秘钥登录服务器 (可跳过)
这一步配置可以跳过,并且只适合 mac 或者 linux 系统。windows 系统理论上是可以的,但是操作比较麻烦,并且和我下面说的不太一致。

配置服务器端 
首先用密码登录服务器。

# 安装 vim 工具
yum install vim -y
# 新建 ssh 配置目录
mkdir ~/.ssh
# 创建自动秘钥登录配置文件
touch ~/.ssh/authorized_keys
# 编辑配置文件
vim ~/.ssh/authorized_keys


然后把自己的秘钥粘贴进去。

配置客户端

本地生成自己的秘钥等,我这里不说了,不清楚的可以自行搜索一下。

vim ~/.ssh/config


在里面添加如下内容

# 配置服务器简写
Host myserver
# 配置服务器IP
Hostname 100.100.100.100
# 配置服务器ssh连接端口,默认是22则不用配置,但建议修改默认端口号,避免被黑客扫描
Port 22

IdentityFile ~/.ssh/id_rsa_somekey
PreferredAuthentications publickey
# 配置默认登录用户
User root

主要~/.ssh/id_rsa_somekey的读写权限

#保证秘钥安全
chmod  400 ~/.ssh/id_rsa_somekey


好,经过上面客户端和服务端的配置之后,我们就可以在本地用非常简单的命令登录服务器了。

登录服务器命令如下:

ssh myserver


除了登录服务器变得异常简单,不用密码。我们使用 scp 传输文件也变得异常简单

# 传输单个文件到服务器
scp ~/.vimrc myserver:~
# 传输单个文件夹到服务器
scp -r ~/.vim myserver:~


更多 scp 命令请参考相关资料,这里不做过多延伸。

更新服务器系统以及软件,安装常用工具
一般来说,云服务器或者 vps 安装的系统镜像都不是最新的,所以我们连接上服务器之后,必须尽快更新服务器的系统以及软件,这样可以更好的保障我们的服务器系统安全。

服务器系统以及软件升级命令

yum -y update


CentOS 系列的服务器系统有一个毛病,就是官方自带的源的软件比较古老,并且很多的软件都没有。因为他们的首要任务是保证服务器的稳定,而不是追求最新。但是太过于保守了,一般来说,我们会给服务器添加一个 epel-release 这个源。这个源里包含了例如 nginx 之类的我们需要的软件,使用起来比较方便。

安装 epel-release

yum install epel-release -y

什么是EPEL 及 Centos上安装EPEL


通过上面的命令进行安装。确认是否安装成功,可以用下面的命令检测一下

yum search nginx


如果搜索的结果包含下面的这行内容,就表示安装成功了,然后我们就能愉快的安装我们需要的软件了。

nginx.x86_64 : A high performance web server and reverse proxy server


我昨天在配置的时候发现不能搜索出来,但是确实是安装上了。后来检查了一下 /etc/yum.repos.d/epel.repo 文件,发现里面配置不对,修改了一下就好。

主要是 epel 段落中的 enabled 值默认设置为 0 了,我们将值改成 1 就可以了。

PS:你应该没这个问题。如果遇到了问题,可以看下这里。如果是其他问题,请自行搜索解决。

安装服务器常用软件

前面我们登录上服务器之后,第一件事情就是安装了 vim 编辑器。但我们在工作中,可能会需要各种各样的软件,例如我经常使用的如下:

# wget 下载工具
yum install wget
# 统一各种格式压缩文件的工具
yum install atool
# tmux 好用的终端工具(如何使用请自行搜索)
yum install tmux
# zsh 最好用的终端
yum install zsh
# 替代 top 命令的好工具
yum install htop
# git 代码版本管理工具
yum install git


上面这些常用软件可以根据你自己的需求进行选择安装。不是都必须安装的。

什么 zsh 之类的配置,可以使用 oh-my-zsh 这个配置工具,具体搜索一下。网上教程很多。不是必须的。

配置 lnmp 服务器环境
好,准备工作差不多了,下面正式开始。

安装 nginx
如果你是直接跳到这段看的,请确保你已经运行过下面的命令安装过 epel-release 。如果不是,请跳过这条命令。

yum install epel-release -y


 

清理默认apache:

# 删除系统自带的软件包 
yum remove httpd* php*

 
开始安装:

# 安装 nginx
yum install nginx -y
# 启动 nginx
systemctl start nginx
# 将 nginx 设置为开机启动
systemctl enable nginx


好,通过上面三条命令执行之后,应该可以在浏览器中直接用服务器IP可以访问到 nginx 默认的首页了。

安装 php
nginx 安装好之后,我们就需要来安装我们的 php 环境了。

执行下面的命令升级软件仓库 

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

其他系统:

# Centos 5.X
rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
# CentOs 6.x
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
# CentOs 7.X
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

执行下面的命令删除php(卸载的时候关注下卸载了那些包) 

yum remove php-common

 

安装 php

执行下面的命令,安装 PHP 已经它的常用的库 php5.6 (php56w php56w-opcache php56w-xml php56w-mcrypt php56w-gd php56w-mysql php56w-intl php56w-mbstring )

yum install -y php56w php56w-opcache php56w-xml php56w-mcrypt php56w-gd php56w-devel php56w-mysql php56w-intl php56w-mbstring php56w-fpm

注意:yum install php php-mysql php-fpm php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc -y
默认安装可能是其他版本5.4等

注:如果想更换到php5.5或5.4版本, 直接把上面的56w换成55w或者54w就可以了

安装7.2:yum install php72w php72w-opcache  php72w-xml  php72w-pdo  php72w-mbstring  php72w-gd  php72w-pear  php72w-mcrypt php72w-devel php72w-intl  php72w-pear php72w-fpm 


配置 php

安装完成之后,我们需要对它进行一些配置。首先,我们打开配置文件:

vim /etc/php.ini


打开文件后,我们找到 cgi.fix_pathinfo 并把它的值设置为 0

大概在 763 行

为何要关闭参考(PHP CGI 中 fix_pathinfo 引起的安全隐患):https://blog.csdn.net/neubuffer/article/details/16901023

配置好 php.ini 文件之后,

 


好,这样,我们就已经安装并且配置好了。下面我们可以启动了。

# 启动PHP
systemctl start php-fpm
# 将它设置为开机启动
systemctl enable php-fpm


配置 nginx 使其支持 php
好,我们在安装好 nginx 和 php 之后,他们还不能协同作战,我们需要对 nginx 进行一些配置才可以。

首先,我们打开 nginx 的配置文件,添加默认网站

rm -rf /etc/nginx/conf.d/*
vi /etc/nginx/conf.d/default.conf

编辑default.conf文件

server{
    listen      80;
    server_name testdomain.com;
    index index.php index.html index.htm;
    root  /var/www;

    location ~ .*\.(php|php5)?$
    {
            #fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}

说明: /var/www 为web根目录, location / … 为url的rewrite,隐藏 index.php

 

添加测试页面/var/www/index.php

<?php
echo "test index";

重新修改php-fpm用户:

查看nginx的用户:vi /etc/nginx/nginx.conf

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

nginx使用的用户是nginx用户

查看php-fpm的用户:

# ps -ef |grep php
root      17214      1  0 13:53 ?        00:00:00 php-fpm: master process (/etc/php-fpm.conf)
apache    17215  17214  0 13:53 ?        00:00:00 php-fpm: pool www
apache    17216  17214  0 13:53 ?        00:00:00 php-fpm: pool www
apache    17217  17214  0 13:53 ?        00:00:00 php-fpm: pool www
apache    17218  17214  0 13:53 ?        00:00:00 php-fpm: pool www
apache    17219  17214  0 13:53 ?        00:00:00 php-fpm: pool www
apache    17220  17214  0 13:53 ?        00:00:00 php-fpm: pool www
root      17528  17155  0 14:06 pts/0    00:00:00 grep --color=auto php

如上,php-fpm进程的用户为apache,需求修改php-fpm用户和nginx用户相同

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

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache Choosed to be able to access some dir as httpd

user = nginx    
; RPM: Keep a group allowed to write in log dir.
group = nginx

user,group 修改为nginx

如果user,group在默认的 # vi /etc/php-fpm.conf  文件中的话,对应改掉就可以,本系统的在www文件中

修改web目录权限

chown nginx:nginx /var/www/ -R #设置目录所有者

chmod 700 /var/www -R #设置目录权限

好,经过这样的简单配置,我们的任务就已经完成了。测试

# 重启 nginx 服务
systemctl restart nginx
# 重启 php-fpm 服务
systemctl restart php-fpm

查看域名:testdomain.com 会返回 test index 的测试页面。nginx + php 配置成功。


安装 MySQL

yum安装

安装最新的mysql

wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

使用mysql的yum repo 

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

运行repo命令:

sudo rpm -Uvh mysql80-community-release-el7-1.noarch.rpm

repo 安装参考https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

 

 

安装mysql

sudo yum install mysql-community-server

启动mysql

sudo service mysqld start

参考文档:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

查看临时密码:

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

修改root密码(1)

mysql -uroot -p

输入Enter password:  上面的临时密码

修改root密码(2)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass4!';

配置小结
总体来说,整个配置过程还是非常顺畅的,和 lamp 环境有一定的差异,但是通过查找相关的资料,还是可以很快的解决问题的。

其他包括虚拟主机的配置等等,大家可以搜索 nginx 配置虚拟主机 关键词,来进行相关资料的查找。

本文链接:https://blog.csdn.net/asdcls/article/details/85269870


参考链接:

https://blog.csdn.net/fungleo/article/details/78789932 

https://www.cnblogs.com/xiaoliang-y/p/4274874.html

https://www.cnblogs.com/hello-tl/p/9404655.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值