經常使用命令:html
說在前面,若是不是root帳號,命令前要加sudo。python
安裝軟件的方法:mysql
1、安裝iptableslinux
2、安裝與配置VSFTPnginx
安裝vsftpd:c++
配置vsftpd.confweb
#禁用匿名帳戶
anonymous_enable=NOsql
#容許實體用戶登陸
local_enable=YES數據庫
#容許用戶寫入
write_enable=YESdjango
#限制用戶上傳文件的權限
local_umask=002
#啓用用戶列表
userlist_enable=YES
#在用戶列表的用戶將會禁止登陸(感受像是黑名單)
userlist_deny=YES
#用戶列表的位置
userlist_file=/etc/vsftpd/user_list
#使用本地時間
use_localtime=YES
#若是文件夾中有.message,在該用戶計入該文件夾時,將會顯示其內容
dirmessage_enable=YES
#輸出日誌文件
xferlog_enable=YES
#輸出傳輸端口爲20
connect_from_port_20=YES
#日誌格式化
xferlog_std_format=YES
#開啓監聽
listen=YES
#服務名稱爲vsftpd
pam_service_name=vsftpd
#支持TCP Wrapper
tcp_wrappers=YES
#登陸ftp時的歡迎詞
banner_file=/etc/vsftpd/welcome.txt
修改新vsftpd.conf權限----(由於新建文件和原備份文件不一致)
# chmod 600 /etc/vsftpd/vsftpd.conf
建立welcome.txt歡迎詞
# vi /etc/vsftpd/welcome.txt
~~~歡迎登陸WXH的FTP服務器~~~
添加和配置用戶
配置chroot權限
#啓用chroot。
chroot_local_user=YES
#啓用chroot列表,這個列表中的用戶不受chroot限制,能夠進入其餘目錄,好比系統目錄。
chroot_list_enable=YES
#列表的位置
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
#chroot_list是默認不存在的,須要本身創建。
# vi /etc/vsftpd/chroot_list
創建chroot_list文件------(能夠爲空,等因而chroot限制的一個白名單)
# vi /etc/vsftpd/chroot_list
測試ftp連接
# cp /etc/vsftpd/chroot_list /home/wangxihao
PS:此處只是爲了增長一個標記。
# ftp localhost
輸入用戶名、密碼,登陸成功。
ftp>ls /
此處顯示的是剛纔拷貝的chroot_list文件,則說明chroot限制生效。
遇到的問題
使用FileZilla,連接服務器出現如下錯誤「 Failed to retrieve directory listing 」
解決方法1:因我FileZilla默認是passive連接方式,修改成active便可
Site Manager>Transfer settings>Transfer mode,選Active
解決辦法2:使vsftp支持passive
一、編輯vsftpd
# vi /etc/vsftpd/vsftpd.conf
加入如下4行:
#容許被動訪問,端口50000--50003
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50003
port_enable=YES
二、在iptables添加50000~50003端口。
# vi /etc/sysconfig/iptables
加入如下:開放50000-50003端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 50000:50003 -j ACCEPT
三、重啓vsftp和iptables
# systemctl restart vsftpd
# systemctl restart iptables
搞定!下一步是python django uwsgi nginx
3、安裝Python、pip三、Django
安裝Python、PIP
安裝Django
要使修改生效,能夠重啓系統,或者執行
# source /etc/profile
# echo $PATH
建立Django項目
# cd /home/Django_Web
# django-admin startproject WXH_DJANGOWEB
修改Django項目配置
# cd WXH_DJANGOWEB\WXH_DJANGOWEB
# vi settings.py
在尾部添加一句:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
保存退出後更新應用配置,自動生成 static 目錄
# ../manage.py collectstatic
運行django項目
# python /home/Django_Web/WXH_DJANGOWEB/manage.py runserver 0.0.0.0:8080
這是訪問http://ip:8080 或 http://ip:8080/admin(個人8080端口是開放的),提示錯誤:ALLOWED_HOSTS
這裏添加host白名單
# vi /home/Django_Web/WXH_DJANGOWEB/WXH_DJANGOWEB/settings.py
找到:ALLOWED_HOSTS = [ ]
修改:ALLOWED_HOSTS = ['*']
或改爲:ALLOWED_HOSTS = ['你的IP']
或改爲:ALLOWED_HOSTS = ['你的域名']
這樣訪問就沒有問題了~~
存在一個小問題,當我開啓runserver以後,關閉時按了CTRL+Z。當再次打開時,提示我端口占用。無奈之下,查找了一下如何解決
緣由:CTRL+C 是強制中斷(關閉)。CTRL+Z 是中斷,但若是任務沒有結束就等因而掛起狀態。
查找佔用的端口:
# netstat -apn|grep 8080
顯示「tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 32574/python 」
記住加粗的部分,就是進程號
殺死當前進程
# kill -9 32574
在運行runserver
# python /home/Django_Web/WXH_DJANGOWEB/manage.py runserver 0.0.0.0:8080
OK了~ 之後儘可能用CTRL+C關閉
安裝uWSGI
安裝nginx
#location /media {
# alias /path/to/your/mysite/media; # your Django project's media files - amend as required
#}
#location /static {
# alias /path/to/your/mysite/static; # your Django project's static files - amend as required
#}
# Finally, send all non-media requests to the Django server.
location / {
root /home/DJANGO_WEB/WXH_DJANGOWEB;
uwsgi_pass django;
include uwsgi_params; # the uwsgi_params file you installed
}
}
uwsgi 與 nginx 連接
# uwsgi --socket :8001 --wsgi-file /home/wangxihao/test/test.py
PS:test.py是以前安裝uwsgi時創建的測試文件。
PS:nginx是啓動狀態,運行這條命令。
PS:瀏覽器訪問80端口,顯示 Hello World ,說明成功!
PS:這裏socket:8001對應的是nginx配置文件中的127.0.0.1:8001。若是須要修改則一塊兒修改,必須同步。
nginx 與 uwsgi 與 django 連接
# uwsgi --socket :8001 --module /home/Django_Web/WXH_DJANGOWEB/WXH_DJANGOWEB.wsgi
運行到這裏,訪問瀏覽器時,出現「Internal Server Error」--500錯誤
PS:推測1:是權限問題
uwsgi.ini配置
# vi django_uwsgi.ini
添加如下內容,須要的請本身修改。
# django_uwsgi.ini file
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /home/Django_Web/WXH_DJANGOWEB
# Django's wsgi file
module = WXH_DJANGOWEB.wsgi
# the virtualenv (full path)
# home = /path/to/virtualenv
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# the socket (use the full path to be safe)
# socket = /path/to/your/project/mysite.sock
socket = :8001
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
運行uwsgi.ini
# /usr/local/nginx/sbin/nginx -s reload
# uwsgi --ini django_uwsgi.ini
PS:到了這裏「Internal Server Error」--500錯誤,本身消失了。
PS:訪問瀏覽器80端口,臥槽!! 顯示It worked! django 的It worked!
下一步是安裝mysql
安裝mysql
安裝mysql
# yum install mysql mysql-devel mysql-server、
PS:CentOS7下解決yum install mysql-server沒有可用包的問題
# cd /home/wangxihao
# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-server
啓動mysql
# service mysqld start
# service mysqld stop
啓動mysql(推薦): # systemctl start mysqld
開機啓動: # systemctl enable mysqld
進入mysql配置用戶密碼
不要刪除ROOT權限 媽蛋,初始化系統,從新再來!!
這裏我刪除了root帳號,請你們注意謹慎操做,必定要建立一個可用用戶先。
mysql>delete from user where User!='root';
# mysql
PS:命令交行直接輸入mysql,不須要密碼直接進入mysql
mysql>select Host,User,Password from mysql.user;
mysql>delete from mysql.user where host!='localhost' user!='root';
mysql>UPDATE mysql.user SET Password=PASSWORD('password') where USER='root'
PS:只留下root的localhost權限
建立數據庫並設置wangxihao帳號,在全部地方都而已訪問指定數據庫。
mysql>create database WXH_DJANGOWEB;
mysql>grant all on WXH_DJANGOWEB.* to 'wangxihao'@'%' identified by 'passw@rd';
刷新操做,當即生效。
mysql>flush privileges;
出現過的問題
在修改root密碼時,輸入的命令是:UPDATE mysql.user SET Password='passw@rd' where USER='root';
這樣存在數據庫password字段中的密碼是沒有加密的。而數據庫讀取密碼時是解密讀取。
因此怎麼輸入密碼都是錯誤的。請你們注意。可是也有解決辦法。
解決辦法:
# systemctl stop mysqld
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
# mysql> UPDATE mysql.user SET Password=PASSWORD('newpassword') where USER='root';
# mysql>FLUSH PRIVILEGES;
# mysql>quit;
# systemctl start mysqld
# mysql -uroot -pnewpassword
晚上仍是還好好的,今早在登陸的時候外地客戶端顯示10061錯誤。
# systemctl stop mysqld,報錯,要求看狀態。
# systemctl start mysqld,也報錯
# systemctl status mysqld,狀態看不懂。哈哈
解決辦法:
查看錯誤日誌:
# mysql -uroot -p
# mysql> show variables like 'log_error';
PS:結果顯示錯誤日誌地址,個人是#/var/log/mysqld.log
# mysql>quit;
# vi /var/log/mysqld.log
PS,裏面最後一行一直說mysqld_safe已經存在。「mysqld_safe A mysqld process already exists」
因而乎:
# ps -A|grep mysql
此時顯示了3個mysql、mysqld、mysqld_safe,3個進程存在。
因而乎,我把他們3個殺死了 ……
# kill -9 XXXXX
以後,打開mysqld服務,一切正常。
# systemctl start mysqld
搞定!
連接mysql與Django
到這裏基本環境就搭建好了~等寫完一些功能,再傳服務器,再繼續更新