Nginx

群晖 Nginx

位置在: /usr/local/etc/nginx/sites-available (最新编辑的一个) 里面相应 server 的 include user.conf 位置。

Nginx 配置

Nginx配置示例


root的处理结果是:root路径 + location路径 alias的处理结果是:使用alias路径替换location路径

Location 匹配

location / 默认规则,未匹配到其它规则时生效。

= 精确匹配,搜索终止。
~ 区分大小写正则
~* 不区分大小写正则
^~ 普通匹配,搜索终止。

优先级

location ^~ /a1/b1 { # A }
location ^~ /a1 { # B }
location /a2/b2 { # C }
location /a2 { # D }

/a1/b1/c1 匹配 A /a2/b2/c2 匹配 D

rewrite

~ 为区分大小写匹配 ~* 为不区分大小写匹配 !~ 分别为区分大小写不匹配 !~* 不区分大小写不匹配

server 模块下,会优先执行 rewrite 部分。

pathinfo

关闭默认站点

server {
    listen 80 default;
    
    # 返回错误
    return 500;
    
    # 导流到其他网站
    rewrite ^(.*) http://jb51.net permanent;

    # 禁止IP访问

    server_name _;
    return 500;
}

强制https

  1. 在监听80端口的server配置中跳转到https

    server { listen 80; server_name domain.com; rewrite ^(.*)$ https://$host$1 permanent; }

  2. 使用497状态码

server {
    # ...
    if ($server_port = 80) {
        return 497;
    }
    
    error_page 497 https://$host$request_uri;
}


CentOS 安装 Nginx + PHP + MySQL + MariaDB

安装 Nginx

sudo yum install nginx

# 配置位置
/etc/nginx/nginx.conf

安装 PHP

  1. 解压

    tar zxf php-x.x.x.tar.gz cd php-x.x.x

  2. 配置

# 简单配置
./configure --enable-fpm --with-mysql

# 常用配置
./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip

# Magento Open Source 配置

# 扩展所需的一些前置依赖
yum install openssl-devel # 安装之后 /usr/lib64/pkgconfig 目录就有 openssl.pc
yum install libxml2-devel sqlite-devel libcurl libcurlyum-devel libpng-devel libicu-devel gcc gcc-c++ oniguruma libsodium-devel libxslt-devel libzip-devel
dnf --enablerepo=powertools install oniguruma-devel

./configure --prefix=/usr/local/php --enable-bcmath --with-curl --enable-gd --enable-intl --enable-mbstring --with-mysqli --with-openssl --with-pdo-mysql --enable-soap --enable-sockets --with-sodium --with-xsl --with-zip --enable-fpm
  1. 编译安装
make
sudo make install
  1. 配置
cp php.ini-development /usr/local/php/php.ini
cp sapi/fpm/php-fpm /usr/local/bin

cd /usr/local/etc
# 或者,很可能是
cd /usr/local/php/etc

cp php-fpm.d/www.conf.default php-fpm.d/www.conf
cp php-fpm.conf.default php-fpm.conf
vi php-fpm.conf

# 腾讯云未配置如下信息

# include=NONE/etc/php-fpm.d/*.conf
# 改为
# include=etc/php-fpm.d/*.conf

vi /usr/local/php/php.ini
cgi.fix_pathinfo=0

# vi /usr/local/etc/php-fpm.d/www.conf
# user = www-data
# group = www-data
  1. 启动
/usr/local/bin/php-fpm

重启 https://www.cnblogs.com/gazeon/p/5421906.html

Nginx支持PHP

location ~* .php$ {
    fastcgi_index index.php;
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}

安装 MySQL

官方文档 中文帮助

Composer

https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos

MariaDB(未整理)

cd /etc/yum.repos.d 
vi MariaDB.repo



# MariaDB 10.5 [Stable] CentOS repository list - created 2020-09-02 14:13 UTC
# https://mariadb.org/download-test/
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.5/centos8-amd64
module_hotfixes=1
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1



dnf install MariaDB-server
systemctl start mariadb

其它: get http://mirrors.aliyun.com/repo/Centos-7.repo /etc/yum.repos.d/ yum install MariaDB-server MariaDB-client ##安装mariadb服务器端、客户端## vim /etc/my.cnf.d/server.cnf ##mariadb服务器端配置文件## [mysqld] ##以下项是优化项目可根据需要选择## innodb_file_per_table=ON ##使用独立表空间模式(建议使用)## skip_name_resolve=ON ##禁止域名反向解析(可选)## systemctl start mariadb.service ##启动mariadb服务 systemctl enable mariadb.service ##设置为开机启动## mysql_secure_installation ##安装完成后安全初始化,添加root密码,删除匿名登录账户,禁止远程使用root用户登录,删除测试数据库和使用##mysql –uroot –hlocalhost –p’PASSWORD ##登陆数据库##’

阿里云

初始化

阿里云安全组允许22、21、3306端口

启动网络(如果必要)

systemctl start network

防火墙设置

启用ssh

systemctl start sshd

挂载磁盘

  1. 查看有哪些磁盘:fdisk -l

  2. 挂载:mount /dev/xvdb1 /mnt

  3. 开机自动挂载:vi /etc/fstab

    /dev/vdb1 /storage ext3 defaults 1 2

LNMP一键安装

  • https://lnmp.org/install.html

Nginx 配置

cd /usr/local/nginx/conf/vhost/*.conf

MySQL 配置

cd /etc/my.cnf

datadir = /mnt/mysql
# 如果有必要,记得修改 mysql 文件夹权限 chown mysql:mysql -R ./*

PHP 配置

启用 PHP 错误信息只需要修改 php.ini,重启 lnmp php-fpm restart

cd /usr/local/php/etc/php.ini

添加 PHP 模块

# 查看已安装模块
/usr/local/php/bin/php -m

LNMP 1.4上如果不想用防跨目录

vi /usr/local/nginx/conf/fastcgi.conf

# 删除

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

# 需要重启nginx。

# 注意删除其他虚拟主机下面错误的 .user.ini

wordpress 主题需要在 php.ini 允许 scandir() 函数

安装pureftpd

~/lnmp1.4/pureftpd.sh

https://lnmp.org/faq/ftpserver.html

lnmp ftp add
lnmp pureftpd start

其他

421: https://www.kkpan.com/article/3160.html

[26-Oct-2018 02:19:43] NOTICE: [pool www] ‘user’ directive is ignored when FPM is not running as root [26-Oct-2018 02:19:43] NOTICE: [pool www] ‘group’ directive is ignored when FPM is not running as root

查找到 www.conf 把 user = _www 注视前面加 ; eg ; user = _www 把 group = _www 注视前面加 ; eg ; group = _www

我的文件目录在: /usr/local/etc/php/7.2/php-fpm.d/www.conf

1、查看php-fpm是否开启 ps -ef|grep php

2、查看php-fpm的位置 whereis php-fpm

3、开启php-fpm /usr/local/bin/php-fpm

4、再次输入命令 ps -ef|grep php,查看是否已经开启

查看php-fpm进程数 ps aux | grep -c php-fpm

重启php-fpm /etc/init.d/php-fpm restart

php-fpm 关闭:

kill -INT cat /var/run/php-fpm/php-fpm.pid php-fpm 重启:

kill -USR2 cat /var/run/php-fpm/php-fpm.pid

更新时间:2025-04-10 17:49:22