源碼編譯方式安裝Apache
首先下載Apache源碼壓縮包,地址為http://mirror.bit.edu.cn/apache/httpd/
繼續下載apr和apr-util壓縮包,地址為http://mirror.bit.edu.cn/apache/apr/
下載pcre壓縮包,地址為http://ftp.exim.llorien.org/pcre/
l 安裝arp
tar -zxf apr-1.5.0.tar.gz #解壓壓縮包 壓縮包名稱根據版本號決定 cd apr-1.5.0 #進入解壓目錄 ./configure --prefix=/usr/local/apr #進行安裝配置 設置安裝位置 make #編譯 sudo make install #安裝
l 安裝apr-util
tar –zxvf apr-util-1.5.3.tar.gz #解壓 壓縮包名稱根據版本號決定 cd apr-util-1.5.3 #進入解壓目錄 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config make sudo make install
l 安裝pcre
unzip –o pcre-8.34.zip #解壓 文件名依據版本號而定 cd pcre-8.34 ./configure --prefix=/usr/local/pcre make sudo make install
l 安裝Apache
tar –zxvf httpd-2.4.7.tar.gz #解壓 我安裝的為2.4.7版本 cd httpd-2.4.7 ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ make sudo make install
之后啟動Apache,
cd /usr/local/apache2/bin sudo apachectl –k start 或者 sudo service apache2 start
如果看到如下頁面,說明安裝成功。

如何控制Apache服務
啟動:
sudo service apache2 start 或者 sudo apachectl start
停止:
sudo service apache2 stop 或者 sudo apachectl stop
重啟:
sudo service apache2 restart 或者 sudo apachectl restart
重新加載站點:
sudo service apache2 reload
如何使Apache支持django
采用mod_wsgi的方式。
首先需要下載mod_wsgi-2.4.tar.gz。
可以到官網下載。
還可以到點這里直接下載。
接下來執行如下命令,對壓縮包進行解壓;
tar –zxvf mod_wsgi-3.4.tar.gz
然后cd到解壓之后的目錄,執行如下命令,產生配置編譯配置文件;
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/bin/python
其中/usr/local/apache2為Apache的安裝目錄,確保apxs存在於bin目錄中,/usr/bin/python為Ubuntu中python默認安裝位置。
接下來執行make 命令,進行編譯;
make
最后執行如下命令,進行安裝;
sudo make install
如果到這里都順利的話,會提示“chmod 755 /usr/local/apache2/modules/mod_wsgi.so” 為mod_wsgi.so賦權。如圖:

照着提示輸入命令即可:
chmod 755 /usr/local/apache2/modules/mod_wsgi.so
接下來,安裝Django:
django官網(https://www.djangoproject.com/download/)上提供了兩種安裝方式。
l pip方式
pip install Django==1.6.2
l 直接下載壓縮包安裝,下載地址https://www.djangoproject.com/download/1.6.2/tarball/
tar xzvf Django-1.6.2.tar.gz #先解壓cd Django-1.6.2 #進入解壓后目錄 sudo python setup.py install
上面兩種方式任選一種即可。
安裝完成后可以在終端窗口中查看是否安裝成功

我安裝的是django 1.7版本。
如何新建一個django網站
Apache的默認www服務地址為/var/www,剛剛安裝好服務后,里面只有一個index.html的網頁文件。
接着說一下Apache,由於Apache在Linux下安裝后,安裝文件是分兩部分存在的,一部分在安裝時指定的目錄中,另一部分在/etc/apache2目錄中。
由於我安裝Apache時,指定的目錄是/usr/local/apache2,所以我的機器上apache分布在如下兩個目錄,即:
/usr/local/apache2 #可執行程序目錄
和
/etc/apache2 #配置文件目錄
進入/etc/apache2目錄,查看目錄結構,其中藍色為目錄,白色為文件。

httpd.conf 文件通常是一個空文件,以后設置時可以加入以下指令;
下面我們來看一下httpd.conf中的幾條指令,“#”后加入了注釋說明;
Port 80 #定義了web服務器的偵聽端口,默認值為80,它是TCP網絡端口之一。若寫入多個端口,以最后一個為准。
User apache(Unix平台最流行的WEB服務器平台) #一般情況下,以nobody用戶和nobody組來運行web服務器,因為web
Group apache(Unix平台最流行的WEB服務器平台) #服務器發出的所有的進程都是以root用戶身份運行的,存在安全風險。
ServerAdmin root@localhost #指定服務器管理員的E-mail地址。服務器自動將錯誤報告到該地址。
ServerRoot /etc/httpd #服務器的根目錄,一般情況下,所有的配置文件在該目錄下
ServerName new.host.name:80 #web客戶搜索的主機名稱
KeepAliveTimeout 15 #規定了連續請求之間等待15秒,若超過,則重新建立一條新的TCP連接
MaxKeepAliveRequests 100 #永久連接的HTTP請求數
MaxClients 150 #同一時間連接到服務器上的客戶機總數
ErrorLog logs/error_log #用來指定錯誤日志文件的名稱和路徑
PidFile run/httpd.pid #用來存放httpd進程號,以方便停止服務器。
Timeout 300 #設置請求超時時間,若網速較慢則應把值設大。
DocumentRoot /var/www/ #用來存放網頁文件
magic文件中包含的是有關mod_mime_magic模塊的數據, 一般不需要修改它;
ports.conf則為服務器監聽IP和端口設置的配置文件;
mods-available目 錄下是一些.conf和.load 文件, 為系統中可以使用的加載各種模塊的配置文件, 而mods-enabled目錄下則是指向這些配置文件的符號連接, 從配置文件apache(Unix平台最流行的WEB服務器平台)2.conf 中可以看出, 系統通過mods-enabled目錄來加載模塊, 也就是說, 系統僅通過在此目錄下創建了符號連接的mods-available 目錄下的配置文件來加載模塊。同時系統還提供了兩個命令 a2enmod 和 a2dismod用於維護這些符號連接。這兩個命令由 apache(Unix平台最流行的WEB服務器平台)2-common 包提供。命令各式也非常簡單: a2enmod [module] 或 a2dismod [module];
sites-available目 錄下為配置好的站點的配置文件, sites-enabled 目錄下則是指向這些配置文件的符號連接, 系統通過這些符號連接來起用站點 sites-enabled目錄下的符號連接附有一個數字前綴, 如000-default, 這個數字用於決定啟動順序, 數字越小, 啟動優先級越高. 系統提供了兩個命令 a2ensite 和 a2dissite 用於維護這些符號連接。這兩個命令由 apache(Unix平台最流行的WEB服務器平台)2-common 包提供;
Apache配置介紹到這里,接下來開始配置Django網站。
Apache默認的服務器地址為var/www目錄,沒有必要修改此位置,cd到/var/www目錄,新建Django項目,執行如下命令:
sudo django-admin.py startproject mysite
創建的項目目錄結構如下
mysite/
manage.py
mysite/ __init__.py
settings.py
urls.py
wsgi.py
可以通過
python manage.py runserver 8000
測試django項目是否創建成功。如果提示錯誤,可能是由於django默認使用sqllite數據庫的原因,只要在mange.py同級目錄中添加db.sqllite3即可。
之后,我打算將mysite這個站點,在端口8888下運行。
修改/etc/apache2/ports.conf ,在其中的
NameVirtualHost *:80 Listen 80
下面添加
NameVirtualHost *:8888 Listen 8888
表示VirtualHost *:8888的虛擬主機監聽8888端口,而默認的VirtualHost *:80的虛擬主機監聽80端口。
接下來讓apache來加載我們自己的工程網站,去apache的配置目錄/etc/apache/sites-available, 新建一個我們網站的配置文件。
sudo vim mysite
添加如下配置:
<VirtualHost *:8888> DocumentRoot /var/www/mysite/mysite <Directory /var/www/mysite/mysite> Order allow,deny Allow from all </Directory> WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py</VirtualHost>
在/etc/apache2/httpd.conf添加如下配置:
<VirtualHost *:8888> DocumentRoot /var/www/mysite/mysite <Directory /var/www/mysite/mysite> Order allow,deny Allow from all </Directory> WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py</VirtualHost>
最后在/var/www/mysite/mysite/wsgi.py中添加如下代碼:
import sys
sys.path.append("/var/www/mysite/")
將網站目錄添加到環境變量,如果網站目錄不再環境變量中,會出現錯誤。
激活我新建的mysite網站,執行如下命令:
sudo a2ensite mysite #其中mysite就是sites-available中新建的那個配置文件的名稱
重新加載網站:
sudo service apache2 reload
之后執行
sudo service apache2 restart
重啟apache服務。
在瀏覽器打開127.0.0.1:8888,會看到如下頁面:

注:如果不想新建網站配置文件,可直接在etc/apache2/httpd.conf中添加配加默認配置即可:
WSGIScriptAlias / "/ var/www/mysite/mysite/wsgi.py" <Directory " /var/www/mysite/mysite"> Order Deny,Allow Allow from all </Directory>
初次配置,如有錯誤及疏漏之處,還請各位看官提醒、指點,或者有任何問題也可留言說明。
