搭建Web服务器前奏之LNMP(Linux, Nginx, MySQL, PHP)环境
·
首先你需要一个Linux系统,这个不用说了哈,本文安装的是CentOs7,适用老版本的同学参考;注:CentOs7以上版本请安装对应的高级版本,否则服务很可能不兼容。
废话不说,直接开搞!
安装Nginx(无需配置多站点,看前四行就够了)
sudo yum install epel-release #安装源
sudo yum install nginx #安装nginx
sudo systemctl start nginx #启动
sudo systemctl enable nginx #设置开机启动
#配置多站点(如需)
#创建网站目录:为每个站点创建一个目录。例如,为 example1.com 和 example2.com
#创建目录:
sudo mkdir -p /usr/share/nginx/html/example1.com
sudo mkdir -p /usr/share/nginx/html/example2.com
#创建索引文件:在每个目录中创建简单的 HTML 文件作为索引文件,例如 index.html
echo "Welcome to example1.com" | sudo tee
/usr/share/nginx/html/example1.com/index.html
echo "Welcome to example2.com" | sudo tee
/usr/share/nginx/html/example2.com/index.html
#配置 Nginx:
#编辑 Nginx 的配置文件,通常位于 /etc/nginx/nginx.conf。在这个文件中,你可以包含额外的配置
#文件,每个站点一个。例如,创建一个 sites-available 和 sites-enabled 目录结构:
sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled
#为每个站点创建一个配置文件,例如 example1.com.conf 和 example2.com.conf,并放在 sites-available 目录中。
sudo nano /etc/nginx/sites-available/example1.com.conf
sudo nano /etc/nginx/sites-available/example2.com.conf
#在 example1.com.conf 中添加以下内容:
server {
listen 80;
server_name example1.com www.example1.com;
root /usr/share/nginx/html/example1.com;
index index.html index.htm;
}
#在 example2.com.conf 中添加以下内容:
server {
listen 80;
server_name example2.com www.example2.com;
root /usr/share/nginx/html/example2.com;
index index.html index.htm;
}
#创建符号链接:
#将 sites-available 中的配置文件链接到 sites-enabled 目录,以启用它们:
sudo ln -s /etc/nginx/sites-available/example1.com.conf /etc/nginx/sites-
enabled/example1.com.conf
sudo ln -s /etc/nginx/sites-available/example2.com.conf /etc/nginx/sites-
enabled/example2.com.conf
#测试和重新加载 Nginx:测试配置文件是否有语法错误
sudo nginx -t
#如果没有错误,重新加载 Nginx 以应用更改:
sudo systemctl reload nginx
#现在,你应该可以通过访问 http://example1.com 和 http://example2.com 来访问你的两个不同网
站了。每个站点的配置都独立于其他站点,允许你为每个站点设置不同的服务器块配置。
安装 PHP 和必要的 PHP 模块
步骤1:安装EPEL仓库、Remi仓库及核心扩展
# 安装 EPEL 仓库
sudo yum install -y epel-release
# 添加 Remi 仓库(PHP 7.4 官方源)
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
#启用PHP7仓库
sudo yum-config-manager --enable remi-php74
#安装 PHP 7.4.33 及核心扩展
sudo yum install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-curl
php-xml
步骤2:配置 Nginx 和 PHP-FPM
配置 PHP-FPM:
sudo vi /etc/php-fpm.d/www.conf
修改 listen = /run/php-fpm/php-fpm.sock 到 listen = 127.0.0.1:9000。保存并退出。
启动 PHP-FPM 服务:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
步骤3:以wordpress站为例,配置Nginx文件
#创建一个新的 Nginx 站点配置文件:
sudo vi /etc/nginx/conf.d/wordpress.conf
#添加以下配置:
server {
listen 80;
server_name your_domain.com; # 替换为你的域名或 IP 地址
root /var/www/wordpress; # WordPress 安装目录
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000; # PHP-FPM 监听地址和端口号
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
#测试 Nginx 配置文件是否有误:
sudo nginx -t
#如果一切正常,重新加载 Nginx 以应用配置:
sudo systemctl reload nginx
安装Mysql
#装过的,装错的,先走下面这四行开启新篇章(毕竟排障费时间……)
sudo systemctl stop mysqld #1停
sudo yum remove mysql mysql-server #2删
sudo yum clean all #3清理
sudo rm -rf /var/lib/mysql /etc/my.cnf /etc/my.cnf.d /var/log/mysql* #4灭迹
#新篇章开始
sudo yum install epel-release -y #确源
添加 MySQL Yum 仓库:sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm #老版本用这个
sudo yum install mysql-community-server -y #安装
sudo systemctl start mysqld #启动
sudo systemctl enable mysqld #开机自启动
sudo grep 'temporary password' /var/log/mysqld.log #获取临时密码
#用临时密码成功登录后第一时间改ROOT密码
mysql -u root -p #临密登录
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; #改新密码
FLUSH PRIVILEGES;
EXIT;
#设置root账号远程可以访问
use mysql;
select user,host from user;
update user set host = ‘%’ where user = ‘root’;
Mysql启动失败的看这里,送排障(按照上面的步骤一般不会出现,但万一........)
一、MySQL服务启动问题排查
#检查数据目录状态
systemctl status mysql 查看服务状态,确认错误是否指向 /var/lib/mysql/ 目录不可用
#验证目录是否存在:
ls -ld /var/lib/mysql
#日志文件处理,检查错误日志:
tail -f /var/log/mysql/error.log(若不存在需手动创建目录和文件)
#初始化数据目录:
sudo mysqld --initialize(首次安装时需要)
二、SSH认证失败处理
用户权限检查
#确认root用户密码是否已设置:
sudo passwd root
#检查PAM配置:
cat /etc/pam.d/sshd 确认认证模块配置正确
#关键配置文件验证检查 /etc/shadow 文件权限:
ls -l /etc/shadow(应仅root可读写)
#验证SSH配置:
grep PermitRootLogin /etc/ssh/sshd_config
三、综合解决方案步骤
#修复MySQL目录问题:
bash
Copy Code
sudo mkdir -p /var/lib/mysql
sudo chown mysql:mysql /var/lib/mysql
sudo mysqld --initialize
#处理SSH认证问题:
bash
Copy Code
sudo passwd root # 重置root密码
sudo systemctl restart sshd
#验证服务状态:
bash
Copy Code
systemctl status mysql
journalctl -xe # 查看详细系统日志
#该问题通常由目录权限配置不当或服务初始化不完整导致,建议检查SELinux状态(若启用)并确保所
有服务依赖项已安装。对于生产环境,建议创建专用数据库用户而非直接使用root账户操作。
打完收工~ 下班下班
更多推荐



所有评论(0)