RHEL 8 เดฌเตเดฑเตเดฑ เดกเตเดตเดฒเดชเตเดชเตผเดฎเดพเตผเดเตเดเต เดจเดฟเดฐเดตเดงเดฟ เดชเตเดคเดฟเดฏ เดซเตเดเตเดเดฑเตเดเตพ เดตเดพเดเตเดฆเดพเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเต, เดเดตเดฏเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเดฟเดเดเต เดชเตเดเตเดเตพ เดเดเตเดเตเดเดพเด, เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดชเตเดคเดฟเดฏ เดเดพเดฐเตเดฏเดเตเดเตพ เดชเด เดฟเดเตเดเตเดจเตเดจเดคเต เดชเตเดฐเดพเดฏเตเดเดฟเดเดฎเดพเดฏเดฟ เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดฎเดฟเดเดเตเดเดคเดพเดฃเต, เด เดคเดฟเดจเดพเตฝ Red Hat Enterprise Linux 8 เดฌเตเดฑเตเดฑเดฏเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดเดฐเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเตปเดซเตเดฐเดพเดธเตเดเตเดฐเดเตเดเตผ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดตเตผเดเตเดเตเดทเตเดชเตเดชเต เดเดเตเดเตพ เดเตเดตเดเต เดจเตฝเดเตเดจเตเดจเต.
เดกเตเดตเดฒเดชเตเดชเตผเดฎเดพเตผเดเตเดเดฟเดเดฏเดฟเตฝ เดเดฐเต เดเดจเดชเตเดฐเดฟเดฏ เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดเดเต เดญเดพเดทเดฏเดพเดฏ เดชเตเดคเตเดคเตบ เดเดฐเต เด
เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดฏเดฟ เดเดเตเดเตเดเดพเด, เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดตเดณเดฐเต เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏ เดธเดเดฏเตเดเดจเดฎเดพเดฏ เดเดพเดเตเดเตเดฏเตเดเตเดฏเตเด PostgreSQL-เดจเตเดฑเตเดฏเตเด เดธเดเดฏเตเดเดจเด, เดเตเดเดพเดคเต เด
เดตเดฐเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป RHEL 8 เดฌเตเดฑเตเดฑ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเด. เดคเตเดเตผเดจเตเดจเต เดเดเตเดเตพ เดเตเดฑเดเตเดเต เดเตเดเดฟ (เดตเตผเดเตเดเตเดเดฐเดฟเดเตเดเดพเดคเตเดค) เดเตเดฐเตเดตเดเตพ เดเตเตผเดเตเดเตเด.
เดเตเดธเตเดฑเตเดฑเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟ เดฎเดพเดฑเตเด, เดเดพเดฐเดฃเด เดเดเตเดเตเดฎเตเดทเดจเตเดฑเต เดธเดพเดงเตเดฏเดคเดเตพ เดชเดฐเตเดฏเดตเตเดเตเดทเดฃเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดฐเดธเดเดฐเดฎเดพเดฃเต, เดเดฃเตเดเตเดฏเตเดจเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเด, เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดธเตเตผเดตเดฑเตเดเดณเตเดณเตเดณ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเตพ เดชเดฐเตเดเตเดทเดฟเดเตเดเตเด. เดเดฐเต เดชเตเดคเดฟเดฏ เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดเตเดฃเตเดเต เดเตเดฑเตเดคเตเด เดฒเดณเดฟเดคเดตเตเดฎเดพเดฏ เดเดฐเต เดชเตเดฐเตเดเตเดเตเดเตเดชเตเดชเต เดธเตเดทเตเดเดฟเดเตเดเตเดเตเดฃเตเดเต เดเดฐเดเดญเดฟเดเตเดเดพเด, เด
เดคเดฟเดฒเตเดเต เดเดจเตเดคเดพเดฃเต เดธเดเดญเดตเดฟเดเตเดเตเดฃเตเดเดคเตเดจเตเดจเตเด เด
เดคเต เดเดเตเดเดจเต เดเดเดชเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเตเด เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดเดพเดฃเดพเดจเดพเดเตเด, เดคเตเดเตผเดจเตเดจเต เดเดเตเดเตเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเดจเตเด เดเตเดเตเดคเตฝ เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด. เด
เดคเตเดคเดฐเดฎเตเดฐเต เดชเตเดฐเตเดเตเดเตเดเตเดชเตเดชเดฟเดจเตเดฑเต เดธเตเดทเตเดเดฟเดฏเตเดเตเดเตเดฑเดฟเดเตเดเดพเดฃเต เดเดจเตเดจเต เดจเดฎเตเดฎเตพ เดธเดเดธเดพเดฐเดฟเดเตเดเตเดจเตเดจเดคเต.
RHEL 8 เดฌเตเดฑเตเดฑ VM เดเดฎเตเดเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดเตเดฃเตเดเต เดจเดฎเตเดเตเดเต เดเดฐเดเดญเดฟเดเตเดเดพเด. เดจเดฟเดเตเดเตพเดเตเดเต เดเดฆเตเดฏเด เดฎเตเดคเตฝ เดเดฐเต เดตเตเตผเดเตเดตเตฝ เดฎเตเดทเตเตป เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเด, เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดจเดฟเดเตเดเดณเตเดเต เดฌเตเดฑเตเดฑ เดธเดฌเตโเดธเตโเดเตเดฐเดฟเดชเตโเดทเดจเดฟเตฝ เดฒเดญเตเดฏเดฎเดพเดฏ เดเตเดตเดฟเดเด เดเดธเตเดฑเตเดฑเต เดเดฎเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเด. เดเดฐเต เดเดธเตเดฑเตเดฑเต เดเดฎเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดเตเดฒเตเดกเต เดเดจเตเดทเตเดฏเดฒเตเดธเตเดทเดจเดพเดฏเดฟ (Cloud-init) เดฎเตเดฑเตเดฑเดพเดกเดพเดฑเตเดฑเดฏเตเด เดเดชเดฏเตเดเตเดคเต เดกเดพเดฑเตเดฑเดฏเตเด เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดตเตเตผเดเตเดตเตฝ เดธเดฟเดกเดฟ เดจเดฟเดเตเดเตพ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต. เดกเดฟเดธเตเดเต เดเดเดจเดฏเต เดฒเดญเตเดฏเดฎเดพเดฏ เดชเดพเดเตเดเตเดเตเดเดณเต เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพ เดชเตเดฐเดคเตเดฏเตเดเดฎเดพเดฏเดฟ เดเดจเตเดจเตเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเดฟเดฒเตเดฒ; เดเดคเต เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเด เดเตเดฏเตเดฏเตเด.
เดฎเตเดดเตเดตเตป เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเตเด เดจเดฎเตเดเตเดเต เดธเตเดเตเดทเตเดฎเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด.
เดเดพเดเตเดเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเต
เดเดพเดเดเตเดฏเตเดเต เดเดฑเตเดฑเดตเตเด เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดชเตเดคเตเดคเตบ 3.5 เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เด เดคเดฟเดจเต เดถเตเดทเดฎเตเดณเตเดณ เดเดฐเต เดตเตเตผเดเตเดตเตฝ เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต (virtualenv) เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดฌเตเดฑเตเดฑ เดเตเดฑเดฟเดชเตเดชเตเดเดณเดฟเตฝ, เดชเตเดคเตเดคเตบ 3.6 เดฒเดญเตเดฏเดฎเดพเดฃเตเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเตป เดเดดเดฟเดฏเตเด, เดเดคเต เดถเดฐเดฟเดเตเดเตเด เด เดเตเดเดจเตเดฏเดพเดฃเต เดเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด:
[cloud-user@8beta1 ~]$ python
-bash: python: command not found
[cloud-user@8beta1 ~]$ python3
-bash: python3: command not found
RHEL-เตฝ เดเดฐเต เดธเดฟเดธเตเดฑเตเดฑเด เดเตเตพเดเดฟเดฑเตเดฑเดพเดฏเดฟ Red Hat เดชเตเดคเตเดคเตบ เดธเดเตเดตเดฎเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต, เดเดจเตเดคเตเดเตเดฃเตเดเดพเดฃเต เดเดคเต เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเดคเต?
เดชเดฒ เดชเตเดคเตเดคเตบ เดกเตเดตเดฒเดชเตเดชเตผเดฎเดพเดฐเตเด เดเดชเตเดชเตเดดเตเด เดชเตเดคเตเดคเตบ 2 เตฝ เดจเดฟเดจเตเดจเต เดชเตเดคเตเดคเตบ 2 เดฒเตเดเตเดเต เดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดฒเตเดเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเต เดเดจเตเดจเดคเดพเดฃเต เดตเดธเตเดคเตเดค, เด
เดคเตเดธเดฎเดฏเด เดชเตเดคเตเดคเตบ 3 เดคเดจเตเดจเต เดธเดเตเดตเดฎเดพเดฏ เดตเดฟเดเดธเดจเดคเตเดคเดฟเดฒเดพเดฃเต, เดเตเดเดพเดคเต เดเตเดเตเดคเตฝ เดเตเดเตเดคเตฝ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเดเตพ เดจเดฟเดฐเดจเตเดคเดฐเด เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดจเตเดจเต. เด
เดคเดฟเดจเดพเตฝ, เดชเตเดคเตเดคเดฃเดฟเดจเตเดฑเต เดตเดฟเดตเดฟเดง เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเดเดณเดฟเดฒเตเดเตเดเต เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพเดเตเดเต เดเดเตเดธเดธเต เดจเตฝเดเตเดฎเตเดชเตเตพ เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณ เดธเดฟเดธเตเดฑเตเดฑเด เดเตเดณเตเดเดณเตเดเต เดเดตเดถเตเดฏเดเดค เดจเดฟเดฑเดตเตเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ, เดธเดฟเดธเตเดฑเตเดฑเด เดชเตเดคเตเดคเตบ เดเดฐเต เดชเตเดคเดฟเดฏ เดชเดพเดเตเดเตเดเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเดเดฏเตเด เดชเตเดคเตเดคเตบ 2.7, 3.6 เดเดจเตเดจเดฟเดต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเดจเตเดณเตเดณ เดเดดเดฟเดตเต เดจเตฝเดเตเดเดฏเตเด เดเตเดฏเตเดคเต. เดฎเดพเดฑเตเดฑเดเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเตเด เด
เดต เดเดจเตเดคเตเดเตเดฃเตเดเดพเดฃเต เดตเดฐเตเดคเตเดคเดฟเดฏเดคเตเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเด เดเตเดเตเดคเตฝ เดตเดฟเดตเดฐเดเตเดเตพ เดชเตเดฐเดธเดฟเดฆเตเดงเตเดเดฐเดฃเดคเตเดคเดฟเตฝ เดเดพเดฃเดพเด
เด เดคเดฟเดจเดพเตฝ, เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดชเตเดคเตเดคเตบ เดฒเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ เดฐเดฃเตเดเต เดชเดพเดเตเดเตเดเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดพเตฝ เดฎเดคเดฟ, เดชเตเดคเตเดคเตบ3-เดชเดฟเดชเตเดชเต เดเดฐเต เดกเดฟเดชเตปเดกเตปเดธเดฟเดฏเดพเดฏเดฟ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต.
sudo yum install python36 python3-virtualenv
เดฒเดพเดเดเตโเดกเตบ เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเตเดจเตเดจเดคเตเดชเตเดฒเต เดจเตเดฐเดฟเดเตเดเตเดณเตเดณ เดฎเตเดกเตเดฏเตเตพ เดเตเดณเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดเดฏเตเด pip3 เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเต เดเดจเตเดคเตเดเตเดฃเตเดเต? เดตเดฐเดพเดจเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดเตเดเตเดฎเตเดทเตป เดฎเดจเดธเตเดธเดฟเตฝ เดตเตเดเตเดเตเดเตเดฃเตเดเต, เดเดฐเต เดเดทเตโเดเดพเดจเตเดธเตเดค เดชเตเดชเตเดชเต เดเดเตโเดธเดฟเดเตเดฏเตเดเตเดเดฌเดฟเตพ เดเดณเตเดณ virtualenvs-เดจเต เดชเดฟเดชเตเดชเต เดฎเตเดกเตเดฏเตเตพ เดชเดฟเดจเตเดคเตเดฃเดฏเตโเดเตเดเดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เด เตปเดธเดฟเดฌเดฟเดณเดฟเดจเต เดชเตเดชเตเดชเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดฃเตเดเดคเดพเดฏเดฟ เดตเดฐเตเดฎเตเดจเตเดจเต เด เดฑเดฟเดฏเดพเด.
เดจเดฟเดเตเดเดณเตเดเต เดชเดเตเดเดฒเตเดณเตเดณ เดเดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ python3 เดตเตเดฏเดพเดเตเดฏเดพเดคเดพเดตเต เดเดชเดฏเตเดเดฟเดเตเดเต, เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดเตเดเต เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเตป เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเดฟเตฝ เดคเตเดเดฐเดพเดจเตเด เดเดเตเดเดณเตเดเต เดฎเดฑเตเดฑเต เดเดเดเดเตเดเตพเดเตเดเตเดชเตเดชเด เดเดฐเต เดตเตผเดเตเดเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเด เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด. เดเดจเตเดฑเตผเดจเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตฝ เดเดชเตเดทเดจเตเดเตพ เดฒเดญเตเดฏเดฎเดพเดฃเต. เดเดตเดฟเดเต เดเดฐเต เดชเดคเดฟเดชเตเดชเต เด เดตเดคเดฐเดฟเดชเตเดชเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเต, เดเดจเตเดจเดพเตฝ เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพเดเตเดเต เด เดตเดฐเตเดเต เดธเตเดตเดจเตเดคเด เดชเตเดฐเตเดธเดธเตเดธเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด.
Yum เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ RHEL 8-เตฝ เดฒเดญเตเดฏเดฎเดพเดฏ PostgreSQL, Nginx เดชเดคเดฟเดชเตเดชเตเดเตพ เดเดเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด.
sudo yum install nginx postgresql-server
PostgreSQL-เดจเต psycopg2 เดเดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดฐเตเด, เดชเดเตเดทเต เดเดคเต เดเดฐเต virtualenv เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต เดฒเดญเตเดฏเดฎเดพเดเต, เด เดคเดฟเดจเดพเตฝ Django, Gunicorn เดเดจเตเดจเดฟเดตเดฏเตโเดเตเดเตเดชเตเดชเด pip3 เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเตพ เดเดคเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด. เดเดจเตเดจเดพเตฝ เดเดฆเตเดฏเด เดจเดฎเตเดฎเตพ virtualenv เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต.
เดเดพเดเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดถเดฐเดฟเดฏเดพเดฏ เดธเตเดฅเดฒเด เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเดจเตเดจ เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดงเดพเดฐเดพเดณเด เดเตผเดเตเดเดเตพ เดจเดเดเตเดเตเดจเตเดจเตเดฃเตเดเต, เดเดจเตเดจเดพเตฝ เดธเดเดถเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด Linux เดซเดฏเตฝเดธเดฟเดธเตเดฑเตเดฑเด เดนเตเดฐเดพเตผเดเตเดเดฟ เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเดฟเดฒเตเดเตเดเต เดคเดฟเดฐเดฟเดฏเดพเด. เดชเตเดฐเดคเตเดฏเตเดเดฎเดพเดฏเดฟ, FHS เดชเดฑเดฏเตเดจเตเดจเต: "เดนเตเดธเตเดฑเตเดฑเต-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโเด เดกเดพเดฑเตเดฑ เดธเดเดญเดฐเดฟเดเตเดเดพเตป-เดธเดฟเดธเตเดฑเตเดฑเด เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจ เดกเดพเดฑเตเดฑ, เดตเตเดฌเต เดธเตเตผเดตเตผ เดกเดพเดฑเตเดฑ, เดธเตโเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเตพ, FTP เดธเตเตผเดตเดฑเตเดเดณเดฟเตฝ เดธเดเดญเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดกเดพเดฑเตเดฑ, เดธเดฟเดธเตเดฑเตเดฑเด เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดเตพ เดเดจเตเดจเดฟเดต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเตเด." เดชเดคเดฟเดชเตเดชเตเดเตพ (FHS-เตฝ เดฆเตเดถเตเดฏเดฎเดพเดเตเดจเตเดจเต. -2.3 เตฝ 2004)."
เดเดคเต เดเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดฎเดพเดฃเต, เด เดคเดฟเดจเดพเตฝ เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดฑเต (เดเตเดฒเตเดกเต-เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดฑเต) เดเดเดฎเดธเตเดฅเดคเดฏเดฟเดฒเตเดณเตเดณ / srv-เดฏเดฟเตฝ เดเดเตเดเตพ เดเดตเดถเตเดฏเดฎเตเดณเตเดณเดคเตเดฒเตเดฒเดพเด เดเดเตเดเต.
sudo mkdir /srv/djangoapp
sudo chown cloud-user:cloud-user /srv/djangoapp
cd /srv/djangoapp
virtualenv django
source django/bin/activate
pip3 install django gunicorn psycopg2
./django-admin startproject djangoapp /srv/djangoapp
PostgreSQL, Django เดเดจเตเดจเดฟเดต เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดเดณเตเดชเตเดชเดฎเดพเดฃเต: เดเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดธเตเดทเตโเดเดฟเดเตเดเตเด, เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดธเตเดทเตโเดเดฟเดเตเดเตเด, เด เดจเตเดฎเดคเดฟเดเตพ เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเด. เดเดฆเตเดฏเด PostgreSQL เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเด เดเดฐเต เดเดพเดฐเตเดฏเด postgresql-เดธเตเตผเดตเตผ เดชเดพเดเตเดเตเดเดฟเดจเตเดชเตเดชเด เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดค postgresql-เดธเตเดฑเตเดฑเดชเตเดชเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดพเดฃเต. เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเดจเตเดทเตเดฏเดฒเตเดธเตเดทเตป เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เด เดชเตโเดเตเดฐเตเดกเต เดชเตเดฐเตเดธเดธเตเดธเต เดชเตเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เด เดกเตเดฎเดฟเดจเดฟเดธเตเดเตเดฐเตเดทเดจเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเด เด เดเดฟเดธเตเดฅเดพเดจ เดเตเดฒเดฟเดเตพ เดเตเดฏเตเดฏเดพเตป เด เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดจเดฟเดเตเดเดณเต เดธเดนเดพเดฏเดฟเดเตเดเตเดจเตเดจเต. เดเดฐเต RHEL เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดเดฐเต เดชเตเดคเดฟเดฏ PostgreSQL เดเตปเดธเตเดฑเตเดฑเตปเดธเต เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดเดเตเดเตพ เดเดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
sudo /usr/bin/postgresql-setup -initdb
เดจเดฟเดเตเดเตพเดเตเดเต systemd เดเดชเดฏเตเดเดฟเดเตเดเต PostgreSQL เดเดฐเดเดญเดฟเดเตเดเดพเดจเตเด เดเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดธเตเดทเตเดเดฟเดเตเดเดพเดจเตเด เดเดพเดเตเดเตเดฏเดฟเตฝ เดเดฐเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด. เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเดพเดฏเดฟ เดชเดพเดธเตโเดตเตเดกเต เดธเดเดญเดฐเดฃเด เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดเตเดฒเดฏเดจเตเดฑเต เดเดงเดฟเดเดพเดฐเดฟเดเดค เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเดฒเดฟเตฝ (เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ pg_hba.conf) เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเดฟเดฏ เดถเตเดทเด PostgreSQL เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเดพเตป เดเตผเดฎเตเดฎเดฟเดเตเดเตเด. เดจเดฟเดเตเดเตพเดเตเดเต เดฎเดฑเตเดฑเต เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเตเดเตพ เดจเตเดฐเดฟเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, pg_hba.conf เดซเดฏเดฒเดฟเดฒเต IPv4, IPv6 เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเตพ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเต เดเดฑเดชเตเดชเดพเดเตเดเตเด.
systemctl enable -now postgresql
sudo -u postgres psql
postgres=# create database djangoapp;
postgres=# create user djangouser with password 'qwer4321';
postgres=# alter role djangouser set client_encoding to 'utf8';
postgres=# alter role djangouser set default_transaction_isolation to 'read committed';
postgres=# alter role djangouser set timezone to 'utc';
postgres=# grant all on DATABASE djangoapp to djangouser;
postgres=# q
เดซเดฏเดฒเดฟเตฝ /var/lib/pgsql/data/pg_hba.conf:
# IPv4 local connections:
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 md5
เดซเดฏเดฒเดฟเตฝ /srv/djangoapp/settings.py:
# Database
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '{{ db_name }}',
'USER': '{{ db_user }}',
'PASSWORD': '{{ db_password }}',
'HOST': '{{ db_host }}',
}
}
เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดฒเต settings.py เดซเดฏเตฝ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตโเดคเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดธเดเตเดเตเดเดฐเดฟเดเตเด เดถเตเดทเด, เดเดฒเตเดฒเดพเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเดพเตป เดจเดฟเดเตเดเตพเดเตเดเต เดกเตเดตเดฒเดชเตโเดฎเตเดจเตเดฑเต เดธเตเตผเดตเตผ เดเดฐเดเดญเดฟเดเตเดเดพเด. เดกเตเดตเดฒเดชเตโเดฎเตเดจเตเดฑเต เดธเตเตผเดตเตผ เดเดฐเดเดญเดฟเดเตเดเดคเดฟเดจเต เดถเตเดทเด, เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฃเดเตเดทเตป เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดฐเต เด เดกเตเดฎเดฟเตป เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดจเดฒเตเดฒเดคเดพเดฃเต.
./manage.py runserver 0.0.0.0:8000
./manage.py createsuperuser
WSGI? เดตเดพเดฏเต?
เดกเตเดตเดฒเดชเตโเดฎเตเดจเตเดฑเต เดธเตเตผเดตเตผ เดเตเดธเตเดฑเตเดฑเดฟเดเดเดฟเดจเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฃเต, เดเดจเตเดจเดพเตฝ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดเตเดเตพ เดตเตเดฌเต เดธเตเตผเดตเตผ เดเตเดฑเตเดฑเตโเดตเต เดเดจเตเดฑเตผเดซเตเดธเดฟเดจเดพเดฏเดฟ (WSGI) เดเดเดฟเดคเดฎเดพเดฏ เดธเตเตผเดตเดฑเตเด เดชเตเดฐเตเดเตเดธเดฟเดฏเตเด เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเดฃเด. เดจเดฟเดฐเดตเดงเดฟ เดชเตเดคเตเดตเดพเดฏ เดเตเดฎเตเดชเดฟเดจเตเดทเดจเตเดเตพ เดเดฃเตเดเต, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, uWSGI เดเดณเตเดณ Apache HTTPD เด เดฒเตเดฒเตเดเตเดเดฟเตฝ Gunicorn เดเดณเตเดณ Nginx.
เดตเตเดฌเต เดธเตเตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดชเตเดคเตเดคเตบ เดตเตเดฌเต เดซเตเดฐเตเดฏเดฟเดเดตเตผเดเตเดเดฟเดฒเตเดเตเดเต เดเตเดฎเดพเดฑเตเด เดเดจเตเดจเดคเดพเดฃเต เดตเตเดฌเต เดธเตเตผเดตเตผ เดเตเดฑเตเดฑเตโเดตเต เดเดจเตเดฑเตผเดซเตเดธเดฟเดจเตเดฑเต เดเตเดฒเดฟ. CGI เดเดเตเดเดฟเดจเตเดเตพ เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจ เดเดพเดฒเดคเตเดคเต เดญเดฏเดพเดจเดเดฎเดพเดฏ เดญเตเดคเดเดพเดฒเดคเตเดคเดฟเดจเตเดฑเต เด เดตเดถเดฟเดทเตเดเดฎเดพเดฃเต WSGI, เดตเตเดฌเต เดธเตเตผเดตเดฑเต เดชเตเดคเตเดคเตบ เดเดเตเดเดเตเดเตเดเต เดชเดฐเดฟเดเดฃเดฟเดเตเดเดพเดคเต เดคเดจเตเดจเต เดเดจเตเดจเต WSGI เดฏเดฅเดพเตผเดคเตเดฅ เดจเดฟเดฒเดตเดพเดฐเดฎเดพเดฃเต. เดเดจเตเดจเดพเตฝ เดตเตเดฏเดพเดชเดเดฎเดพเดฏ เดเดชเดฏเตเดเด เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดเตเดเตเด, เด เดเดเตเดเดเตเดเตเดเตเดเตพเดเตเดเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดฎเตเดชเตเตพ เดจเดฟเดฐเดตเดงเดฟ เดธเตเดเตเดทเตเดฎเดคเดเดณเตเด เดจเดฟเดฐเดตเดงเดฟ เดคเดฟเดฐเดเตเดเตเดเตเดชเตเดชเตเดเดณเตเด เดเดฃเตเดเต. เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเดฐเต เดธเตเดเตเดเดฑเตเดฑเต เดตเดดเดฟ Gunicorn เดเด Nginx เดเด เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดเดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด เดธเตเดฅเดพเดชเดฟเดเตเดเดพเตป เดเดเตเดเตพ เดถเตเดฐเดฎเดฟเดเตเดเตเด.
เด เดฐเดฃเตเดเต เดเดเดเดเตเดเดณเตเด เดเดฐเต เดธเตเตผเดตเดฑเดฟเตฝ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดธเตเดเตเดเดฑเตเดฑเดฟเดจเต เดชเดเดฐเด UNIX เดธเตเดเตเดเดฑเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดพเด. เดเดถเดฏเดตเดฟเดจเดฟเดฎเดฏเดคเตเดคเดฟเดจเต เดเดฐเต เดธเตเดเตเดเดฑเตเดฑเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณเดคเดฟเดจเดพเตฝ, เดจเดฎเตเดเตเดเต เดเดฐเต เดเดเตเดเด เดเตเดเดฟ เดเดเตเดคเตเดคเต systemd เดตเดดเดฟ Gunicorn-เดจเดพเดฏเดฟ เดธเตเดเตเดเดฑเตเดฑเต เดเดเตเดฑเตเดฑเดฟเดตเตเดทเตป เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดพเด.
เดธเตเดเตเดเดฑเตเดฑเต เดธเดเตเดตเดฎเดพเดเตเดเดฟเดฏ เดธเตเดตเดจเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเดเตเดฐเดฟเดฏ เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฃเต. เดเดฆเตเดฏเด, UNIX เดธเตเดเตเดเดฑเตเดฑเต เดธเตเดทเตโเดเดฟเดเตเดเตเดจเตเดจ เดชเตเดฏเดฟเดจเตเดฑเดฟเดฒเตเดเตเดเต เดเตเดฃเตเดเดฟเดเตเดเดพเดฃเดฟเดเตเดเตเดจเตเดจ เดเดฐเต ListenStream เดกเดฏเดฑเดเตโเดเตเดตเต เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดฏเตเดฃเดฟเดฑเตเดฑเต เดซเดฏเตฝ เดธเตเดทเตโเดเดฟเดเตเดเตเดจเตเดจเต, เดคเตเดเตผเดจเตเดจเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเตเดถเด เดธเตเดเตเดเดฑเตเดฑเต เดฏเตเดฃเดฟเดฑเตเดฑเต เดซเดฏเดฒเดฟเดฒเตเดเตเดเต เดชเตเดฏเดฟเดจเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจ เดธเตเดตเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดฏเตเดฃเดฟเดฑเตเดฑเต เดซเดฏเตฝ. เดคเตเดเตผเดจเตเดจเต, เดธเตผเดตเตเดธเต เดฏเตเดฃเดฟเดฑเตเดฑเต เดซเดฏเดฒเดฟเตฝ, เดตเตเตผเดเตเดตเตฝ เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต Gunicorn-เดจเต เดตเดฟเดณเดฟเดเตเดเต UNIX เดธเตเดเตเดเดฑเตเดฑเดฟเดจเตเด Django เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเด เดเดฐเต WSGI เดฌเตเตปเดกเดฟเดเดเต เดธเตเดทเตเดเดฟเดเตเดเตเด เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต.
เดจเดฟเดเตเดเตพเดเตเดเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเดพเดตเตเดจเตเดจ เดฏเตเดฃเดฟเดฑเตเดฑเต เดซเดฏเดฒเตเดเดณเตเดเต เดเดฟเดฒ เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ เดเดคเดพ. เดเดฆเตเดฏเด เดเดเตเดเตพ เดธเตเดเตเดเดฑเตเดฑเต เดธเดเตเดเดฎเดพเดเตเดเดฟ.
[Unit]
Description=Gunicorn WSGI socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target
เดเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพ Gunicorn เดกเตเดฎเตบ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต.
[Unit]
Description=Gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=cloud-user
Group=cloud-user
WorkingDirectory=/srv/djangoapp
ExecStart=/srv/djangoapp/django/bin/gunicorn
โaccess-logfile -
โworkers 3
โbind unix:gunicorn.sock djangoapp.wsgi
[Install]
WantedBy=multi-user.target
Nginx-เดจเต เดธเดเดฌเดจเตเดงเดฟเดเตเดเดฟเดเดคเตเดคเตเดณเด, เดชเตเดฐเตเดเตโเดธเดฟ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเดฒเตเดเตพ เดธเตเดทเตโเดเดฟเดเตเดเตเดเดฏเตเด เดจเดฟเดเตเดเตพ เดเดฐเตเดฃเตเดฃเด เดเดชเดฏเตเดเดฟเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดเดณเตเดณเดเดเตเดเด เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดฐเต เดกเดฏเดฑเดเตโเดเดฑเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด เดเดจเตเดจเดคเต เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดเดพเดฐเตเดฏเดฎเดพเดฃเต. RHEL-เตฝ, Nginx เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเดฒเตเดเตพ /etc/nginx/conf.d-เตฝ เดธเตเดฅเดฟเดคเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเต. เดจเดฟเดเตเดเตพเดเตเดเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดฆเดพเดนเดฐเดฃเด /etc/nginx/conf.d/default.conf เดซเดฏเดฒเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเดฟ เดธเตเดตเดจเด เดเดฐเดเดญเดฟเดเตเดเดพเด. เดจเดฟเดเตเดเดณเตเดเต เดนเตเดธเตเดฑเตเดฑเต เดจเดพเดฎเดตเตเดฎเดพเดฏเดฟ เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจเดคเดฟเดจเต server_name เดธเดเตเดเดฎเดพเดเตเดเตเดจเตเดจเดคเต เดเดฑเดชเตเดชเดพเดเตเดเตเด.
server {
listen 80;
server_name 8beta1.example.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /srv/djangoapp;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
systemd เดเดชเดฏเตเดเดฟเดเตเดเต Gunicorn เดธเตเดเตเดเดฑเตเดฑเตเด Nginx เดเด เดเดฐเดเดญเดฟเดเตเดเตเด, เดจเดฟเดเตเดเตพ เดชเดฐเตเดเตเดทเดฃเด เดเดฐเดเดญเดฟเดเตเดเดพเตป เดคเดฏเตเดฏเดพเดฑเดพเดฃเต.
เดฎเตเดถเด เดเตเดฑเตเดฑเตโเดตเต เดชเดฟเดถเดเต?
เดจเดฟเดเตเดเดณเตเดเต เดฌเตเดฐเตเดธเดฑเดฟเตฝ เดตเดฟเดฒเดพเดธเด เดจเตฝเดเดฟเดฏเดพเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดฎเดฟเดเตเดเดตเดพเดฑเตเด 502 เดฌเดพเดกเต เดเตเดฑเตเดฑเตโเดตเต เดชเดฟเดถเดเต เดฒเดญเดฟเดเตเดเตเด. เดคเตเดฑเตเดฑเดพเดฏเดฟ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตโเดค UNIX เดธเตเดเตเดเดฑเตเดฑเต เด เดจเตเดฎเดคเดฟเดเตพ เดฎเตเดฒเดฎเดพเดเดพเด, เด เดฒเตเดฒเตเดเตเดเดฟเตฝ SELinux-เดฒเต เดเดเตโเดธเดธเตเดธเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดตเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเด เดเตเดเตเดคเตฝ เดธเดเตเดเตเตผเดฃเดฎเดพเดฏ เดชเตเดฐเดถเตโเดจเดเตเดเตพ เดฎเตเดฒเดฎเดพเดเดพเด.
nginx เดชเดฟเดถเดเต เดฒเตเดเดฟเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเตเดชเตเดฒเตเดณเตเดณ เดเดฐเต เดฒเตเตป เดเดพเดฃเดพเด:
2018/12/18 15:38:03 [crit] 12734#0: *3 connect() to unix:/run/gunicorn.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.122.1, server: 8beta1.example.com, request: "GET / HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/", host: "8beta1.example.com"
Gunicorn เดจเต เดจเตเดฐเดฟเดเตเดเต เดเตเดธเตเดฑเตเดฑเต เดเตเดฏเตเดคเดพเตฝ เดเดฐเต เดชเตเดณเตเดณเดคเตเดคเดฐเด เดเดฟเดเตเดเตเด.
curl โunix-socket /run/gunicorn.sock 8beta1.example.com
เดเดจเตเดคเตเดเตเดฃเตเดเดพเดฃเต เดเดคเต เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเดคเตเดจเตเดจเต เดจเดฎเตเดเตเดเต เดเดฃเตเดเตเดคเตเดคเดพเด. เดจเดฟเดเตเดเตพ เดฒเตเดเต เดคเตเดฑเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดชเตเดฐเดถเตเดจเด SELinux-เดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเดเดคเดพเดฃเตเดจเตเดจเต เดจเดฟเดเตเดเตพ เดเดพเดฃเตเด. เดจเดฏเดเตเดเดณเตเดจเตเดจเตเด เดธเตเดทเตโเดเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒเดพเดคเตเดค เดเดฐเต เดกเตเดฎเตบ เดเดเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เด เดคเต init_t เดเดจเตเดจเต เด เดเดฏเดพเดณเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เด เดธเดฟเดฆเตเดงเดพเดจเตเดคเด เดชเตเดฐเดพเดฏเตเดเดฟเดเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด.
sudo setenforce 0
เดเดคเตเดฒเตเดฒเดพเด เดตเดฟเดฎเตผเดถเดจเดคเตเดคเดฟเดจเตเด เดฐเดเตเดคเดเตเดเดฃเตเดฃเตเตผเดเตเดเตเด เดเดพเดฐเดฃเดฎเดพเดฏเตเดเตเดเดพเด, เดชเดเตเดทเต เดเดคเต เดชเตเดฐเตเดเตเดเตเดเตเดชเตเดชเต เดกเตเดฌเดเตเดเดฟเดเดเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต. เดเดคเดพเดฃเต เดชเตเดฐเดถเตโเดจเด เดเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเดพเตป เดจเดฎเตเดเตเดเต เดชเดฐเดฟเดถเตเดงเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดเตเดเดพเด, เด เดคเดฟเดจเตเดถเตเดทเด เดเดเตเดเตพ เดเดฒเตเดฒเดพเด เด เดคเดฟเดจเตเดฑเต เดธเตเดฅเดพเดจเดคเตเดคเตเดเตเดเต เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเด.
เดฌเตเดฐเตเดธเดฑเดฟเตฝ เดชเตเดเต เดชเตเดคเตเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเตเดฏเต เดเดเตเดเดณเตเดเต curl เดเดฎเดพเตปเดกเต เดตเตเดฃเตเดเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเตเดฏเต เดจเดฟเดเตเดเตพเดเตเดเต Django เดเตเดธเตเดฑเตเดฑเต เดชเตเดเต เดเดพเดฃเดพเตป เดเดดเดฟเดฏเตเด.
เด เดคเดฟเดจเดพเตฝ, เดเดฒเตเดฒเดพเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดจเตเดจเตเด เดเตเดเตเดคเตฝ เด เดจเตเดฎเดคเดฟ เดชเตเดฐเดถเตโเดจเดเตเดเดณเตเดจเตเดจเตเดฎเดฟเดฒเตเดฒเตเดจเตเดจเตเด เดเดฑเดชเตเดชเตเดตเดฐเตเดคเตเดคเดฟเดฏ เดถเตเดทเด, เดเดเตเดเตพ SELinux เดตเตเดฃเตเดเตเด เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเตเดจเตเดจเต.
sudo setenforce 1
audit2allow เด เดฒเตเดฒเตเดเตเดเดฟเตฝ sepolgen เดเดชเดฏเตเดเดฟเดเตเดเต เด เดฒเตเตผเดเตเดเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเตเดณเตเดณ เดจเดฏเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเตเดฑเดฟเดเตเดเต เดเดพเตป เดเดตเดฟเดเต เดธเดเดธเดพเดฐเดฟเดเตเดเดฟเดฒเตเดฒ, เดเดพเดฐเดฃเด เดเดชเตเดชเตเตพ เดฏเดฅเดพเตผเดคเตเดฅ เดเดพเดเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดจเตเดจเตเดฎเดฟเดฒเตเดฒ, เด เดคเดฟเดจเดพเตฝ Gunicorn เดเดเตโเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเตเดฏเตเด เดเดเตโเดธเดธเต เดจเดฟเดฐเดธเดฟเดเตเดเตเดฃเตเดเดคเดฟเดจเตเดฑเตเดฏเตเด เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดฎเดพเดชเตเดชเต เดเดจเตเดจเตเดฎเดฟเดฒเตเดฒ. เด เดคเดฟเดจเดพเตฝ, เดธเดฟเดธเตเดฑเตเดฑเด เดชเดฐเดฟเดฐเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ SELinux เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเดเดคเต เดเดตเดถเตเดฏเดฎเดพเดฃเต, เด เดคเต เดธเดฎเดฏเด เดเดกเดฟเดฑเตเดฑเต เดฒเตเดเดฟเตฝ เดธเดจเตเดฆเตเดถเดเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเดจเตเด เด เดตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดฏเดฅเดพเตผเดคเตเดฅ เดจเดฏเด เดธเตเดทเตเดเดฟเดเตเดเดพเดจเตเด เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เด เดจเตเดตเดฆเดจเตเดฏเดฎเดพเดฏ เดกเตเดฎเตเดฏเตโเดจเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเต
SELinux-เตฝ เด เดจเตเดตเดฆเดจเตเดฏเดฎเดพเดฏ เดกเตเดฎเตเดฏเตโเดจเตเดเดณเต เดเตเดฑเดฟเดเตเดเต เดเดฒเตเดฒเดพเดตเดฐเตเด เดเตเดเตเดเดฟเดเตเดเตเดฃเตเดเดพเดตเดฟเดฒเตเดฒ, เดเดจเตเดจเดพเตฝ เด เดต เดชเตเดคเดฟเดฏเดคเดฒเตเดฒ. เดชเดฒเดฐเตเด เด เดฑเดฟเดฏเดพเดคเต เด เดตเดฐเตเดเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเต. เดเดกเดฟเดฑเตเดฑเต เดธเดจเตเดฆเตเดถเดเตเดเดณเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟ เดเดฐเต เดจเดฏเด เดธเตเดทเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดธเตเดทเตเดเดฟเดเตเด เดจเดฏเด เดชเดฐเดฟเดนเดฐเดฟเดเตเด เดกเตเดฎเตเดฏเตโเดจเต เดชเตเดฐเดคเดฟเดจเดฟเดงเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต. เดฒเดณเดฟเดคเดฎเดพเดฏ เดเดฐเต เดชเตเตผเดฎเดฟเดฑเตเดฑเดฟเดเดเต เดชเตเดณเดฟเดธเดฟ เดเดฃเตเดเดพเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดพเด.
Gunicorn-เดจเดพเดฏเดฟ เด เดจเตเดตเดฆเดจเตเดฏเดฎเดพเดฏ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดกเตเดฎเตเดฏเตโเตป เดธเตเดทเตโเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดจเดฏเด เดเดตเดถเตเดฏเดฎเดพเดฃเต, เดเตเดเดพเดคเต เดจเดฟเดเตเดเตพ เดเดเดฟเดคเดฎเดพเดฏ เดซเดฏเดฒเตเดเตพ เด เดเดฏเดพเดณเดชเตเดชเตเดเตเดคเตเดคเตเดเดฏเตเด เดตเตเดฃเด. เดเตเดเดพเดคเต, เดชเตเดคเดฟเดฏ เดชเตเดณเดฟเดธเดฟเดเตพ เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเดพเตป เดเตเดณเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฃเต.
sudo yum install selinux-policy-devel
เด เดจเตเดตเดฆเดจเตเดฏเดฎเดพเดฏ เดกเตเดฎเตเดฏเตโเดจเตเดเดณเตเดเต เดธเดเดตเดฟเดงเดพเดจเด เดชเตเดฐเดถเตโเดจเดเตเดเตพ เดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดฎเดฟเดเดเตเด เดเดชเดเดฐเดฃเดฎเดพเดฃเต, เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเด เดเดฐเต เดเดทเตโเดเดพเดจเตเดธเตเดค เด เดชเตเดฒเดฟเดเตเดเตเดทเดจเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดคเดฟเดจเดเด เดธเตเดทเตโเดเดฟเดเตเด เดจเดฏเดเตเดเดณเดฟเดฒเตเดฒเดพเดคเต เดทเดฟเดชเตเดชเตเดเตเดฏเตเดฏเตเดจเตเดจ เด เดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเดณเต เดตเดฐเตเดฎเตเดชเตเตพ. เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, Gunicorn-เดจเตเดณเตเดณ เด เดจเตเดตเดฆเดจเตเดฏเดฎเดพเดฏ เดกเตเดฎเตเดฏเตเตป เดจเดฏเด เดเดดเดฟเดฏเตเดจเตเดจเดคเตเดฐ เดฒเดณเดฟเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด - เดเดฐเต เดชเตเดฐเดงเดพเดจ เดคเดฐเด (gunicorn_t) เดชเตเดฐเดเตเดฏเดพเดชเดฟเดเตเดเตเด, เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเดฌเดฟเดณเตเดเตพ (gunicorn_exec_t) เด เดเดฏเดพเดณเดชเตเดชเตเดเตเดคเตเดคเดพเตป เดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดคเดฐเด เดชเตเดฐเดเตเดฏเดพเดชเดฟเดเตเดเตเด, เดคเตเดเตผเดจเตเดจเต เดถเดฐเดฟเดฏเดพเดฏเดฟ เด เดเดฏเดพเดณเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเดพเดฏเดฟ เดเดฐเต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด เดธเดเตเดเดฎเดพเดเตเดเตเด. เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเดเตเดฐเดฟเดฏเดเตพ. เดฒเตเดกเตเดเตเดฏเตเดฏเตเดจเตเดจ เดธเดฎเดฏเดคเตเดคเต เดกเดฟเดซเตเตพเดเตเดเดพเดฏเดฟ เดจเดฏเด เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเดฟเดฏเดคเดพเดฏเดฟ เด เดตเดธเดพเดจ เดตเดฐเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต.
gunicorn.te:
policy_module(gunicorn, 1.0)
type gunicorn_t;
type gunicorn_exec_t;
init_daemon_domain(gunicorn_t, gunicorn_exec_t)
permissive gunicorn_t;
เดจเดฟเดเตเดเตพเดเตเดเต เด เดชเตเดณเดฟเดธเดฟ เดซเดฏเตฝ เดธเดฎเดพเดนเดฐเดฟเดเตเดเต เดจเดฟเดเตเดเดณเตเดเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเดพเด.
make -f /usr/share/selinux/devel/Makefile
sudo semodule -i gunicorn.pp
sudo semanage permissive -a gunicorn_t
sudo semodule -l | grep permissive
เดจเดฎเตเดฎเตเดเต เด เดเตเดเดพเดค เดกเตเดฎเตบ เดเดเตโเดธเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฒเตเดฒเดพเดคเต เดฎเดฑเตเดฑเตเดจเตเดคเตเดเตเดเดฟเดฒเตเด SELinux เดคเดเดฏเตเดจเตเดจเตเดฃเตเดเตเดฏเตเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด.
sudo ausearch -m AVC
type=AVC msg=audit(1545315977.237:1273): avc: denied { write } for pid=19400 comm="nginx" name="gunicorn.sock" dev="tmpfs" ino=52977 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:var_run_t:s0 tclass=sock_file permissive=0
Gunicorn เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ UNIX เดธเตเดเตเดเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดกเดพเดฑเตเดฑ เดเดดเตเดคเตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต Nginx-เดจเต SELinux เดคเดเดฏเตเดจเตเดจเต. เดธเดพเดงเดพเดฐเดฃเดเดคเดฟเดฏเดฟเตฝ, เด เดคเตเดคเดฐเด เดธเดจเตเดฆเตผเดญเดเตเดเดณเดฟเตฝ, เดจเดฏเดเตเดเตพ เดฎเดพเดฑเดพเตป เดคเตเดเดเตเดเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ เดฎเดฑเตเดฑเต เดตเตเดฒเตเดฒเตเดตเดฟเดณเดฟเดเตพ เดฎเตเดจเตเดจเดฟเดฒเตเดฃเตเดเต. เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃ เดกเตเดฎเตเดฏเตโเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เด เดจเตเดฎเดคเดฟ เดกเตเดฎเตเดฏเตโเดจเดฟเดฒเตเดเตเดเต เดกเตเดฎเตเดฏเตโเตป เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเตพ เดฎเดพเดฑเตเดฑเดพเดจเตเด เดเดดเดฟเดฏเตเด. เดเดจเดฟ เดจเดฎเตเดเตเดเต httpd_t เด เดจเตเดฎเดคเดฟ เดกเตเดฎเตเดฏเตโเดจเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเดพเด. เดเดคเต Nginx-เดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดเดเตโเดธเดธเต เดจเตฝเดเตเด, เดเดเตเดเตพเดเตเดเต เดเตเดเตเดคเตฝ เดกเตเดฌเดเตเดเดฟเดเดเต เดเตเดฒเดฟเดเตพ เดคเตเดเดฐเดพเด.
sudo semanage permissive -a httpd_t
เด เดคเดฟเดจเดพเตฝ, เดจเดฟเดเตเดเตพ SELinux เดชเดฐเดฟเดฐเดเตเดทเดฟเดคเดฎเดพเดฏเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดพเตป เดเดดเดฟเดเตเดเดพเตฝ (เดจเดฟเดเตเดเตพ เดเดฐเต SELinux เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดค เดฎเตเดกเดฟเตฝ เดเดชเตเดเตเดทเดฟเดเตเดเดฐเตเดคเต) เด เดจเตเดฎเดคเดฟ เดกเตเดฎเตเดฏเตโเดจเตเดเตพ เดฒเตเดกเตเดเตเดฏเตโเดคเตเดเดดเดฟเดเตเดเดพเตฝ, เดเดฒเตเดฒเดพเด เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต gunicorn_exec_t เดเดจเตเดจเต เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เด เดเดฏเดพเดณเดชเตเดชเตเดเตเดคเตเดคเตเดฃเตเดเดคเต เดเดจเตเดคเดพเดฃเตเดจเตเดจเต เดจเดฟเดเตเดเตพ เดเดฃเตเดเตเดคเตเดคเตเดฃเตเดเดคเตเดฃเตเดเต. เดตเตเดฃเตเดเตเด. เดเดเตเดธเดธเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดชเตเดคเดฟเดฏ เดธเดจเตเดฆเตเดถเดเตเดเตพ เดเดพเดฃเตเดจเตเดจเดคเดฟเดจเต เดตเตเดฌเตเดธเตเดฑเตเดฑเต เดธเดจเตเดฆเตผเดถเดฟเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดพเด.
sudo ausearch -m AVC -c gunicorn
/srv/djangoapp-เดฒเต เดซเดฏเดฒเตเดเดณเดฟเตฝ เดตเดฟเดตเดฟเดง เดเดพเดฐเตเดฏเดเตเดเตพ เดเตเดฏเตเดฏเตเดจเตเดจ 'comm="gunicorn" เด เดเดเตเดเดฟเดฏ เดงเดพเดฐเดพเดณเด เดธเดจเตเดฆเตเดถเดเตเดเตพ เดจเดฟเดเตเดเตพ เดเดพเดฃเตเด, เด เดคเดฟเดจเดพเตฝ เดเดคเต เดตเตเดฏเดเตเดคเดฎเดพเดฏเตเด เดซเตเดฒเดพเดเตเดเตเดฏเตเดฏเตเดฃเตเด เดเดฎเดพเตปเดกเตเดเดณเดฟเตฝ เดเดจเตเดจเดพเดฃเต.
เดเดจเตเดจเดพเตฝ เดเดคเตเดเตเดเดพเดคเต, เดเดคเตเดชเตเดฒเตเดณเตเดณ เดเดฐเต เดธเดจเตเดฆเตเดถเด เดฆเตเดถเตเดฏเดฎเดพเดเตเดจเตเดจเต:
type=AVC msg=audit(1545320700.070:1542): avc: denied { execute } for pid=20704 comm="(gunicorn)" name="python3.6" dev="vda3" ino=8515706 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file permissive=0
เดจเดฟเดเตเดเตพ gunicorn เดธเตเดตเดจเดคเตเดคเดฟเดจเตเดฑเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดธเต เดจเตเดเตเดเตเดเดฏเต ps เดเดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเต เดเตเดฏเตเดคเดพเตฝ, เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเดเตเดฐเดฟเดฏเดเดณเตเดจเตเดจเตเด เดจเดฟเดเตเดเตพ เดเดพเดฃเดฟเดฒเตเดฒ. เดเดเตเดเดณเตเดเต virtualenv เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ Gunicorn เดชเตเดคเตเดคเตบ เดเดจเตเดฑเตผเดชเตเดฐเตเดฑเตเดฑเตผ เดเดเตโเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเดจเตเดจเดคเดพเดฏเดฟ เดคเตเดจเตเดจเตเดจเตเดจเต, เดเดฐเตเดชเดเตเดทเต เดตเตผเดเตเดเตผ เดธเตโเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต. เด เดคเดฟเดจเดพเตฝ เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เด เดฐเดฃเตเดเต เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเดฌเดฟเตพ เดซเดฏเดฒเตเดเตพ เด เดเดฏเดพเดณเดชเตเดชเตเดเตเดคเตเดคเตเดเดฏเตเด เดเดเตเดเดณเตเดเต เดเดพเดเตเดเต เดเตเดธเตเดฑเตเดฑเต เดชเตเดเต เดคเตเดฑเดเตเดเดพเตป เดเดดเดฟเดฏเตเดฎเต เดเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเดพเด.
chcon -t gunicorn_exec_t /srv/djangoapp/django/bin/gunicorn /srv/djangoapp/django/bin/python3.6
เดชเตเดคเดฟเดฏ เดเดพเดเต เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดเดฃเดฟเดเตเตบ เดธเตเดตเดจเด เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเต เดเดเดจเดเดฟ เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเดพเด เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดธเตเดตเดจเด เดจเดฟเตผเดคเตเดคเดฟ เดฌเตเดฐเตเดธเดฑเดฟเตฝ เดธเตเดฑเตเดฑเต เดคเตเดฑเดเตเดเตเดฎเตเดชเตเตพ เดธเตเดเตเดเดฑเตเดฑเต เด เดคเต เดเดฐเดเดญเดฟเดเตเดเดพเตป เด เดจเตเดตเดฆเดฟเดเตเดเตเด. ps เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดฐเตเดธเดธเตเดธเตเดเตพเดเตเดเต เดถเดฐเดฟเดฏเดพเดฏ เดฒเตเดฌเดฒเตเดเตพ เดฒเดญเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดฏเตเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเด.
ps -efZ | grep gunicorn
เดชเดฟเดจเตเดจเตเดเต เดเดฐเต เดธเดพเดงเดพเดฐเดฃ SELinux เดจเดฏเด เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต!
เดจเดฟเดเตเดเตพ เดเดชเตเดชเตเตพ เดเดตเดฟเดธเดฟ เดธเดจเตเดฆเตเดถเดเตเดเตพ เดจเตเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เด เดตเดธเดพเดจ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเตฝ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเด เดเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเด เดชเตเตผเดฎเดฟเดธเดฟเดตเต=1, เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต เดถเตเดทเดฟเดเตเดเตเดจเตเดจเดตเดฏเตเดเตเดเต เดชเตเตผเดฎเดฟเดธเดฟเดตเต=0 เดเดจเตเดจเดฟเดต เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเต เดเดคเต เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดเดเตโเดธเดธเดพเดฃเต เดเดตเดถเตเดฏเดฎเตเดจเตเดจเต เดจเดฟเดเตเดเตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดฟเดฏเดพเตฝ, เด เดคเตเดคเดฐเด เดชเตเดฐเดถเตเดจเดเตเดเตพ เดชเดฐเดฟเดนเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด เดจเดฒเตเดฒ เดฎเดพเตผเดเด เดจเดฟเดเตเดเตพเดเตเดเต เดตเตเดเดคเตเดคเดฟเตฝ เดเดฃเตเดเตเดคเตเดคเดพเดจเดพเดเตเด. เดเดจเตเดจเดพเตฝ เด เดคเตเดตเดฐเต, เดธเดฟเดธเตเดฑเตเดฑเด เดธเตเดฐเดเตเดทเดฟเดคเดฎเดพเดฏเดฟ เดธเตเดเตเดทเดฟเดเตเดเตเดเดฏเตเด เดเดพเดเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเต เดตเตเดฏเดเตเดคเดฎเดพเดฏ เดเดชเดฏเตเดเดฏเตเดเตเดฏเดฎเดพเดฏ เดเดกเดฟเดฑเตเดฑเต เดจเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต.
sudo ausearch -m AVC
เดธเดเดญเดตเดฟเดเตเดเต!
Nginx, Gunicorn WSGI เดเดจเตเดจเดฟเดตเดฏเต เด
เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเตเดณเตเดณ เดเดฐเต เดซเตเดฐเดฃเตเดเตโเดเตปเดกเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเดพเดเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเต. RHEL 3 เดฌเตเดฑเตเดฑ เดถเตเดเดฐเดฃเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดเตพ Python 10, PostgreSQL 8 เดเดจเตเดจเดฟเดต เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเต. เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดชเตเดฐเดเตเดฐเดฟเดฏ เดเดเตเดเตเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดชเตเดฐเดเดเดจเด เดฎเตเดเตเดเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเด เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เด เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดเดฃเตเดเตเดฏเตโเดจเดฑเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดฎเตเดจเตเดจเตเดเตเดเต เดชเตเดเดพเดจเตเด เดเดพเดเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเดจเตเด (เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเดจเตเด) เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ RHEL 8 เดฌเตเดฑเตเดฑเดฏเดฟเตฝ เดฒเดญเตเดฏเดฎเดพเดฏ เดฎเดฑเตเดฑเต เดเตเดณเตเดเตพ เดชเดฐเตเดฏเดตเตเดเตเดทเดฃเด เดเตเดฏเตเดฏเดพเด.
เด
เดตเดฒเดเดฌเด: www.habr.com