1. 什么是LNMP架构
- L Linux 系统
- N nginx网站服务 接收用户的访问,并进行处理(静态请求)
- P PHP网站服务 接收用户的访问,并进行处理(动态请求)
- M MySQL 数据库服务
2.安装部署LNMP
1.安装过程
- Linux系统安装(关闭防火墙 selinux关闭 /tmp目录权限1777)
- Nginx服务安装(yum 官方源安装)
- MySQL数据库服务安装
1) 利用yum进行安装
2)利用编译安装软件
3)利用二进制包安装
## 下载安装数据库
yum install mariadb-server -y
## 开机自启
systemctl start mariadb.service
systemctl enable mariadb.service
## 设置密码
mysqladmin password 123456
mysql -uroot -p123456
- PHP 部署安装
1)解决PHP软件冲突
yum remove php-mysql php php-fpm php-common
2)更新yum源信息,用户安装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
3)直接安装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
php71w --- 主程序软件
php71w-gd --- 和显示图形相关的软件
php71w-mcrypt --- 和数据传输加密相关
php71w-pdo --- 让php和数据库建立联系
php71w-fpm --- ???
- 重要文件和目录信息
/etc/php-fpm.conf ---php-fpm进程的配置文件
/etc/php-fpm.d ---php-fpm进程加载配置文件的目录
/etc/php-fpm.d/www.conf
- 启动PHP
systemctl start php-fpm
systemctl enable php-fpm
2.LNMP配置过程
LNMP工作原理:
当nginx将CGI请求发送给这socket的时候,通过FastCGI接口,wrapper接收到请求,然后派生出一个新线程,这个线程调用PHP解释器或外部程序处理脚本,读取,返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给nginx;最后,nginx将返回数据发送给客户端
image.png
- Nginx服务+PHP 建立关系(fastcgi)
-
PHP+MySQL 建立关系(PHP代码控制连接数据库)
image.png
编写Nginx配置文件
[root@web02 conf.d]# vim www.conf
server {
listen 80;
server_name www.laoli.com;
location / {
root /html/www;
index index.php index.html;
}
location ~ \.php$ {
root /html/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
location ~ \.php$ {
root /html/www;
fastcgi_pass 127.0.0.1:9000; --- 9000代表就是php服务程序
fastcgi_index index.php; --- 指定动态请求的默认首页文件 oldboy.php
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
factcgi_param指令说明:
主要作用是将静态服务获取到的动态请求信息 进行整合 ---
将动态请求告知给PHP程序
include fastcgi_params; --- 加载fastcgi配置文件,可以识别变量信息
编写PHP 代码
[root@oldboy www]# cat index.php
<?php
phpinfo();
?>
搭建网站: 动态资源更好
访问网站: 静态资源更好(便于搜索引擎收录)
---> 实现伪静态(实质还是动态资源 显示uri信息是静态的信息)
PHP + MySQL建立关系
准备工作:
[root@oldboy www]# pwd
/html/www
编写代码文件
[root@oldboy www]# vim test_mysql_con.php
<?php
$servername = "localhost";
$username = "root";
$password = "123456";
//$link_id=mysql_connect('主机名','用户','密码');
//mysql -u用户 -p密码 -h 主机
$conn = mysqli_connect($servername, $username, $password);
if ($conn) {
echo "mysql successful connect !\n";
}else{
die("Connection failed: " . mysqli_connect_error());
}
?>

