安装Apache和Mysql
配置Apache
a2enmod proxy proxy_http proxy_html rewrite
启用apache模块,但是centos8下是没有这个命令的a2enmod
这就很尴尬了,我linux学的不是很好,各种翻档案.....
目录结构
apache rewrite mod的文档
如何在centos8中添加模块
在 /etc/httpd/conf/httpd.conf 中添加一行
LoadModule rewrite_module modules/mod_rewrite.so
保存
在 <Directory /var/www/html>这一节修改Allowoverride 的值改成All,允许.htaccess所有指令
我们通常利用Apache的rewrite模块对URL进行重写,rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。
同样的方法来安装proxy_html 和 proxy
echo 'LoadModule proxy_http_module modules/mod_proxy_http.so' >> /etc/httpd/conf/httpd.conf
echo 'LoadModule proxy_http_module modules/mod_proxy.so' >> /etc/httpd/conf/httpd.conf
但是proxy_html是一个第三方的模块,只能手动下载
yum install mod_proxy_html
echo 'LoadModule proxy_html_module modules/mod_proxy_html.so' >> /etc/httpd/conf/httpd.conf
安装完成,重启apache服务
service httpd restart
接下来创建虚拟主机
创建虚拟主机文件
sudo nano /etc/httpd/conf.d/reactivities.conf
写入如下内容
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ErrorLog /var/log/httpd/reactivities-error.log
CustomLog /var/log/httpd/reactivities-access.log common
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule /(.*) ws://127.0.0.1:5000/$1 [P]
</VirtualHost>
启用站点
使用vsCode的Deploy(reloaded)插件通过sftp上传本地的虚拟机
image.png在.vscode文件夹中添加settings.json文件配置
dotnet publish -c Release -o publish --self-contained false Reactivities.sln
生成发布文件夹
在服务器(虚拟机)中查看文件是否上传成功
image.png
似乎上传到了单独的publish文件夹里面,暂时没找到解决方案
创建service文件
sudo nano /etc/systemd/system/kestrel-web.service
写入如下内容
image.png
注意 " : "要用双下划线代替
完成后启用kestrel服务
sudo systemctl enable kestrel-web.service
确认状态
sudo systemctl status kestrel-web.service
报错
报错了,赶紧google下
更换一下路径
/usr/local/bin/dotnet 换成 /usr/bin/dotnet
重新启动
报错 '
修改user为root
仍然报错
找了半天,终于发现原来是路径错了,应该是 /var/www/html/reactivities/publish
这个故事告诉我们新手还是不要用最新版本的centos,还是按照官方的文档使用centos7或者unbantu好一点,不然很容易在这种简单的问题上浪费大量时间
image.png
网友评论