前言
有人问我不使用宝塔怎么部署博客系统,因为这个部署还是很麻烦的,所以我这里就单独写个文章吧,顺便自己也可以熟悉一下Nginx指令的编写
Nginx和PHP
Nginx安装
到官网 Install | NGINX 下载
vim /etc/yum.repos.d/nginx.repo
# 里面换成下面这个
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
# 然后安装一下
yum install nginx
# 开启Nginx服务器
sudo systemctl start nginx
# 修改配置文件
vim /etc/nginx/conf.d/default.conf
修改配置文件
可以使用下面的命令来重启Nginx
sudo systemctl restart nginx
我们也可以通过修改一下location这个来修改一下我们默认的存储路径
可以查看一下Nginx版本
可以修改一下Nginx的权限 vim /etc/nginx/conf.d/default.conf
PHP安装
PHP安装可以使用下面的命令
sudo clean all
sudo yum update
sudo yum install yum-utils
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --disable 'remi-php*'
sudo yum-config-manager --enable remi-php80
sudo yum update
sudo yum install php
php -v
还需安装php-fpm yum install php-fpm
设置自启动 systemctl enable --now php-fpm
然后我们修改一下php-fpm的监听方式,因为默认是监听ip地址的,使用UNIX Domain Socket会更快一些
vim /etc/php-fpm.d/www.conf
Nginx支持PHP
下面我们就可以配置一下PHP,继续修改配置文件,首先我们先看一下Nginx的用户组
cat /etc/nginx/nginx.conf
默认是Nginx,当然你也可以自己替换
然后我们修改一下 /var/run/php-fpm
的用户组,让Nginx也可以访问(如果设置了root身份就不需要了)
chown nginx:nginx /var/run/php-fpm.sock
然后修改一下Nginx配置文件,让它代理php
vim /etc/nginx/conf.d/default.conf
# 加入下面这段代码,里面的root需要根据自己的要求来修改
location ~ \.php$ {
root /usr/share/nginx/blog;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 重载Nginx服务
nginx -s reload
自己在Nginx根目录新建一个文件,里面的代码如下
然后自己刷新一下Nginx,就可以发现php已经可以支持了
mongodb安装
参考这个: Install MongoDB Community Edition on Red Hat or CentOS — MongoDB Manual
这里我就不写了,参考官方文档安装即可,然后自己修改一下配置文件
vim /etc/mongod.conf
如果自己想本地调试可以把这个改一下,不过如果是是服务器不建议改,要不然别人可以进入你的数据库
启动MongoDB命令
sudo systemctl start mongod
可以自己使用navicate连接MongoDB
博客系统安装
后端部署
对于go来说,我们可以使用交叉编译来进行编译
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
然后我们需要复制一下下面这几个文件,然后上传到服务器
自己上传到服务器,然后解压
我们使用下面的命令启动博客系统
./main
如果想后台启动
./main install
./main start
前端部署
然后我们再上传PHP,把所有文件打包上传就可以了,自己修改一下index.php
, 上面这个改成自己的
然后我们配置一下伪静态 vim /etc/nginx/conf.d/default.conf
把这个加进去,自己记得吧默认的 location /
删了,要不然会无法重启,Nginx重载配置 nginx -s reload
underscores_in_headers on;
location /{
try_files $uri $uri/ /index.php?$args;
}
location /admin{
try_files $uri $uri/ /admin/index.html?$args;
}
location ~^/(api|assets|upload|plugins){
proxy_pass http://127.0.0.1:2333;
proxy_set_header X-Real-IP $remote_addr;
add_header Cache-Control no-cache;
}
location /ws{
proxy_pass http://127.0.0.1:2333;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
}
还有必须要自己再指定一下根目录,要不然会无法识别,还有记得把index也打开
然后再访问就应该没问题了
其他
PHP打印错误日志
修改一下php.ini
文件(vim /etc/php.ini
),把下面这个打开
然后重启一下php-fpm
查看Nginx错误日志
tail -f /var/log/nginx/error.log
出现了[crit] 35894#35894: *28 connect() to 127.0.0.1:2333 failed (13: Permission denied) 这个错误。。
这个好像是被Linux拦截了。。。(设置SELinux 成为permissive模式)
setenforce 0
参考文章
Install MongoDB Community Edition on Red Hat or CentOS — MongoDB Manual
(8条消息) CentOS8搭建Web服务器笔记1 Nginx+Php8基础环境_老富的博客-CSDN博客_nginx php8
如何在Ubuntu 20.04上安装PHP 8 - Linux迷 (linuxmi.com)