centos7搭建lnmp环境
一、系统环境
1 2 | [root@server01 ~] # cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) |
二、安装MySQL nginx和PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 添加MySQL和PHP yum源 rpm -ivh https: //dev .mysql.com /get/mysql80-community-release-el7-7 .noarch.rpm rpm -Uvh https: //mirror .webtatic.com /yum/el7/epel-release .rpm rpm -Uvh https: //mirror .webtatic.com /yum/el7/webtatic-release .rpm 查看yum源中是否有MySQL安装包 yum repolist all | grep mysql 安装管理工具 yum install -y yum-utils 禁用MySQL8.0 yum-config-manager --disable mysql80-community 启用 mysql 5.7 yum-config-manager -- enable mysql57-community 查看可安装的PHP(yum list php72w*可以把能够安装的php扩展列出来,根据自己需要安装即可。) yum list php72w* 安装PHP、MySQL和nginx yum install -y nginx mysql-community-server php72w php72w-cli php72w-common php72w-fpm php72w-mysqlnd 查看安装的PHP 版本 [root@server01 ~] # php -v PHP 7.2.34 (cli) (built: Jun 7 2023 11:23:34) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies 查看安装的nginx版本 [root@server01 ~] # nginx -v nginx version: nginx /1 .20.1 查看安装的MySQL版本 [root@server01 ~] # mysql --version mysql Ver 14.14 Distrib 5.7.42, for Linux (x86_64) using EditLine wrapper |
三、启动服务并设为开机自启
1 2 3 4 5 6 7 8 9 10 | [root@server01 ~] # systemctl start nginx [root@server01 ~] # systemctl enable nginx Created symlink from /etc/systemd/system/multi-user .target.wants /nginx .service to /usr/lib/systemd/system/nginx .service. [root@server01 ~] # systemctl start php-fpm [root@server01 ~] # systemctl enable php-fpm Created symlink from /etc/systemd/system/multi-user .target.wants /php-fpm .service to /usr/lib/systemd/system/php-fpm .service. [root@server01 ~] # systemctl start mysqld [root@server01 ~] # systemctl enable mysqld<br> |
四、防火墙开放相关端口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 开放相关端口 [root@server01 ~] # firewall-cmd --zone=public --add-port=80/tcp --permanent success [root@server01 ~] # firewall-cmd --zone=public --add-port=3306/tcp --permanent success [root@server01 ~] # systemctl restart firewalld 查看开放的端口 [root@server01 ~] # firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens33 ens34 sources: services: dhcpv6-client ssh ports: 80 /tcp 3306 /tcp protocols: masquerade: no forward-ports: source -ports: icmp-blocks: rich rules:<br> |
五、初始化MySQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 由于MySQL从5.7开始不允许首次安装后使用空密码进行登录!为了加强安全性,系统会随机生成一个密码以供管理员首次登录使用, 这个密码记录在 /var/log/mysqld .log文件中,使用下面的命令可以查看此密码:[root@server01 ~] # cat /var/log/mysqld.log|grep 'A temporary password'2023-06-13T15:44:10.189775Z 1 [Note] A temporary password is generated for root@localhost: 0kgroQrl:u6a初始化服务# 直接用该密码登陆会要求改密码,最好先进行向导操作 # 安全向导 mysql_secure_installation # 输入 root 初始密码,初始密码中有特殊字符时需转义 Enter password for user root: # 设置新密码,密码太简单会提示错误:Your password does not satisfy the current policy requirements New password # 是否确认修改root密码 Change the password for root # 是否删除匿名用户 Remove anonymous users # 是否禁止root远程登录 Disallow root login remotely # 是否删除test数据库 Remove test database and access to it # 是否现在刷新权限 Reload privilege tables now 设置简单密码 # 查看密码策略 SHOW VARIABLES LIKE 'validate_password%' ; # 修改密码策略,修改密码检查强度和密码长度就可以 set global validate_password_policy=0; set global validate_password_length=4; # 修改当前用户密码 ALTER USER USER() IDENTIFIED BY '123456' ; # 修改指定用户密码 ALTER user 'root' @ 'localhost' IDENTIFIED BY '123456' ;重新加载特权表flush privileges;使用新密码登录在忘记密码的情况下重置密码 # 编辑配置文件 vim /etc/my .cnf # 文件最后添加免密登陆 skip-grant-tables # 重启 mysql 服务 systemctl restart mysqld.service # 登陆 mysql,不用密码 mysql -uroot |
六、配置nginx
配置nginx,把php脚本请求转发到php-fpm。
nginx的配置文件位于/etc/nginx/文件夹下面,nginx会读取conf.d下面的
nginx的配置文件位于/etc/nginx/文件夹下面,nginx会读取conf.d下面的
*.conf
文件作为用户配置覆盖默认配置文件。这里简单配置了将php脚本请求转发到了php-fpm默认监听的127.0.0.1:9000,更多配置可参考nginx官方文档。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html ; index index.php index.html; location ~ \.php(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; } # Load configuration files for the default server block. include /etc/nginx/default .d/*.conf; error_page 404 /404 .html; location = /404 .html { } error_page 500 502 503 504 /50x .html; location = /50x .html { } } |
在/usr/share/nginx/html
目录下面新建phpinfo.php文件,之后在在浏览器中访问http://192.168.200.20/phpinfo.php
1 | [root@server01 ~] # cat /usr/share/nginx/html/phpinfo.php<br><?php<br>phpinfo();<br>?><br> |
******************************我也想难过的时候到海边走走,可是我的城市没有海。******************************
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY