该实验分为四个部分,实验一为搭建LNMP平台,实验二为测试能否解析php的文件
和连接数据库的效果,实验三为实现地址重写的功能,实验四为不同的浏览器,给出不同样式的页面
实验一:部署LNMP环境
一、目标
安装部署Nginx、MariaDB、PHP环境
- 安装部署Nginx、MariaDB、PHP、PHP-FPM;
- 启动Nginx、MariaDB、FPM服务;
- 并测试LNMP是否工作正常。
二、各软件的安装
1、安装源码包安装时需要的依赖包
yum -y install gcc openssl-devel pcre-devel zlib-devel
2、源码安装nginx
useradd -s /sbin/nologin nginx //添加帐号和组
tar -xf nginx-1.8.0.tar.gz //解压源码包
cd nginx-1.8.0/ //进入解压后的目录
./configure \
> -prefix=/usr/local/nginx \ //指定安装路径
> -user=nginx \ //指定用户名
> -group=nginx \ //指定用户组
> -with-http_ssl_module //安装安全模块
make && make install //编译和安装
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ //做软链接,方便服务启动
3、安装mariadb
yum –y install mariadb mariadb-server mariadb-devel
mariadb-devel //指的是包含开发首要的文件和一些静态库
4、安装php和php-fpm
yum –y install php php-mysql //安装php解释器和连接mysql的工具
rpm -ivh php-fpm-5.4.16-36.el7_1.x86_64.rpm //FastCGI进程管理器
5、启动三个服务
nginx //启动nginx服务
systemctl start mariadb //启动mariadb数据库
systemctl start php-fpm //启动fastcgi进程管理器
实验二、构建LNMP平台
一、目标
沿用实验一,通过调整Nginx服务端配置,实现以下目标:
- 配置Fast-CGI支持PHP网页
- 创建PHP测试页面,测试使用PHP连接数据库的效果
二、方案
使用2台RHEL7虚拟机,其中一台作为LNMP服务器(192.168.4.103)、
另外一台作为测试用的Linux客户机(192.168.4.101)
Nginx结合FastCGI技术即可支持PHP页面架构,因此本案例,需要延续实验一的实验内容
通过修改Nginx及php-fpm配置文件实现对PHP页面的支持
三、实施步骤
1、创建并修改php-fpm配置文件
- [www]
- listen = 127.0.0.1:9000 //php的监听端口
- listen.allowed_clients = 127.0.0.1 //
- user = apache
- group = apache
- pm = dynamic //进程管理方式为动态
- pm.max_children = 50 //最大进程数
- pm.start_servers = 5 //最小进程数
- pm.min_spare_servers = 5 //最少需要几个空闲着的进程
- pm.max_spare_servers = 35 //最多允许几个进程处于空闲状态
重启服务
2、修改Nginx配置文件并启动服务
- location / {
- root html;
- index index.php index.html index.htm;
- }
- location ~ \.php$ {
- root html;
- fastcgi_pass 127.0.0.1:9000; //把找到的页面给php来解析
- fastcgi_index index.php;
- include fastcgi.conf; //包含的文件,此处需修改
- }
重启服务
3、创建PHP测试页面,来测试是否能解析成功
- [[email protected] ~]# vim /usr/local/nginx/html/test1.php
- <?php
- $i="This is a test Page";
- echo $i;
- ?>
4、创建PHP测试页面,连接MariaDB数据库
<?php
$links=mysql_connect("localhost","root","");
if($links){
echo "link mysqldb ok";
}
else{
echo "link mysqldb no";
}
?>
5、创建PHP测试页面,连接并查询MariaDB数据库
<?php
$mysqli = new mysqli('localhost','root','','mysql');
if (mysqli_connect_errno()){
die('Unable to connect!'). mysqli_connect_error();
}
$sql = "select * from user";
$result = $mysqli->query($sql);
while($row = $result->fetch_array()){
printf("Host:%s",$row[0]);
printf("</br>");
printf("Name:%s",$row[1]);
printf("</br>");
}
?>
日志文件的两个地址: /usr/local/nginx/logs/error.log /var/log/php-fpm/error.log
实验三、地址重写
一、实验目标
沿用实验一,通过调整Nginx服务端配置,实现以下目标:
- 所有访问a.html的请求,重定向到b.html;
- 所有访问192.168.4.103的请求重定向至www.baidu.com;
- 所有访问192.168.4.103/下面子页面,重定向至www.baidu.com/下相同的页面;
- 实现curl访问不同的页面。
二、方案
关于Nginx服务器的地址重写,主要用到的配置参数是rewrite:
rewrite 旧地址或文件(支持正则表达式)新地址或文件 [选项];
三、实施步骤
步骤一:修改配置文件(访问a.html重定向到b.html)
1、修改Nginx服务配置,只需要修改一行:
- server {
- listen 80;
- server_name localhost;
- location / {
- root html;
- index index.html index.htm;
- rewrite /a.html /b.html; //访问a.html页面时自动跳转到b.html
- }
- }
2、创建两个不同的页面文件
3、重新加载服务,去客户端测试
步骤二:修改配置文件(访问192.168.4.5的请求重定向至www.baidu.com)
1、修改Nginx服务配置
- server {
- listen 80;
- server_name www.test.com;
- rewrite ^/ http://www.baidu.com/; // ^/表示以/开头的所有,
- 即不管访问www.test.com网站都会跳转到www.baidu.com
- location / {
- root html;
- index index.html index.htm;
- }
- }
2、重新加载配置文件,去客户端测试
步骤三:修改配置文件(访问www.test.com/下面子页面,重定向至www.baidu.com/下相同的页面)
1、修改Nginx服务配置
- server {
- listen 80;
- server_name www.test.com;
- rewrite ^/(.*) http://www.baidu.com/$1; //前面括号里面的时正则表达式,$1复制前面的内容
- location / {
- root html;
- index index.html index.htm;
- }
- }
2、重新加载文件,去客户端测试
实验四、不同浏览器得到不同样式的页面
其它同上,只需要在配置文件里面加一个判断语句
if ($http_user_agent ~* firefox){ //如果里面有firefox字段,
rewrite ^/(.*) /curl/$1; //跳转页面
}
其它浏览器走默认的
原文地址:http://blog.51cto.com/453412/2058898