nginx配置lnmp架构02

LNMP架构

Linux、nginx、mysql、PHP的一套技术组合

nginx不能处理动态请求,当用户发起http请求,如果请求是静态资源则直接返回,

如果是动态资源,nginx通过fastcgi协议转交给后端的php等程序处理

mysql->warrap->php-fpm->fastcgi->nginx->http->user (请求流程)

php集成nginx

1.[root@web07 php]# cat /etc/nginx/conf.d/php.sang.com.conf

server {

listen 80;

server_name php.sang.com;

root /php;

location / {

    index index.php;

}   

location ~ \.php$ {

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    include fastcgi_params;

}

}

2.mkdir /php
3.vim /php/index.php

<?php
phpinfo();
?>

4.systemctl start php-fpm
5.systemctl start nginx

php集成mysql

php集成mysql(测试php是否 能正常连接我们的mysql)

1.mariadb要启动

[root@web01 php]# systemctl start mariadb

[root@web01 php]# systemctl enable mariadb

2.mysql要配置对应的用户和密码

    #给mysql的root用户设定的密码

[root@web01 php]# mysqladmin password oldxu.com

    #验证 密码

[root@web01 php]# mysql -uroot -poldxu.com

3.编写php连接 mysql的 代码,访问测试

[root@web01 php]# cat /code/mysql.php

<?php

//设定变量

    $servername = "localhost";

    $username = "root";

    $password = "oldxu.com";

    // 创建连接

    $conn = mysqli_connect($servername, $username, $password);

    // 检测连接

    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }

    echo "php连接MySQL数据库成功";

    ?>

wordpress搭建

1.准备wordpress的代码?放到某个指定的位置

[root@web01 ~]# mkdir /code

[root@web01 ~]# tar xf wordpress-5.2.3-zh_CN.tar.gz -C /code/

2.修改权限:

1.将 nginx php 的用户 身份 统一修改 为  www?

[root@web01 ~]# groupadd -g 666  www

[root@web01 ~]# useradd -u666 -g666 www

修改nginx运行身份

[root@web01 ~]# sed -i  '/^user/c user www;'  /etc/nginx/nginx.conf

修改php-fpm的运行身份
[root@web01 ~]# sed -i '/^user/c user = www'   /etc/php-fpm.d/www.conf

[root@web01 ~]# sed -i '/^group/c group = www'   /etc/php-fpm.d/www.conf

重启nginx和php

[root@web01 ~]# systemctl restart nginx php-fpm


2.授权代码目录的权限为www

[root@web01 ~]# chown -R www.www /code/wordpress/

3.配置下mariadb,创建一个库

[root@web01 ~]# mysql -uroot -poldxu.com

MariaDB [(none)]>

MariaDB [(none)]> create database wordpress; #创建一个 wordpress的 库

MariaDB [(none)]> show databases; #查看所有的库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| wordpress | <----
+--------------------+
5 rows in set (0.00 sec)

4.配置nginx,添加一个wordpress的网站

[root@web01 ~]# cat /etc/nginx/conf.d/blog.oldxu.com.conf

server {
listen 80;

server_name blog.oldxu.com;

root /code/wordpress;

client_max_body_size 100m;

location / {
    index index.php;
}

location ~ \.php$ {

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    include fastcgi_params;
}

}

[root@web01 ~]# nginx -t

[root@web01 ~]# systemctl restart nginx

hosts劫持

5.使用 浏览器访问,然后 有问题解决问题。

拆分数据库至另一台服务器

主机名称 应用环境 外网地址 内网地址

web01 nginx+php 10.0.0.7 172.16.1.7

db01 mysql 10.0.0.51 172.16.1.51

1.备份10.0.0.7 上的数据库,然后将备份的数据,推送到 10.0.0.51

1) 备份数据库 (了解即可,后期命令会更详细)

[root@web01 ~]# mysqldump -uroot -poldxu.com -A  > /opt/data.sql


2)推送到10.0.0.51上

[root@web01 ~]# scp /opt/data.sql root@10.0.0.51:~

2.在10.0.0.51 上恢复 10.0.0.7 推送过来的数据

1) 安装相同版本的mysql数据库

[root@db01 ~]# yum install mariadb mariadb-server -y

2) 启动mysql数据库

[root@db01 ~]# systemctl start mariadb

[root@db01 ~]# systemctl enable mariadb

3)执行恢复命令    #输入重定向

[root@db01 ~]# mysql < ~/data.sql

[root@db01 ~]# systemctl restart mariadb    #所有的配置生效了

[root@db01 ~]# mysql -uroot -poldxu.com     #测试是否能正常登录

3.在10.0.0.51上,创建一个允许远程连接数据库的用户 ( root仅允许本地连接 )

1)登陆mysql

[root@db01 ~]# mysql -uroot -poldxu.com

2)创建远程能连接的用户,以及密码。并进行授权

MariaDB [(none)]> grant all privileges on *.* to 'all'@'%' identified by 'oldxu.com';


3)验证远程用户是否可用(10.0.0.7,测试一下) 如果 通过远程方式没有问题,说明配置ok

[root@web01 ~]# mysql -h 172.16.1.51 -uall -poldxu.com

MariaDB [(none)]>

4.关闭10.0.0.7 上的 mysql服务器 ( 网站就打不来 )

[root@web01 ~]# systemctl stop mariadb

[root@web01 ~]# systemctl disable mariadb

5.将10.0.0.7上应用程序连接的数据库地址指向 172.16.1.51 ( 应用割接 )

wordpress如何配置:

[root@web01 ~]# vim /code/wordpress/wp-config.php

/** WordPress数据库的名称 */

define( 'DB_NAME', 'wordpress' );

/** MySQL数据库用户名 */

define( 'DB_USER', 'all' );

/** MySQL数据库密码 */

define( 'DB_PASSWORD', 'oldxu.com' );

/** MySQL主机 */

define( 'DB_HOST', '172.16.1.51' );

wecenter如何配置:

[root@web01 ~]# find /code/zh/ -type f | xargs grep -R "oldxu.com" #过滤代码中 包含oldxu.com的密码文件

[root@web01 ~]# cat /code/zh/system/config/database.php

<?php

$config['charset'] = 'utf8mb4';

$config['prefix'] = 'aws_';

$config['driver'] = 'MySQLi';

$config['master'] = array (

'charset' => 'utf8mb4',

'host' => '172.16.1.51',

'username' => 'all',

'password' => 'oldxu.com',

'dbname' => 'zh',

);

$config['slave'] = false;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。