1. 程式人生 > >CentOS7 新機部署Django應用筆記

CentOS7 新機部署Django應用筆記

HOST

[root@iZwz95v28cjpudhp2sikufZ ~]# hostctl status
-bash: hostctl: 未找到命令
[root@iZwz95v28cjpudhp2sikufZ ~]# hostnamectl
   Static hostname: iZwz95v28cjpudhp2sikufZ
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 7d26c16f128042a684ea474c9e2c240f
           Boot ID: 1a7a794ac5db4f07b54136317c5fbd0f
    Virtualization
: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-327.36.3.el7.x86_64 Architecture: x86-64

hostnamectl

在7版本中,hostname有三種形式

靜態(Static host name)

動態(Transient/dynamic host name)

別名(Pretty host name)

查詢主機名

hostnamectl或hostctl status 查詢主機名
hostnamectl status [–static|–transient|–pretty]

修改hostname
hostnamectl set-hostname servername [–static|–transient|–pretty]

刪除hostname

hostnamectl set-hostname “”
hostnamectl set-hostname “” –static
hostnamectl set-hostname “” –pretty

修改配置檔案
hostname name
vim /etc/hostname

通過nmtui修改,之後重啟hostnamed

systemctl restart systemd-hostnamed

通過nmcui修改,之後重啟hostnamed
nmcli general hostname servername
systemctl restart systemd-hostnamed

====================================

adduser myself passwd mysqlf
chmod -v u+w /etc/sudoers vim /etc/sudoers
Allow root to run any commands anywher root ALL=(ALL) ALL myself ALL=(ALL) ALL #這個是新增的使用者

chmod -v u-w /etc/sudoers

MYSQL

下載mysql源安裝包

安裝mysql源

shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm

檢查

shell> yum repolist enabled | grep “mysql.-community.

安裝

shell> yum install mysql-community-server

啟動

shell> systemctl start mysqld

car /var/log/mysqld.d。。。 有時候看不到
====修改/etc/my.cnf,在 [mysqld] 小節下新增一行:skip-grant-tables=1

這一行配置讓 mysqld 啟動時不對密碼進行驗證

2、重啟mysqld 服務:systemctl restart mysqld

3、使用 root 使用者登入到 mysql:mysql -uroot

4、切換到mysql資料庫,更新 user 表:

update user set authentication_string = password(‘123456’),password_expired = ‘N’, password_last_changed = now() where user = ‘root’;

在之前的版本中,密碼欄位的欄位名是 password,5.7版本改為了 authentication_string

5、退出 mysql,編輯 /etc/my.cnf 檔案,刪除 skip-grant-tables=1的內容

6、重啟mysqld 服務,再用新密碼登入即可

tar -zxvf Python-3.6.0.tar

進入解壓縮後的資料夾

cd Pytho___<tab>

在編譯前先在/usr/local建一個資料夾python3(作為python的安裝路徑,以免覆蓋老的版本),需要使用sudo許可權

mkdir /usr/local/python3

開始編譯安裝

./configure --prefix=/usr/local/python3
make
make install

--prefix=/usr/local/python3生成makefile檔案,其中安裝目錄(linux下的安裝就是編譯連結後將檔案拷貝到系統路徑中)指定,make就會編譯連結makefile中的目標檔案,make install執行makefile中的安裝選項,完成安裝。

此時沒有覆蓋老版本,再將原來/usr/bin/python連結改為別的名字

mv /usr/bin/python /usr/bin/python_old

再建立新版本python的連結

ln -s /usr/local/python3/bin/python3 /usr/bin/python

這個時候輸入

python   #就會顯示出python的新版本資訊
Python 3.1.2 (r312:79147, Oct 21 2012, 01:03:21))
[GCC 3.2.2 20030222 (Red Hat Linux 3.2.2-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

如果不建立新安裝路徑python3,而是直接預設安裝,則安裝後的新python應該會覆蓋linux下自帶的老版本,也有可能不覆蓋,具體看安裝過程了,這個大家可以自己試驗下,當然如果還想保留原來的版本,那麼這種方法最好不過了。

還可以使python2和python3共存,也就是不要修改老版本的名字;建立新版本的名字是命名為python3。

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

這樣,輸入python會進入老版本;輸入python3會進入新版本,兩者共存,則需使用

、CentOS 安裝easy_install、pip的方法            

CentOS 安裝easy_install的方法:

注意:wget獲取https的時候要加上:–no-check-certificate

tar zvxf 1.5.5 #解壓檔案
cd pip-1.5.5/
python3 setup.py install

OK,這樣就安裝好pip了,

PS 截止使用 wget 安裝Linux的Anaconda 安裝包; 可以免掉很多Python 包的安裝。
安裝容易缺少bzip2包
yum install -y bzip2

apache2

mysql —-遠端連線

方法二、直接授權(推薦)

  從任何主機上使用root使用者,密碼:youpassword(你的root密碼)連線到mysql伺服器:

mysql -u root -proot

mysql>GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘youpassword’ WITH GRANT OPTION;

操作完後切記執行以下命令重新整理許可權

FLUSH PRIVILEGES

wsgi

 yum install -y httpd-devel
pip3 install mod_wsgi

子程序 mod_wsgi 覆蓋

No module Python_path

echo 'Python 3.5.2 is not installed, installing Python 3 pre-requisites...'
yum -y groupinstall development

echo 'Installing extra packages for Python...'
yum -y install zlib-devel openssl-devel sqlite-devel bzip2-devel python-devel openssl-devel libffi-devel openssl-perl libjpeg-turbo-devel zlib-devel giflib ncurses-devel gdbm-devel xz-devel tkinter readline-devel tk tk-devel

echo 'Installing Python 3.5.2...'
wget -q 'https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz'
tar -xzf 'Python-3.5.2.tgz'
cd ./Python-3.5.2
CXX=g++ ./configure --enable-shared
make

echo 'Moving to alternate location to keep system Python version intact...'
make altinstall
cd ..
rm Python-3.5.2.tgz
rm -rf ./Python-3.5.2
ln -fs /usr/local/bin/python3.5 /usr/bin/python3.5
echo "/usr/local/lib/python3.5" > /etc/ld.so.conf.d/python35.conf
echo "/usr/local/lib" >> /etc/ld.so.conf.d/python35.conf
ldconfig

echo 'Now, install mod_wsgi...'
wget -q "https://github.com/GrahamDumpleton/mod_wsgi/archive/4.4.21.tar.gz"
tar -xzf '4.4.21.tar.gz'
cd ./mod_wsgi-4.4.21
./configure --with-python=/usr/local/bin/python3.5
make
make install

ldd /etc/httpd/modules/mod_wsgi.so

=======mod_wsgi4.5.15

make distclean
./configure --with-python=/usr/local/bin/python3.5
LD_RUN_PATH=/usr/local/lib make
sudo make install
#################### 核心 #### vim /etc/ /config''

cd  /etc/ld.so.conf.d
vim python3.conf >>>+++ /anaconda3/python3
ldconfig 

mod_wsgi 錯誤部分

=====================ERROR====================
1074 vim /etc/ld.so.conf
1075 ldconfig
上面的問題解決shared; No module named encoding; mod_wsgi要用原始碼下載shared編譯。4.5.15

 ./configure --prefix=/home/myself/anaconda3/python3.5 --enable-shared    --enable-loadable-sqlite-extensions

=====No slotmem from mod_heartmonitor—======

這些訊息是無關的。通常遇到來自mod_heartmonitor的“AH02282:No slotmem”訊息(實際上並不是錯誤),但仍然有一個執行正常的伺服器。

PS 通常,您可以通過從httpd.conf註釋心跳負載平衡器方法模組來禁止該訊息(除非您實際使用它)。有人建議在預設配置中將其禁用,但顯然還沒有。