一勺大白
居家办公摸鱼程序猿...主修 PHP+Vue 的全栈!
Centos 8 服务器 LNMP 安装
Centos 8 服务器 LNMP 安装
发布时间:2024年10月27日 浏览量:4753

基础更新
更新系统内核与软件版本

yum update 

重启服务器

reboot 

Nginx
安装nginx

yum install nginx -y

安装完成后,启动Nginx

systemctl start nginx

把nginx设为自动启动

systemctl enable nginx

查看nginx运行状态

systemctl status nginx

在里面也可以看到nginx的配置文件路径

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

配置文件是 /etc/nginx/nginx.conf
赋权

chown nginx:nginx /usr/share/nginx/html -R

测试
目前为止 可以访问 IP 访问服务器
如果显示 Nginx 就是成功了
如果没有访问到 查看防火墙开放的端口 (文档最下面)

MariaDB
安装MariaDB

yum install mariadb-server mariadb -y

启动MariaDB

systemctl start mariadb

把MariaDB设为自动启动

systemctl enable mariadb

查看MariaDB状态

systemctl status mariadb  

配置MariaDB

mysql_secure_installation

运行后,MariaDB会要求输入root密码,由于是刚安装的,直接回车进入下一步。
这个时候MariaDB提示是否设置root密码,按“y”,输入两次密码。
接下来,可以按回车键回答所有剩余的问题,这将删除匿名用户,禁用远程root登录并删除测试数据库,此步骤是MariaDB数据库安全性的基本要求(注意字母Y是大写的,这意味着它是默认答案)
重启MariaDB

systemctl restart mariadb

测试
数据库使用 命令行 root 账号密码登录
成功登录表示安装成功

mysql -u root -p

远程登录MariaDB
如果需要在远程电脑登录MariaDB,那就多做以下这些设置
进入MariaDB

mysql -u root -p

连接mysql数据库

use mysql

修改数据表

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678';

把12345678改为你的密码。
刷新权限

flush privileges;

查看修改后的数据表

SELECT host,user,password from user;

PHP-FPM
安装php和相关模块

yum install php php-mysqlnd php-fpm php-opcache php-gd php-xml php-mbstring php-json php-posix -y

启动PHP-FPM

systemctl start php-fpm

设为自动启动

systemctl enable php-fpm

查看状态

systemctl status php-fpm

让php为nginx服务
默认情况下,PHP-FPM作为apache用户运行。
由于我们使用的是Nginx,所以我们需要对其进行更改。
打开PHP_FPM配置文件

nano /etc/php-fpm.d/www.conf

找到以下两行:

user = apache
group = apache

将它们更改为:

user = nginx
group = nginx

重载PHP-FPM

systemctl reload php-fpm

Nginx Php-fpm 配置文件
站点

server {
   listen  80;
   server_name smp.ssh.com;
   root /data/web/test;
   location / {
      try_files $uri $uri/ index.html;
      index  index.html index.htm index.php;
   }
   include php-fpm.conf;
}

php-fpm.conf

location ~ [^/]\.php(/|$)
{
    fastcgi_pass  unix:/run/php-fpm/www.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    set $path_info $fastcgi_path_info;
    fastcgi_param PATH_INFO       $path_info;
    try_files $fastcgi_script_name =404;
}

设置时区

echo `date +'[%Y-%m-%d %H:%M:%S]'`
timedatectl set-timezone Asia/Shanghai

防火墙设置
可能用不到

放行80端口

firewall-cmd --permanent --zone=public --add-service=http

放行443端口

firewall-cmd --permanent --zone=public --add-service=https

放行3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

重载防火墙

systemctl reload firewalld
firewall-cmd --reload

防火墙的其他命令

systemctl stop firewalld #停止防火墙
systemctl disable firewalld #禁用防火墙
systemctl start firewalld #开启防火墙