网站的LNMP架构
主机名称和IP地址规划
服务 | 主机名 | eth0网卡IP | eth1网卡IP | 软件 |
---|---|---|---|---|
防火墙服务器 | firewalld | 10.0.0.81 | 172.16.1.81 | firewalld |
负载均衡服务器 | lb01 | 10.0.0.5 | 172.16.1.5 | nginx,keepalived |
负载均衡服务器 | lb02 | 10.0.0.6 | 172.16.1.6 | nginx,keepalived |
web服务器 | web01 | 10.0.0.7 | 172.16.1.7 | nginx |
web服务器 | web02 | 10.0.0.8 | 172.16.1.8 | nginx |
web服务器 | web03 | 10.0.0.9 | 172.16.1.9 | nginx |
存储服务器 | nfs01 | 10.0.0.31 | 172.16.1.31 | nfs |
备份服务器 | backup | 10.0.0.41 | 172.16.1.41 | rsync |
数据库服务器 | db01 | 10.0.0.51 | 172.16.1.51 | mysql,mariaDB |
批量管理服务器 | m01 | 10.0.0.61 | 172.16.1.61 | ansible |
跳板机服务器 | jumpserver | 10.0.0.71 | 172.16.1.71 | jumpserver |
监控服务器 | zabbix | 10.0.0.72 | 172.16.1.72 | zabbix |
缓存服务器 | 暂无 | 暂无 | 暂无 | 暂无 |
- L : linux
关闭selinux和防火墙
/tmp 1777 mysql服务无法启动
- N : nginx
处理用户的静态请求 html jpg txt mp4/avi
- M : mysql
存储用户的字符串数据信息
- P : php
处理动态的页面请求
负责和数据库建立关系
LNMP架构部署
linux部署
nginx部署
编写配置文件,解析php文件
通常需要在默认匹配的index中设置
index.php
server {
listen 80;
server_name www.1997sty.com;
root "/WWW/blog/public";
location / {
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
- fastcgi_pass :
nginx
和php-fpm
的进程间通信方式,可以用netstat -luntp | grep php
查看php-fpm
进程的端口号 - fastcgi_index : php默认首页文件
- fastcgi_param SCRIPT_FILENAME : 设置脚本目录名称
- include fastcgi_params : 引入配置参数
[root@web01 ~]# netstat -luntp | grep php
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 21862/php-fpm: mast
mysql部署
安装数据库
#安装mariaDB
yum install mariadb-server mariadb -y
启动数据库并设置开机启动
systemctl start mariadb.service
systemctl enable mariadb.service
初始化数据库
#PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
#To do so, start the server, then issue the following commands:
#给本地数据库设置密码
/application/mysql/bin/mysqladmin -u root password 'new-password'
#给远程数据库设置密码
/application/mysql/bin/mysqladmin -u root -h web01 password 'new-password'
#设置数据库,并非修改数据库密码
mysqladmin -u root password '123456'
#登录数据库
mysql -u root -p123456
php部署
更新yum源/卸载系统自带的PHP软件
yum remove php-mysql php php-fpm php-common
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
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
安装php和其他相关服务
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
修改
/etc/php-fpm.d/www.conf
的user
和group
- 保证nginx进程的管理用户和php服务进程的管理用户保持一致,
nginx
的用户我没有修改默认是nginx
,所以php
这里修改为nginx
; Start a new pool named 'www'.
[www]
; 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 = apache
user = nginx
; RPM: Keep a group allowed to write in log dir.
;group = apache
group = nginx
启动php并设置开机启动
systemctl start php-fpm
systemctl enable php-fpm
使用其他方法部署php
如果以上方法不能解决,可以尝试用EPEL和Remi存储库部署php
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
安装yum-utils
# yum-utils 可以扩展yum的默认功能,用于管理yum存储库以及程序包,而无需进行任何手动配置,yum-utils提供的程序之一是yum-config-manager,可以使用它来启用Remi存储库作为默认存储库,以安装不同的PHP版本
yum install yum-utils
选择要安装的PHP7版本
yum-config-manager --enable remi-php71
yum-config-manager --enable remi-php72
yum-config-manager --enable remi-php73
yum-config-manager --enable remi-php74
# 这里我们选择安装PHP74的版本
yum-config-manager --enable remi-php74
开始安装和选择需要的扩展
yum -y install php php-cli php-common php-gd php-json php-ldap php-mbstring php-mysqlnd php-pdo php-xml php-devel php-embedded php-mcrytp php-pecl-mongodb php-pecl-redis php-pecl-memcached php-opcache php-fpm
php -v
查看版本
[root@centos7]# php -v
PHP 7.4.26 (cli) (built: Nov 16 2021 15:31:30) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.26, Copyright (c), by Zend Technologies
测试LNMP架构
测试php和nginx之间的关系
- 在站点目录中添加代码,访问设置好的域名,如果配置正确,可以看到php的相关信息
vi index.php
<?php phpinfo(); ?>
测试php和数据库之间的关系
- 在站点目录中添加代码,访问设置好的域名,如果配置正确,可以看到php的相关信息
vi index.php
<?php
$conn = mysqli_connect("localhost", "root", "123456");
if ($conn)
{
echo "mysql successful by root !\n";
}
else
{
exit("Connection failed: " . mysqli_connect_error());
}
部署搭建网站页面
如果测试结果没有问题,就可以部署相关的网站
- www网站页面 : http://www.dedecms.com/
- bbs网站页面 : http://www.discuz.net/forum.php
- blog网站页面 : https://cn.wordpress.org/
- wecenter网站页面 : http://www.wecenter.com/?copyright
注意事项
- 获取源码后解压到对应的站点目录
- 修改对应目录或文件的权限和属主属组
- 网站源码中使用数据库非root账户
- 在数据库中添加新库
创建数据库
create databases new_datebase;
创建数据库管理用户
grant all on new_user.* to 'new_user'@'localhost' identified by '123456';
最后一次更新于2024-07-01 14:05
0 条评论