1.nginx 1.20的版本开始,官方库和epel的大版本一样,小版本号epel更新一些。如果想要安装官方的,建议直接在官方下载对应的软件包
yum install -y http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.1-1.el7.ngx.x86_64.rpm
1)安装
将以及准备好的软件包mysql57.35.tar.gz php72.tar.gz通过xshell上传至web01
tar xf mysql57.tar.gz
tar xf php72.tar.gz
yum localinstall -y nginx* mysql57/* php72/*
2)编辑配置文件
mv /etc/nginx/conf.d/default.conf{,.bak}
vim /etc/nginx/conf.d/www.conf
server {
listen 80;
server_name www.ly.com;
root /web/www;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#$document_root就是root的值,$fastcgi_script_name就是访问的uri
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi协议的参数
include fastcgi_params;
}
}
3)创建站点目录和索引页
mkdir -p /web/www/
vim /web/www/index.php
<?php
phpinfo();
?>
4)启动nginx和php-fpm
systemctl start nginx php-fpm
systemctl enable nginx php-fpm
查看端口是否侦听
lsof -i:9000
lsof -i:80
5)客户端浏览器访问http://www.ly.com,如果能访问到正常php信息页面,表示LNP部署完成(记得修改hosts文件)
6)部署kaoshi.zip页面实现上传的效果
a.通过xshell上传kaoshi.zip
b.释放kaoshi.zip至web站点目录下
unzip -d /web/www/upload kaoshi.zip
c.查看nginx的www.conf,是否有支持index.html的语句
vim /etc/nginx/conf.d/www.conf
...
index index.php index.html;
...
d.重启nginx服务,通过访问http://www.tf.com/upload,上传文件,页面显示成功,实际并没成功
e.修改目录归属,让nginx的程序用户可以具有写权限
chown -R nginx.nginx /web/www/upload
f.再次上传,页面显示成功,实际还是没有成功,修改php-fpm的程序用户,和nginx一致
第一种方法:
sed -i '/^user/c user = nginx' /etc/php-fpm.d/www.conf
sed -i '/^group/c group = nginx' /etc/php-fpm.d/www.conf
第二种方法:
sed -ri '/^(user|group)/s#(.*)= apache#\1= nginx#' /etc/php-fpm.d/www.conf
第三种方法:
sed -i 's#apache#nginx#' /etc/php-fpm.d/www.conf
g.重启php-fpm,再次上传,成功
systemctl restart php-fpm
h.上传一个大文件,报错 413 Request Entity Too Large,说明默认LNP上传文件大小是有限制的
nginx+php实现上传文件大小限制的配置项如下:
1)nginx的配置项,可以在http{},server{},location{},默认1m
client_max_body_size 200m;
2)修改php的配置文件
vim /etc/php.ini
#文件上传功能,默认开启
file_uploads = On
#上传最大文件大小,默认2M
upload_max_filesize = 200M
#文件最大尺寸,默认8M
post_max_size = 200M
#一个请求可以上传的最大文件数 ,默认20
max_file_uploads = 20
至此,LNP算部署完成
7)部署mysql5.7
安装略
a.启动mysql服务
systemctl start mysqld
b.修改管理员root的密码
两种方式:
第一种:登录到mysql后,用alter语句修改
mysql -uroot -p$(awk '/temporary password/{print $NF}' /var/log/mysqld.log)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Tf123.com';
第二种:使用mysqladmin管理工具修改
mysqladmin -uroot -p$(awk '/temporary password/{print $NF}' /var/log/mysqld.log) password 'Tf123.com'
#如果root没有密码
mysqladmin -uroot password 'ly123.com'
mysql和mysqladmin的语法
mysql -u'username' -p'password' -h'hostname'
mysql -uroot -pTf123.com -h10.0.0.51
mysqladmin -u'username' -p'oldpassword' password 'newpassword'
c.创建一个测试php连接mysql的页面
vim /web/www/mysqli.php
<?php
$servername = "localhost";
$username = "root";
$password = "ly123.com";
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
// 检测连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "连接成功";
?>
d.访问http://www.ly.com/mysqli.php
能看到连接成功,LNMP部署完成
8)部署LNMP应用-wordpress
a.下载wordpress源码包
wget https://cn.wordpress.org/wordpress-5.7-zh_CN.tar.gz
#下载最新版
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
b.解压并移动到web站点目录,修改归属
tar xf wordpress-5.7-zh_CN.tar.gz
mv wordpress /web/blog
chown -R nginx.nginx /web/blog
c.添加blog的站点配置文件
cp /etc/nginx/conf.d/{www,blog}.conf
sed -i 's#www#blog#' /etc/nginx/conf.d/blog.conf
d.重载nginx
systemctl reload nginx
e.登录数据库创建wordpress所需库,并授权
mysql -uroot -p'ly123.com'
> create database wordpress;
> grant all on wordpress.* to 'webadm'@'localhost' identified by 'ly123.com';
f.浏览器访问http://blog.tf.com,根据提示安装该站点
9)部署LNMP应用-wecenter(知乎)
a.获取WeCenter源码包
b.解压并移动到web站点目录,修改归属
unzip WeCenter_3-2-2.zip
mv WeCenter322/ /web/zh
chown -R nginx.nginx /web/zh
c.添加blog的站点配置文件
cp /etc/nginx/conf.d/{www,zh}.conf
sed -i 's#www#zh#' /etc/nginx/conf.d/zh.conf
d.重载nginx
systemctl reload nginx
e.登录数据库创建wordpress所需库,并授权
mysql -uroot -p'ly123.com'
> create database zh;
> grant all on zh.* to 'webadm'@'localhost' identified by 'ly123.com';
f.浏览器访问http://zh.ly.com,根据提示安装该站点
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
排错思路
1.测语法nginx -t
2.systemctl start|restart nginx -> systemctl status nginx -l
目前的出现的错误:address already use 80端口被占用
ss -lntp | grep :80
killall 进程名
3.服务启动成功,访问出错,看日志errorlog
4.通过状态码
502
503
5.软件包安装成功
yum history
yum history undo ID
6.检查域名解析
ping 域名