什么是LNMP?
LNMP是常用得web架构,由:linux,nginx,mysql,php组成。
L: ----linux
N:------nginx (处理用户静态请求)
M:------mysql(存储数据)
P: ------php(处理用户动态请求)
LNMP原理:
首先,当用户通过浏览器访问nginx web服务时,如果请求的资源是静态文件,则由nginx解析后返回给用户,
如果请求的资源是动态的(.php结尾),那么需要通过fastcgi转接口发送给后台的PHP应用服务,如果动态资源需要
读取数据库的话,那么接着向后请求数据库,最后由nginx返回给用户。
PS:nginx软件是无法处理动态请求的!!!!
php -----------fsatcgi接口
python -----------uwcgi接口
动态环境部署流程
LNMP环境:Linux nginx mysql(数据库)--- mariadb php
第一个里程:部署数据库服务(nginx已部署好)
yum install -y mariadb mariadb-server
第二个里程:部署php动态解析服务(考察网络环境)
# 解决yum安装软件冲突问题
yum remove php-mysql php php-fpm php-common
rpm -qa|grep php
# 准备yum安装软件扩展源信息
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安装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
说明:官方网站地址 php.net
· 动态网站部署过程
第一个里程:确保nginx可以将请求代理转发给php服务
vim /etc/nginx/conf.d/www.conf
location ~ \.php$ {
root /html/www; --- 指定默认找寻PHP文件站点目录
fastcgi_index index.php; --- 指定动态服务默认处理请求文件
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; --- 详细转发给动态服务请求内容信息
include fastcgi_params; --- 加载fastcgi用到内置变量文件
fastcgi_pass 127.0.0.1:9000; --- 发送动态请求服务对接端口信息
}
$document_root --- 获取站点目录信息
$fastcgi_script_name --- 获取请求资源信息
测试过程:
编写php代码
vim test.php
<?php phpinfo(); ?>
systemctl start php-fpm --- 启动php服务
第二个里程:让php服务和数据库建立联系 (通过代码建立)
vim test_mysql.php
<?php
$servername = "localhost";
$username = "root";
$password = "root123";
//$link_id=mysql_connect(‘主机名‘,‘用户‘,‘密码‘);
//mysql -u用户 -p密码 -h 主机
$conn = mysqli_connect($servername, $username, $password);
if ($conn) {
echo "mysql successful by root!\n";
}else{
die("Connection failed: " . mysqli_connect_error());
}
?>
mysqladmin -uroot password "root123" --- 给数据库设置用户登录密码
mysql -uroot -proot123 --- 登录数据库命令
第三个里程:各种网站部署过程
部署网站代码:
www ----dedecms(官方网站)
bbs -----Discuz(论坛网站)
blog ------wordpress(博客网站)
zhihu ------wecenter(社区网站)
edu -------edusoho (视频网站)
blog网站部署过程:
第一个里程:获取网站代码并解压处理
tar xf wordpress-4.9.4-zh_CN.tar.gz
mv wordpress/* /html/blog/
第二个里程:对数据库进行创建与授权
create database wordpress; --- 创建wordpress数据库
grant all on wordpress.* to ‘wordpress‘@‘localhost‘ identified by ‘wordpress123‘;
检查语句:
select user,host from mysql.user;
select *,host from mysql.user\G;
第三个里程:网站初始过程
在浏览器上访问网站页面进行初始化
确认blog配置信息:
location / {
root /html/blog;
index index.php index.html index.htm;
}
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;
}
/html/blog/wp-config.php --- 此文件可能需要自己进行创建(连接数据库代码文件)
403:
01:网站访问页面被拒绝了 deny指令配置
02:网站没有指定首页文件
blog页面无法正常显示:wordpress 5.xxx 新版本
chown -R www.www /var/cache/nginx/fastcgi_temp/
原文:https://www.cnblogs.com/hero-tz/p/14552935.html