Rocky Linux 配置 LNMP
LNMP
要点:
- Nginx配置SSL证书
- Nginx用户目录权限
- Nginx域名重定向
- Nginx强制SSL
- PHP用户统一
- PHP监听地址
- 数据库创建
- TYPECHO 小优化
- phpMyAdmin
目录:
[TOC]
服务器:
Rocky Linux
Linux aaa 4.18.0-372.9.1.el8.x86_64 #1 SMP Tue May 10 14:48:47 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Rocky Linux 配置 PHP 环境_rocky安装php-CSDN博客
一、准备
1.更新软件包
yum update -y
yum install -y nano
2.安装EPEL存储库:
sudo yum install epel-release
3.关闭防火墙
用阿里云自带的防火墙就足够
systemctl stop firewalld
systemctl disable firewalld
4.关闭SELINUX
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
二、安装Nginx
(一)安装Nginx
1.安装Nginx:
dnf install -y nginx
2.启动Nginx服务:
sudo systemctl start nginx
3.设置Nginx服务自启动:
sudo systemctl enable nginx
4.验证Nginx是否运行:
sudo systemctl status nginx
(二)配置Nginx
0.上传SSL证书
mkdir /www
mkdir /www/wwwroot/
mkdir /www/wwwroot/example_typecho
"/www/wwwroot/ssl_cert/example.cn.key"
"/www/wwwroot/ssl_cert/example.cn_bundle.pem"
1.给网站根目录权限
Nginx默认会创建个用户nginx
,先创建网站根目录,并需要给权限
sudo chown nginx:nginx -R /www/wwwroot
sudo chmod -R 775 /www/wwwroot
sudo chown -R nginx:nginx /var/lib/php
sudo chmod -R 755 /var/lib/php
sudo chown -R nginx:nginx /etc/nginx
sudo chmod -R 755 /etc/nginx
设置自动给权限
crontab -e
* * * * * chmod -R 755 /www/wwwroot
* * * * * chown -R nginx:nginx /www/wwwroot
2.修改默认配置
nano /etc/nginx/nginx.conf
找到http
这个参数
- 首先在
http
里面添加开启gzip
gzip on;
gzip_static on;
gzip_min_length 5k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 7;
gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php;
gzip_vary on;
- 然后修改http里的默认
server
(这是开启了ssl的)
# SSL 配置
ssl_session_timeout 5m; # 缓存有效期
ssl_prefer_server_ciphers on; # 使用服务器端的首选算法
ssl_protocols TLSV1 TLSv1.1 TLSv1.2 TLSv1.3; # 安全链接可选的加密协议
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 加密算法
# 泛域名 80 重定向
server {
listen 80;
server_name example.cn *.example.cn;
location ~ /\.well-known {
allow all;
}
return 301 https://$host$request_uri;
}
# 443 example.cn www.example.cn
server {
listen 443 ssl http2;
server_name example.cn www.example.cn;
root /www/wwwroot/example_typecho/;
index index.php index.html;
ssl_certificate "/www/wwwroot/ssl_cert/example.cn_bundle.pem";
ssl_certificate_key "/www/wwwroot/ssl_cert/example.cn.key";
# 全站伪静态
# location / {
# try_files $uri $uri/ /index.php?$args;
# }
# php处理
location ~ .*\.php(\/.*)*$ {
try_files $uri $uri/ /index.php?$args; # 伪静态
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# 静态资源缓存配置
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico|js|css)$ {
expires 30d;
access_log off;
}
# 禁止下载的文件
location ~ ^/(\.user.ini|\.ht|\.git|\.svn|\.project|LICENSE|README.md) {
deny all;
}
}
# 泛域名 443 重定向
server {
listen 443 ssl http2;
server_name *.example.cn;
ssl_certificate "/www/wwwroot/ssl_cert/example.cn_bundle.pem";
ssl_certificate_key "/www/wwwroot/ssl_cert/example.cn.key";
location / {
# 可以根据需要添加额外的配置,或者将 *.example.cn 的请求指向特定目录
return 301 https://www.example.cn$request_uri;
}
}
3.重启Nginx
nginx -t -c /etc/nginx/nginx.conf
nginx -s reload
systemctl restart nginx
# 查看日志是否有错
sudo tail -f /var/log/nginx/error.log
4.注:如果网页访问失败,可以看log
sudo tail -f /var/log/nginx/error.log
三、PHP
(一)安装PHP
1.删除已有(可选)
# 删除已有(可选)
sudo dnf -y remove php php-fpm
# 删除相关扩展包
sudo dnf -y remove php*
# 重置 PHP 模块列表
sudo dnf -y module list reset php
2.查看可安装版本
sudo dnf module list php
[root@iZwz97q0bkkvyjbpvytc3mZ example_typecho]# sudo dnf module list php
Last metadata expiration check: 2:10:19 ago on Mon 22 Jan 2024 03:11:32 PM CST.
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
php 8.0 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
3.安装上面的8.0版本
sudo dnf -y module enable php:8.0
sudo dnf -y install php
sudo dnf -y install php php-fpm
4.安装常用PHP拓展
sudo dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-json php-readline php-mbstring php-apcu php-xml php-dom
sudo dnf -y install php-devel
(二)修改php-fpm
配置
1.修改配置文件
为了让文件权限和php-fpm
、nginx
权限统一
nano /etc/php-fpm.d/www.conf
把user = apache和group = apache 改成 nginx
# 把user = apache和group = apache 改成 nginx
user = nginx
group = nginx
# 把listen改成127.0.0.1:9000
listen = 127.0.0.1:9000
2.重新启动 PHP-FPM
# 启动php-fpm 访问
systemctl restart php-fpm
3.查看PHP-FPM监听地址
cat /etc/php-fpm.d/www.conf | grep "listen ="
输出:listen = /run/php-fpm/www.sock
或 listen = 127.0.0.1:9000
根据监听地址修改Nginx的配置:
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_pass 127.0.0.1:9000;
四、MySQL(MariaDB)
(一)安装 MySQL(MariaDB):
打开终端并使用
sudo
权限执行以下命令:sudo dnf install mariadb-server sudo systemctl enable mariadb sudo systemctl start mariadb sudo systemctl status mariadb # 或 sudo dnf install mysql-server sudo systemctl enable mysqld sudo systemctl start mysqld sudo systemctl status mysqld
初始化配置:
sudo mysql_secure_installation
(二)创建用户与数据库
创建example_typecho
用户,并创建允许该用户修改的example_typecho
数据库
mysql -u root -p
CREATE DATABASE example_typecho;
CREATE USER 'example_typecho'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON example_typecho.* TO 'example_typecho'@'%';
EXIT;
五、Typecho
Ubuntu系列:ubuntu手动搭建typecho博客(包括404解决、菜单高亮)以及 Nginx使用stream模块分流实现端口复用_stream 端口复用-CSDN博客
开启了SSL后需要在typecho
根目录下,编辑config.inc.php
文件,加上这句代码:
define('__TYPECHO_SECURE__',true);
然后Nginx开启伪静态,在设置开启链接重新功能
六、phpMyAdmin
如何在Rocky Linux上安装和使用phpMyAdmin(真正程序员是不使用服务器运维面板的) - 桑鸟网 (sangniao.com)
注意:
对于 Rocky Linux,PHPMyAdmin 软件包尚未在操作系统软件仓库中提供,因此我们需要从 PHPMyAdmin 官方网站下载,在撰写本文时,我们使用的是最新的稳定版(5.2.0)。
www.phpmyadmin.net/downloads/. 您可以使用以下命令直接将文件下载到/tmp
目录中。
sudo wget -P /tmp https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
现在从/tmp
目录下解压下载的 tar.gz 文件。
cd /tmp
sudo tar -xvf phpMyAdmin-latest-all-languages.tar.gz
现在应将解压缩后的phpMyAdmin-5.2.1-all-languages目录重命名并移至/usr/share/phpmyadmin
。
sudo mv phpMyAdmin-5.2.1-all-languages /usr/share/phpmyadmin
注意:
为了让 PHPMyAdmin 能够识别该文件,我们现在需要为其创建一个自定义配置文件。默认情况下,PHPMyAdmin 没有配置文件。
phpMyAdmin 的示例配置文件位于 phpMyAdmin 目录中。它位于
/usr/share/phpmyadmin
目录中。重命名文件是可能的,但最好保留一份原始副本的备份,以防出现任何问题,然后可以简单地恢复或重新创建。可以使用以下命令将样本内容复制到新的主配置中。
cd /usr/share/phpmyadmin
sudo cp config.sample.inc.php config.inc.php
注意
作为
config.inc.php
文件的一部分,我们需要生成一个 32 位秘密字符串,以便为 Blowfish Cipher Chain 赋值。我们需要在编辑文件前生成该值。以下命令将为我们生成密钥:openssl rand。该程序将使用加密安全伪随机数生成器 (CSPRNG) 生成随机字节。
openssl rand -base64 32
输出: HI5pF3ZRaYSlKp3/S3lDmreVBH97V4LhdMPywrZreo4=
现在,打开config.inc.php
,在配置文件中输入blowfish_secret
字符串和临时目录路径。其余的默认设置对大多数情况下都没有问题。如果你需要调整更多,可以根据自己的要求来做。
sudo nano /usr/share/phpmyadmin/config.inc.php
注意
您需要将上述生成的密钥添加到配置文件的以下一行。请不要使用我生成的密钥,它只是一个示例。您还应在从服务器保存/加载文件的目录部分添加TempDir
路径。
$cfg['blowfish_secret'] = ''; // 您必须填写此信息以进行 cookie 验证!
$cfg['TempDir'] = '/tmp';
注意:
如果未声明上述临时目录,可能会导致错误并阻止访问 phpMyAdmin。
sudo mkdir /usr/share/phpmyadmin/tmp
sudo chown -R nginx:nginx /www/wwwroot
sudo chmod -R 775 /usr/share/phpmyadmin
在Ngnix添加配置:
nano /etc/nginx/nginx.conf
# phpMyAdmin
server {
listen 888;
server_name phpMyAdmin;
root /usr/share/phpmyadmin/;
index index.php;
location ~ .*\.php(\/.*)*$ {
root /usr/share/phpmyadmin/;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
nginx -t -c /etc/nginx/nginx.conf
nginx -s reload
systemctl restart nginx
本文系作者 @ATRAY 原创发布在ATRAY站点。未经许可,禁止转载。
暂无评论数据