LNMP-Web搭建(Linux+Nginx+MySQL+PHP)

LNMP-Web搭建(Linux+Nginx+MySQL+PHP)

一、准备工作

准备好nginx、PHP、mysql安装包

在这里插入图片描述

源码包可以去官网下载

安装编译工具和依赖软件包
yum -y install gcc* pcre-devel openssl openssl-devel zlib-devel ncurses-devel cmake bison libxml2-devel libpng-devel
不知道自己是否安装的,可以rpm -qa | grep 软件包名可以查

二、源码包安装

1.nginx

nginx是一款轻量级的web服务器/反向代理服务器及电子邮件IMAP/POP3代理服务器,咋爱BSD-like协议下发行,其特点是占内存少,并发能力强。

a.创建用于运行的nginx用户
useradd -r -s /sbin/nologin nginx

b.解压缩nginx并安装
tar -xf nginx…
cd nginx…
./configure –prefix=/usr/local/nginx –user=nginx –group=nginx –with-http_stub_status_module –with-http_ssl_module

在这里插入图片描述

–prefix指定安装位置,–user –group指定运行时用户和租,–with-http_stub_status_module关联stub_status模块,统计模块;–with-http_ssl_module,关联ssl,openssl加密模块
make && make install

c.为了方便管理,将nginx各种管理脚本放在系统命令目录中(在安装目录下的sbin目录下)
ln -s /usr/local/nginx/sbin/* /usr/bin/

d.启动nginx并验证
nginx
因为我们刚刚将管理脚本都放入了系统命令,所以直接nginx就行

在这里插入图片描述

也可以直接浏览器访问
在这里插入图片描述

2.MySQL安装

a.解压安装MySQL
tar -xf mysql…
cd …
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARASETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_USER=mysql -DMYSQL_TCP_PORT=3306
make
make install

b.将mysql管理脚本复制到系统命令目录中方便使用
ln -s /usr/local/mysql/bin/* /usr/bin/

c.修改安装后的目录全安先
chown -R mysql:mysql /usr/local/mysql

d.生成MySQL配置文件
cp -a /mysql-5.*/support-files/mv-medium.cnf /etc/my.cnf

e.初始化,生成授权表
cd /usr/local/mysql
切换目录,以免出错
./scripts/mysql_install_db –user=mysql

f.生成mysql的启动和自启动管理脚本,方便systemctl管理
cd /lnmp/mysql-x.x.x/support-files
cp -a mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
chkconfig –add mysqld
systemctl enable mysqld
systemctl start/stop/restart mysqld

g.给mysql的root用户设置密码
mysql -u root -p
mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON . TO root@“%” IDENTIFIED BY “123456”;
mysql> update user set Password = password(‘123456’) where User=‘root’;
mysql> flush privileges;
mysql> exit;

f.启动登录测试即可
systemctl start mysqld
mysql -uroot -p

3.PHP安装

a.解压php并安装
tar -xf php-…
cd php-…
./configure –prefix=/usr/local/php/ –with-config-file-path=/usr/local/php/etc/ –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-soap –enable-mbstring=all -enable-sockets –with-pdo-mysql=/usr/local/mysql –with-gd –with-pear –enable-fpm
make && make install

报错:configure: error: png.h not found.
解决:yum -y sintall libpng libpng-devel

报错:libpng.so not found,老版php才会出现
解决:ls -s /usr/lib64/libpng.so /usr/lib

b.生成php配置文件
cp -a /lnmp/php-x.x.x/php.ini-production /usr/local/php/etc/php.in

c.创建软链接,使用php相关命令更方便
ln -s /usr/local/php/bin/* /usr/bin/
ln -s /usr/local/php/sbin/* /usr/bin/

注意:apache是通过模块连接php的,nginnx是通过一个中间工具来连接php的,php启动这个工具服务,该工具专门用来接收nginx请求,nginx通过这个服务连接php,该服务叫PHP-FPM

4.配置nginx连接php

a.nginx连接php需要启动php-fpm服务(9000端口)。php-fpm属于php,nginx没有连接php的模块
cd /usr/local/php/etc/
cp -a php-fpm.conf.default php-fpm.conf
生成php-fpm的配置文件,修改指定参数
vim php-fpm.conf
注:在Php7.x中,会调用php-fpm.d/下的*.conf文件。
修改指定条目参数:
pid = run/php-fpm.pid
pid文件生成位置
user = nginx,指定用户
group = nginx,指定组
一般修改上面三个参数即可。在php7中,只有pid一个选项,其他的在Php-fpm.d/www.conf文件里。
pm.start_servers=2,启动时开启的进程数
pm.min_spare_servers=1,最少空闲进程数
pm.max_spare_servers=3,最多空闲进程数
修改nginx启动管理脚本:去掉php-fpm注释即可。

b.修改nginx的配置文件,使其识别.php后缀文件。修改前记得备份
vim /usr/local/nginx/conf/nginx.conf
user nginx;
修改配置文件,可以先注意nginx的运行用户是否注释,是否正确,错了就修改正确即可。注释就取消。
#取消下列行注释,将include的选项后缀改为fastcgi.conf,注意每行结尾的分号和大括号。
loacation ~.php$ {
root html;
fastcgi_pass 127.0.0.1:9000
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name
inculde fastcgi.conf
}

在这里插入图片描述

c.重启测试,创建php文件,访问并查看是否解析,注:php-fpm也要重启。
启动:

/usr/local/nginx/sbin/nginx
/usr/local/php/sbin/php-fpm

在这里插入图片描述

停止:

kill -s QUIT $(cat /usr/local/nginnx/logs/nginx.pid)
kill -s QUIT $(cat /ust/local/php/var/run/php-fpm.pid)
查看当前进程pid,赌气,用kill -s QUIT进行停止

重启:

先停止再启动

重加载:

kill -s HUP $(cat /usr/local/nginx/logs/nginx.pid)
kill -s HUP $(cat /usr/local/php/var/run/php-fpm.pid)

检查nginx语法:

/usr/local/nginx/sbin/nginx -t

创建php文件:

vim /usr/local/nginx/html/test.php

<?php
phpinfo();

网页文件修改了不用重启也行。直接访问php页面查看是否解析。

在这里插入图片描述

d.修改nginx配置文件,使其默认自动加载php文件
location / {
root html;
nginx默认网页路径:prefix/html
index index.php index.html;
默认加载页面,也设置了优先级
}

                       

点击阅读全文

上一篇 2023年 6月 10日 am10:43
下一篇 2023年 6月 10日 am10:45