一、LNMP 架构简介
LNMP架构是指Linux系统下的Nginx、MySQL、PHP组合的网站服务器架构,可以处理网站请求,提供动态和静态网页服务,并且支持数据库和脚本语言,为网站开发提供了全面的支持。
● Linux:在LNMP架构中,Linux作为基础操作系统,提供了一个稳定和可靠的平台。
● Nginx:主要负责处理HTTP请求,将客户端的请求转发给适当的后端服务器进行处理。
● PHP:处理动态请求,执行相关的脚本程序,生成网页内容并返回给客户端浏览器。
● MySQL:在LNMP架构中,MySQL主要用于存储和管理网站的数据。
二、LNMP 架构
1、Nginx 部署
Nginx:接收用户请求,处理用户问题
yum install -y nginx
systemctl start nginx
nginx 占用 80 端口:
2、php - fpm 部署
(1) yum install -y php-fpm php-mysql php-gd
systemctl restart php-fpm ;systemctl enable php-fpm
php 占用 9000 端口
(2) 测试 php 界面
在 /usr/share/nginx/html/ 下写测试页面 ( /var/www/html/ 是 apache 的目录)
测试页面内容为 php 的基本信息
(3) 修改 nginx 的主配置文件,启动 nginx 推送 php 配置
location ~ \.php$:以 .php 结尾的文件访问 nginx,就推给 127.0.0.1 的 9000 端口
编写完配置文件后访问 /index.php 即可显示测试界面的内容:
3、mysql 部署
(1) yum install -y mariadb mariadb-server
systemctl start mariadb ;systemctl enable mariadb
配置密码(mariadb 默认空密码)
创库,授权
(2) php 文件连接数据库
mysql_connect( ip、账号、密码 )
登录数据库成功(php 与 mysql 成功建立联系)
4、业务上线(以 Wordpress 为例)
① 下载压缩包、解压:
wget https://cn.wordpress.org/wordpress-4.9.1-zh_CN.zip
unzip wordpress-4.9.1-zh_CN.zip
② 更改 nginx 主目录下的文件:
rm -rf /usr/share/nginx/html/*
cp -rf /root/Downloads/wordpress/* /usr/share/nginx/html/
③ 修改属主和权限:
chown -R nginx.nginx /usr/share/nginx/html/*
chmod 777 /usr/share/nginx/html/
● WordPress界面:
Wordpress 安装成功
三、shell 脚本部署网校系统
shell 脚本可以实现对项目的自动部署,以 Edusoho 为例:
① #!/bin/bash 指定使用 Bash shell 来解释和执行该脚本。
Mysql_Pass=123 数据库默认密码
② yum -y install epel-release:安装扩展包
yum -y install bash-completion wget:安装基础软件包
如果安装时遇到以下情况:
则杀死 yum 的进程,再重新安装。
③ 修改 apache 配置
④ 修改 php 上传下载文件的大小和时区
⑤ edusoho 配置:
解压放到网站目录,授权修改文档根目录
apache 内部授权
⑥ 运行脚本后,可安装 EduSoho
Edusoho 安装成功
完整脚本:
#!/bin/bash
#install edusoho
Mysql_Pass=123456
#epel
yum -y install epel-release
#env
yum -y install bash-completion wget
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#LAMP
yum -y install httpd
yum -y install \
php php-cli \
php-curl \
php-fpm \
php-intl \
php-mcrypt \
php-mysql \
php-gd \
php-mbstring \
php-xml \
php-dom
yum -y install mariadb-server mariadb
#apache
rm -rf /etc/httpd/conf.d/welcome.conf
systemctl enable httpd
#mysql
systemctl start mariadb
systemctl enable mariadb
#mysqladmin -uroot password "$Mysql_Pass"
mysql -uroot -p"$Mysql_Pass" -e "create database edusoho"
#php
sed -ri 's/post_max_szie = 8M/post_max_szie = 1024M/' /etc/php.ini
sed -ri 's/memory_limit = 128M/memory_limit = 1024M/' /etc/php.ini
sed -ri 's/upload_max_fileszie = 2M/upload_max_fileszie = 1024M/' /etc/php.ini
sed -ri 's#;date.timezone =#date.timezone = Asia/ShangHai#' /etc/php.ini
systemctl start php-fpm
systemctl enable php-fpm
#edusoho
wget http://download.edusoho.com/edusoho-7.5.12.tar.gz
tar xf edusoho-7.5.12.tar.gz
cp -rf edusoho /var/www/
chown -R apache.apache /var/www/edusoho/
rm -rf /var/www/html/index.html
sed -ri 's#DocumentRoot "/var/www/html"#DocumentRoot "/var/www/edusoho/web"#' /etc/httpd/conf/httpd.conf
cat >>/etc/httpd/conf/httpd.conf <<EOF
<Directory "/var/www/edusoho/web/">
AllowOverride All
Require all granted
</Directory>
EOF
systemctl restart httpd
systemctl restart php-fpm