LNMP-网站代码上线

1. LNMP环境

L linux
N Nginx
M MySql | mariadb
P PHP

web01  10.0.0.7
web02  10.0.0.8
wbe03  10.0.0.9
db01
nfs

2. 配置过程

2.1 安装配置 mariadb (在数据库服务器上)

yum install -y mariadb 
LNMP-网站代码上线_第1张图片
安装数据库

启动数据库服务

systemctl start   mariadb

设置开机启动

systemctl  enable   mariadb

设置数据库密码

mysqladmin password 密码

设置开机启动

systemctl enable mariadb

查看启动状态

ps -ef | grep mariadb
设置数据库密码

进入数据库

LNMP-网站代码上线_第2张图片
进入数据库正常


2.2 安装Nginx 官方源安装

第一步: 更新yum源

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

第二步:复制一下信息到nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

第三步:检查Nginx 启动状态

systemctl start nginx  启动Nginx 
systemctl enable  nginx 设置开机启动
ps -ef | grep nginx 检查nginx 进程 
root       7824      1  0 20:25 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
www        7825   7824  0 20:25 ?        00:00:00 nginx: worker process
root       7853   7662  0 20:26 pts/0    00:00:00 grep --color=auto nginx

2.3 安装php

PHP: 安装部署   
yum remove php-mysql php php-fpm php-common
解决yum安装冲突问题 (与mysql)
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
更改yum源 (防止无法下载安装包)
yum install -y php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache  php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
利用yum安装以上软件(如果不确定是否全部安装上,就再装一遍)
LNMP-网站代码上线_第3张图片
解决冲突问题
LNMP-网站代码上线_第4张图片
更新安装php yum源
安装软件

注意: 安装完PHP之后要启动php-fpm 服务

systemctl start php-fpm  启动服务器 
systemctl enable php-fpm 设置开机启动
netstat -lntup | grep 9000  检查进程是否启动正常(php-fpm服务端口号为9000)

3. 代码上线前的配置

Nginx 与PHP 进行链接

为什么要进行连接?
            静态请求
    用户 ------------> NGINX
    用户 <------------ NGINX (如果可以处理)      
    
           动态请求     无法处理
    用户 ----------->    NGINX  (媒体资源类型里边未找到) ----> fastcgi_pass----> php-fpm进程 PHP程序

    如果可以处理
    php(处理结果)-----> nginx -----> 用户
    
    如果不能处理,例如需要连接数据库进行处理
    PHP程序(php自身不能处理)------->mysql服务器  
    mysql服务器 ---->PHP程序----> Nginx ----> 用户 

    NGINX如何将动态请求交给PHP?fastcgi_pass ?                      
    使用一个 fastcgi_pass 接口。两个程序之间的接口          
    而再PHP程序这边,也需要一个专门接受请求的程序,就是php-fpm 进程,配置文件是 php-fpm.conf

测试PHP连接

写入一下代码到首页文件中,或者制定一个html文件
echo "" > /html/blog/test_info.php
echo "" > /html/blog/index.php (需要在配置文件中将首页文件替换成 index.php)

编写配置文件
server{
    listen 80;
    server_name blog.oldboy.com;
    location / {
    root /html/blog;
    index  index.php;  # 如果不设置首页文件,直接在网站域名后边加上文件名访问,这里把首页直接设置为
                       # index.php 必须保证站点目录有这个文件存在,才可以访问成功
               }
location ~ \.php$ {
            root   /html/blog;
            fastcgi_index index.php;
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;   
              }
}
修改完成后重启服务

systemctl  restart nginx;
LNMP-网站代码上线_第5张图片
链接成功示例

PHP 与 数据库进行链接
在站点目录下,编辑一个测试数据库链接的文件

touch /html/blog/test_mysql.php 
vim test_mysql.php
   
LNMP-网站代码上线_第6张图片
链接成功示例

注: 网页提示 Connection failed: Host 'web01' is not allowed to connect to this MariaDB server

LNMP-网站代码上线_第7张图片
php无法连接Mariadb时如何处理.png

出现此问题是应为数据库服务器没有远程登录权限的原因,在数据库服务器上进行设置就可以解决

至此,代码上线的一些准备工作已经完成

4. 代码上线

  • 第一步:获取上线代码

  • 第二步:将代码解压放置站点目录中

tar -xf 压缩包 
  • 第三步:调整站点目录数据权限
    将站点目录属主和属组调整为 Nginx worker用户,www
chown  -R  www.www /html/blog/

将php-fpm 服务运行的用户改为web服务统一的用户 www

vim  /etc/php-fpm.d/www.conf
php-fpm 服务的配置文件在 /etc/php-fpm.d/www.conf 将其中apache改为 www
  • 第四部:初始化网站

浏览器中打开网址

LNMP-网站代码上线_第8张图片
初始化网站

LNMP-网站代码上线_第9张图片
填写数据库连接信息

在数据库中查看有没有上图中 wordpress 这个库

show databases;  查看数据库中有那些库
LNMP-网站代码上线_第10张图片
查询数据库中的库

如果没有上示数据库,在数据库中手动创建

create database wordpress;

创建数据库管理用户(其他用户连接需要用到)

grant all  on wordpress.* to 'wordpress'@'172.16.1.%' identified by xxx(数据库密码)
grant all 代表将所有权限都赋予 wordpress这个库下的所有表,管理用户是wordpress ,允许171.16.1.0/24 这个网段的地址进行访问
创建数据库管理用户
select user,host from mysql.user;
查询列 user  host 在mysql库中的user表
LNMP-网站代码上线_第11张图片
检查是否创建成功管理用户

创建成功之后,回到网站初始化页面,继续初始化

LNMP-网站代码上线_第12张图片
注册信息
LNMP-网站代码上线_第13张图片
登录成功之后显示如上

你可能感兴趣的:(LNMP-网站代码上线)