Centos7.9 LNMP 环境安装

前置操作

查看安全组配置, 防火墙配置, SELinux 配置

新建用户

adduser air # 添加用户 air
passwd air # 设置密码

# 授权sudo权限
chmod -v u+w /etc/sudoers # 把 sudoers 文件增加写权限

vim /etc/sudoers # 编辑 sudoers 文件
air ALL=(ALL) ALL

chmod -v u-w /etc/sudoers # 收回写权限

安装 Nginx

yum install nginx

vim nginx.conf
# 修改配置文件
server {
        listen       80;
        server_name  localhost;
        index index.php index.html;

        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }

         location ~ .php$ {
            root /data/TestApi/public/;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;

            access_log /var/log/nginx/test-api-access.log;
            error_log /var/log/nginx/test-api-error.log;
        }
    }

    vim /etc/nginx/fastcgi_params
    # 增加
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

安装 Mysql

待完成

安装 Redis

yum install epel-release
yum install redis

# 修改 redis 配置
vim /etc/redis.conf
# bind 127.0.0.1 ::1 # 添加注释 允许远程访问
daemonize yes # 由 no 改为 yes 允许后台运行
requirepass 密码 # 打开注释 添加访问密码

安装 PHP7.4

sudo yum install epel-release
sudo rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install yum-utils
sudo yum-config-manager --enable remi-php74
sudo yum install php php-cli php-common php-fpm
php -v # 查看版本

安装 Composer

php -r "readfile('https://getcomposer.org/installer');" | php
mv composer.phar /usr/bin/composer
composer -v
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

安装 PHP 扩展

yum install php-bcmath php-mysqli php-pdo php-redis php-dom php-mbstring php-xml php-zip

优化 PHP-FPM

vim /etc/php.ini
# 修改
cgi.fix_pathinfo=0

vim /etc/php-fpm.conf
# 修改
emergency_restart_threshold = 10
emergency_restart_interval = 1m
process_control_timeout = 10s

vim /etc/php-fpm.d/www.conf
# 修改
pm = static
pm.max_children = 100
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.max_requests = 500
slowlog = /var/log/php-fpm-slow.log
request_slowlog_timeout = 5s

启动服务 设置开机启动

# 查看服务状态
systemctl status nginx
# 启动服务
systemctl start nginx
# 重启服务
systemctl restart nginx
# 停止服务
systemctl stop nginx
# 开机启动
systemctl enable nginx
# 查看开机启动状态
systemctl is-enabled nginx
# nginx, php-fpm, mysql, redis/redis-server

安装 Laravel 队列 进程监控器 Supervisor

sudo yum install python-setuptools
sudo easy_install supervisor
sudo echo_supervisord_conf > /etc/supervisord.conf
sudo mkdir /etc/supervisord.d

vim /etc/supervisord.conf
# 修改
loglevel=warn
[include] # 去掉注释
files = supervisord.d/*.ini # 去掉注释

vim /etc/supervisord.d/test.ini
# 新建
[program:laravel-test]
process_name=%(program_name)s_%(process_num)02d
command=php /data/test/artisan queue:work redis --sleep=60 --tries=2 --max-time=3600
autostart=true
autorestart=true
user=root
numprocs=8
redirect_stderr=true
stdout_logfile=/var/log/supervisor/laravel-test-access.log
stderr_logfile=/var/log/supervisor/laravel-test-error.log

# 启动 supervisor
sudo supervisord -c /etc/supervisord.conf
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-test:* # 或 sudo supervisorctl start all

配置服务器定时任务 执行任务队列

# crontab -e -u apache (设置用户为 apache, 否则以 root 用户执行会出现日志权限问题)
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 6

alma / rocky 8/9 他不香吗

10个月前 评论
AIR (楼主) 10个月前

Centos竟然有17.9的版本了?

10个月前 评论
AIR (楼主) 9个月前

建议用alma或者rocky,一样的;centos没有17.9,应该是7.9

9个月前 评论
AIR (楼主) 9个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!