Apache2 服務配置 ubuntu16.04 + django1.11

(步驟)javascript

環境

  • Ubuntu 16.04
  • Python 3.5.2
  • Django 1.11
  • Apache 2.4

1.Apache2安裝

sudo apt-get install apache2 查看版本 apachectl -v Server version: Apache/2.4.18 (Ubuntu) Server built: 2017-09-18T15:09:02

2.確保有127.0.0.1 localhost,修改本地hosts文件

sudo vim /etc/hosts 127.0.0.1 localhost 127.0.0.1 www.pyweb.cn

3.打開瀏覽器 輸入 127.0.0.1或localhost

出現 Apache2 Ubuntu Default Page
或It works!
則成功

4,安裝apache2解析python的包 wsgi程序包

sudo apt-get install libapache2-mod-wsgi-py3
安裝完成後 進入 /usr/lib/apache2/modules 目錄 cd /usr/lib/apache2/modules 查看是否存在mod_wsgi.so-3.5

5.配置使apache2加載mod-wsgi包

編輯配置文件
sudo vim /etc/apache2/apache2.conf 在文件的最後 添加 LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so-3.5

6,建立網站配置文件

編輯網站配置文件
sudo vim /etc/apache2/sites-available/推薦和項目同名或者使用域名.conf

配置內容:
<VirtualHost *:80> # 服務端口號 web服務默認80不推薦修改 ServerName www.pyweb.cn # 指定域名 剛剛修改的hosts文件添加的域名 ServerAdmin py@163.cn # 郵箱隨便 #wsgi文件目錄 講apache和django鏈接在一塊兒 WSGIDaemonProcess python-path=/var/www/project # python-path=/var/www/項目名字 WSGIScriptAlias / /var/www/myproject/myproject/wsgi.py # /var/www/項目名/項目同名的文件夾/wsgi.py <Directory /var/www/myproject/myproject> # /var/www/項目名/項目同名目錄 <Files wsgi.py> Require all granted </Files> </Directory> #項目文件目錄 DocumentRoot /var/www/myproject # /var/www/項目名 指定項目目錄 <Directory /var/www/myproject> Require all granted </Directory> #靜態文件目錄 # 指定項目靜態資源路徑 Alias /static/ /var/www/myproject/static/ # /var/www/項目名/static/ <Directory /var/www/myproject/static/> Require all granted </Directory> #錯誤日誌 日誌名能夠本身定義 ErrorLog ${APACHE_LOG_DIR}/django-myproject-error.log CustomLog ${APACHE_LOG_DIR}/myproject-django.log combined </VirtualHost>

7,將當前的配置文件建立一個軟鏈接到/etc/apache2/sites-enabled

cd /etc/apache2/sites-enabled sudo ln -s ../sites-available/自定義名字推薦域名.conf ./ 

8,執行命令 生效當前配

sudo a2ensite myproject.conf 若是須要讓這個配置失效,能夠執行 sudo a2dissite myproject.conf

9,配置Django項目目錄及修改seeting.py文件,

首先把myproject項目目錄拷貝至 /var/www/目錄下 在將其ALLOWED_HOSTS=[]改成 ALLOWED_HOSTS=['www.pyweb.cn'],多個域名能夠經過逗號隔開。

10,修改Django的wsgi.py文件

import os os.environ["DJANGO_SETTINGS_MODULE"] = "myproject.settings" # myproject.settings 改爲 項目名.settings 不改會報服務器內部錯誤 from os.path import join,dirname,abspath PROJECT_DIR = dirname(dirname(abspath(__file__))) import sys sys.path.insert(0,PROJECT_DIR) from django.core.wsgi import get_wsgi_application application = get_wsgi_application()

11.最後:重啓apache2

sudo service apache2 restart 和python manage.py runserver 測試環境不一樣 在Apache 下每次修改都要重啓apache

文件上傳錯誤

給static文件夾或項目目錄文件遞歸追加一個www-data用戶權限 sudo setfacl -R -m u:www-data:rwx 項目文件夾名/ 

 

在配置apache的時候,出現了問題,好不容易把apache服務配置好php

可是隻能用在Ubuntu裏訪問那個具備標誌性的網頁,It works !css

在ubuntu 服務器裏我是這樣訪問的java

首先,查看服務器的內網IPpython

而後用elinks 命令linux

elinks http://172.17.45.112nginx

而後我又在個人電腦裏面用外網訪問,可是一直是不能夠的,我一直查資料,可是就是找不到,web

那些方法都解決不了,後來我想到個人是阿里雲服務器,而後就去了阿里官網,找,終於找到了,sql

裏面是這樣介紹這個問題的apache

緣由分析:安全組默認沒有放行網站使用的端口(如80端口)。你須要自行放行該端口

而後順藤摸瓜,找到了問題的解決方法

在安全組規則裏面添加了一個安全組規則

添加安全組規則以下 :

這裏有個教我設置,這裏你能夠根據他提供的設置好

而後我再打開瀏覽器訪問個人公網地址

而後就能夠訪問了!!!

這樣公網ip地址就能夠訪問遠程apache了.

 重點來了:

以後用公網訪問阿里雲服務器的apachehost地址, 只出現It works ! 頁面.

最後是以前配置的問題,在6,建立網站配置文件裏,Servername 寫的假域名,這個只能在本地瀏覽器進行域名訪問.是假的騙本身的.

若是想要聯網遠程訪問,Servername 應該寫本身的服務器公網IP,而後在本身配置的項目路徑/var/www/web/settings.py 裏 ALLOW_HOST['*'] 或者 ALLOW_HOST['本身的公網ip'] 監聽全部端口,即全部端口都能訪問.

linux 下 apache啓動、中止、重啓命令

Linux系統爲Ubuntu

1、Start Apache 2 Server /啓動apache服務

  # /etc/init.d/apache2 start
  or
  $ sudo /etc/init.d/apache2 start

2、 Restart Apache 2 Server /重啓apache服務

  # /etc/init.d/apache2 restart
  or
  $ sudo /etc/init.d/apache2 restart

3、Stop Apache 2 Server /中止apache服務

  # /etc/init.d/apache2 stop
  or
  $ sudo /etc/init.d/apache2 stop

項目最後一點驗證碼的問題: 

首先在雲服務器安裝字體

以ubuntu服務器爲示例:

首先,先安裝字體庫所須要的控件

apt-get install xfonts-utils

apt-get install fontconfig

apt-get install ttf-dejavu-core 
而後,將你下載好的字體文件放置到以下位置(.ttf文件):

 

將下載好的字體複製到/usr/share/fonts/truetype/路徑下

(Linux的字體都在/usr/share/fonts這個目錄裏,一種字體就是這個目錄下面的一個子目錄。

注意,若是把Windows某個字體的ttf文件複製到某個新建的子目錄裏面,

還須要在子目錄裏用root用戶身份依次執行以下三條命令,這個字體才能用,並非複製到/usr/share/fonts目錄就能夠用了.)

而後,在fonts路徑下執行如下命令行

sudo mkfontscale (建立字體的fonts.scale文件,它用來控制字體旋轉縮放)

sudo mkfontdir (建立字體的fonts.dir文件,它用來控制字體粗斜體產生)

sudo fc-cache -fv (創建字體緩存信息,也就是讓系統認識認識雅黑)創建路徑和緩存以後,重啓服務器或者重啓服務,讓系統識別新加入的字體庫。

最後就是導入驗證碼的Pillow包.

安裝Pillow:pip install pillow       查看: pip3 list

這樣驗證碼就好使了.

 

最後的最後: 

在阿里雲購買了二手域名. 域名解析我本身的服務器地址.

而後再項目裏配置好服務器web.conf裏的Servername的服務器名字改爲本身的域名,以前是用公網Ip訪問的, 開啓Apache.

相關文章
相關標籤/搜索