php編譯安裝,安裝Nginx,nginx虛擬主機

  • php編譯安裝 - php下載地址:https://www.php.net/downloads.php
  • 如圖,有不一樣版本的php能夠下載
  • 下載最新的穩定版本
  • 如圖,點擊下載
  • 如圖,在下載管理頁面,複製下載地址,而後取消下載
  • 如圖,cd 進入 /usr/local/src 目錄
  • 而後使用 wget + 下載地址
  • 這樣就能夠把 php 壓縮包下載到當前的 src 目錄裏面了
  • 這個目錄就是用做下載文件包的目錄
  • 如圖,下載好壓縮包,如今須要解壓縮
  • 要解壓縮後綴名爲 bz2 的文件,如圖,須要安裝 bzip2 包
  • 而後才能夠解壓縮 bz2 格式的文件
  • 如圖,安裝好bzip2包後,使用命令 tar jxvf + 壓縮包文件名稱 解壓文件
  • 如圖,成功解壓出來 php=7.3.10 目錄
  • 解壓完成後,就須要編譯安裝了
  • 上圖是 vi 操做小技巧
  • 要編譯安裝軟件包,分爲3個部分
  • 首先是配置編譯參數,須要預設一些參數
  • 而後是make開始編譯,把源碼包編譯成爲二進制包
  • 最後是安裝,就是用二進制包進行安裝
  • 如圖,cd 進入 php-7.3.10 文件夾
  • 就是剛纔解壓縮出來的目錄
  • 如圖,通常源碼包裏面都有安裝幫助文件
  • 就是 INSTALL 文件
  • vi 打開這個文件,看到裏面有一個網址
  • 這個網址應該是安裝幫助文檔的網址
  • 由於是跟nginx一塊兒使用的,因此查看 nginx 1.4x 的安裝文檔
  • 上圖是現成的配置文件代碼,也能夠直接套用上圖配置
./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysqli --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --enable-soap --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl
  • 直接套用這個代碼配置編譯參數
  • 複製到xshell裏面,直接回車,就會開始檢測
  • 編譯過程通常會有一些錯誤
  • 如圖,通常來講這個 gcc包都是要安裝的
  • 如圖,檢測出現錯誤,根據這個錯誤信息
  • 猜想應該是 libxml2 的包沒有安裝
  • 如圖,使用 yum list | grep libxml2 搜索跟 libxml2 有關的包有哪些
  • 能夠看到有這樣包存在
  • 這些包裏面,通常來講用的是 libxml2.devel.x86_64
  • devel 是開發者的意思
  • 這裏安裝一下這個包
  • 而後繼續使用編譯配置代碼從新進行檢測
  • 如圖,從新檢測,又出現錯誤了
  • 根據錯誤信息判斷,多是缺乏 OpenSSL 有關的包
  • 繼續使用 yum list | grep OpenSSL 搜索跟這個名詞有關的包
  • 如圖,使用 yum list | grep -i OpenSSL 搜索
  • 使用 -i 選項是爲了忽略大小寫
  • 若是不使用 -i 只能搜索 OpenSSL 的包
  • 可是如圖,咱們實際須要的是 openssl-devel 包
  • 若是不忽略大小寫的話是沒辦法搜索到 openssl 這樣小寫的單詞的
  • 使用 yum install -y openssl-devel 安裝這個包
  • 安裝好以後,繼續使用配置文件代碼檢測
  • 如圖,又發現錯誤
  • 根據錯誤信息,猜想跟 cURL 包有關
  • 繼續使用 yum list | grep -i curl 搜索相關的包
  • 如圖,此次須要安裝的包是 libcurl-devel
  • 因此使用 yum install -y libcurl-devel
  • 安裝完成後,繼續使用配置文件代碼檢測
  • 如圖,根據錯誤信息,猜想跟 jpeglib 有關的包
  • 繼續使用 yum list | grep -i jpeg
  • 如圖,須要的是 libjpeg-turbo-devel 包
  • 因此使用 yum install -y libjpeg-turbo-devel
  • 安裝完成後繼續使用配置文件代碼檢測
  • 如圖,此次錯誤跟 png 有關
  • 繼續使用 yum list | grep -i png | grep devel
  • 這樣能夠篩選兩次,先篩選 png的包,再篩選帶有 devel的包
  • 如圖,libpng-devel 是咱們須要的包
  • 使用 yum install -y libpng-devel
  • 安裝完成後繼續使用配置文件代碼檢測
  • 後續還有可能出現別的錯誤,若是出現跟freetype有關的錯誤信息
  • 就安裝上圖的這個包 freetype-devel
  • 如圖,配置文件代碼檢測成功,使用 echo $? 測試,返回 0
  • 說明沒有錯誤發生
  • 這樣就表示配置沒有問題了
  • 不過還有可能會出現的一個情況是,mariadb版本與php版本不兼容
  • 若是配置文件檢測出現這個錯誤
  • 就應該使用能夠適配php版本的mariadb版本
  • 如圖,這就是數據庫版本與php版本不適配的錯誤信息
  • 如圖,這是警告的錯誤信息
  • 表示配置文件代碼裏面,--with-mysql,xxx,xxx
  • 這3個選項是不支持的
  • 由於php不一樣的版本,有些選項上一個版本支持,下一個版本不支持
  • 這裏就是說明這三個選項在這個版本是不支持的選項,須要刪除
  • 直接刪除,再從新測試就行了
  • 測試經過之後,就能夠開始編譯了
  • 如圖,直接輸入 make 而後回車
  • 下面就會出現一些編譯的信息,如今等待編譯完成
  • 不過編譯過程也可能錯誤
  • 若是出現錯誤,可能須要從新編譯或者解決錯誤
  • 如圖,編譯過程出現了這個錯誤
  • 意思是有一些庫文件找不到
  • 以前的配置文件代碼裏面,有一個選項 --with-mysqli=xx/xx/xx
  • 以前這個地址是指向/usr/local/mysql/bin/mysql_config 這個路徑的
  • 可是經過這個路徑,有一些庫文件找不到
  • 上圖缺失的庫文件,老版本的 mysql 或者 mariadb 裏面是有的
  • 由於最新的mariadb版本可能比php版本要新,因此php版本須要的一些文件
  • 新版的mariadb裏面可能沒有,因此還有下載一個老版的mariadb
  • 使用 yum install -y mariadb 能夠下載 5.x 版本的mariadb
  • 下載完成後,把 --with-mysqli 後面的地址去掉
  • 只留下 --with-mysqli 這個選項,這樣系統就會自動在全部目錄裏面搜索
  • 由於安裝了老版本的mariadb,系統自動搜索到老版本mariadb的庫文件
  • 就會直接使用了,這樣就解決了這個新版數據庫缺乏老版本文件的問題了
  • 解決問題後,從新配置文件檢測,而後 make
  • 如圖,build complete 表示編譯成功了
  • 如圖,編譯完成後,使用 make install 安裝編譯好的文件
  • 其實就是把編譯好的文件拷貝到 /usr/local/php-fpm 目錄裏面
  • 這個目錄是以前在配置文件代碼裏面定義好的
  • 安裝完成後,如圖,進入 /usr/local/php-fpm/ 目錄
  • ls 查看目錄內容,找到 etc 目錄
  • cd 進入 etc 目錄,ls查看內容
  • 能夠看到,有一個叫作 php-fpm.conf.default
  • 這個文件是php-fpm服務的配置文件模板
  • 目前 php-fpm配置文件還不存在,因此須要將模板複製一份
  • 當作配置文件使用
  • 如圖,把模板文件複製一份,並重命名爲 php-fpm.conf
  • php-fpm.conf 就是服務的配置文件了
  • 除了fpm服務的配置文件以外,還須要一個php的配置文件
  • 如圖,進入源碼包的目錄 /usr/local/src/php-7.3.10/
  • 找到圖中的兩個文件,分別是 php.ini.development , php.ini.production
  • 這兩個文件就是php的配置文件,可是用途不一樣
  • php.ini.development 是用於測試環境的
  • php.ini.production 是用於生產環境的
  • 就是若是使用php的機器是用來作測試的,就使用 development
  • 用來生產的,就用 production
  • 咱們的機器是用來學習測試的,因此就用 development
  • 如圖,diff 能夠比較兩個文件內容有什麼不一樣之處
  • 兩個文件之中不相同的內容就會顯示在下面
  • 如圖,須要把 php.ini.development 複製一份到 /usr/local/php-fpm/etc/ 目錄下面
  • 而且重命名爲 php.ini
  • 如今兩個配置文件都有了
  • 就須要配置啓動腳本了
  • 如圖,在 /usr/local/src/php-7.3.10/ 目錄下
  • 使用命令 cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  • 就是把php-7.3.10目錄裏面的一個文件 init.d.php-fpm
  • 複製一份到 /etc/init.d/ 目錄下面
  • 而且重命名爲 php-fpm
  • 這樣就算配置好服務啓動腳本了
  • 而後使用 chkconfig --add php-fpm 添加一下php-fpm服務到服務列表
  • 如圖,查看服務列表,能夠看到php-fpm出現了
  • 如圖,開啓 php-fpm服務,提示權限不夠
  • 如圖,提示權限不夠,因此使用 chmod 755 /etc/init.d/php-fpm 修改文件權限爲755
  • 而後從新啓動service,可是仍是顯示錯誤信息
  • 按照提示,是143行的問題,跟 pool有關
  • 如圖,使用 vi 打開這個配置文件
  • 要定位 143 行,能夠先讓文件顯示行數
  • 通常模式下,使用 :set nu 回車
  • 這樣就能夠顯示文件的行數
  • 直接輸入 143 + ctrl + g 就能夠直接定位到143行
  • 就是先輸入143,而後按 ctrl+g 也就是大寫的G
  • 就能夠定位到前面輸入數字的行數
  • 如圖,定位到了 143行
  • 這是一個路徑,能夠cd進入 /usr/local/php-fpm/etc/php-fpm.d/目錄查看一下
  • 如圖,進入這個目錄後,查看內容
  • 發現只有一個 www.conf.default 文件
  • 這也是一個模板文件
  • 如圖,把模板文件複製一份,並重命名爲 www.conf ,這就是要使用的文件
  • 啓動php-fpm服務還要配置池子,也就是 pool
  • 這個www.conf 就是pool的配置文件,也是必需要有的
  • 監聽什麼端口,使用哪一個socket就是這個配置文件決定的
  • 如今建立了pool的配置文件,從新啓動服務
  • 如圖,仍是發生錯誤
  • 看錯誤信息,跟 user php-fpm 有關
  • 這是由於,以前在配置php的時候,指定了php的用戶是 php-fpm
  • 可是這個用戶尚未被建立,因此如今須要建立這個用戶
  • 使用命令 useradd php-fpm
  • 如圖,再啓動 php-fpm 服務,此次沒有錯誤了
  • 如圖,檢查一下是否啓動,pa aux | grep php-fpm
  • 能夠看到,服務以及啓動了
  • 如圖,netstat -lntp 查看tcp協議的信息
  • 能夠看到 php-fpm 監聽了 9000 端口
  • 檢查事後,說明php-fpm成功啓動了

安裝Nginx

  • nginx 有兩種安裝方法
  • 一種是編譯安裝
  • 一種是yum安裝
  • 先講編譯安裝的方法
  • 首先進入nginx官網: http://nginx.org/
  • 如圖,能夠看到有各類各樣的版本
  • 應該下載帶有 stable 字樣的版本
  • stable 表示這是穩定版而不是測試版
  • 點擊一個要下載的版本,進入這個下載的頁面
  • 能夠看到有三個分類,分別是 mainline,stable,legacy
  • mainline 是指正在開發的版本,至關於測試版
  • stable 是最新的穩定版本
  • legacy 是過去老的穩定版本
  • 咱們下載最新的穩定版本 1.16.1
  • 如圖,點擊下載,而後將下載地址複製
  • 到linux 裏面使用 wget 下載
  • cd 進入 /usr/local/src/ 目錄,這是專門放下載包的目錄
  • 如圖,使用 wget + 下載地址 下載壓縮包
  • 下載完成後,如圖, tar zxvf 壓縮包名稱 ,進行解壓縮
  • 解壓完成後,須要編譯安裝,能夠查看官網的文檔
  • 如圖,點擊右邊的 documentation
  • 進入 installing 頁面,點下面的源碼安裝(building nginx from sources)
  • 能夠看到,這裏有各類編譯參數的說明文檔,能夠研究一下
  • 翻到本頁的最下面,能夠看到一個配置編譯參數的示例
  • 如圖,通常來講,只須要配置上圖中的兩個編譯參數就夠了
  • 這個編譯參數裏面,prefix是配置nginx的安裝目錄的
  • with-http_ssl_module是配置ssl模塊的,有這個模塊,纔可使用ssl的服務
  • 如圖,首先進入解壓縮出來的目錄,nginx-1.16.1
  • 而後使用 ./configure --prefix=/usr/local/nginx --with-http_ssl_module 命令進行配置
  • 如圖,配置過程沒有出錯,還可使用 echo $? 檢測是否有錯誤
  • 返回 0 表示配置過程沒有出錯
  • 如圖,配置完成就使用 make && make install 命令進行編譯安裝
  • 這條命令會先執行 make ,如圖沒有錯誤就會繼續執行 make install
  • make是編譯的命令,make install 是安裝的命令
  • 就是把編譯好的文件複製到指定的安裝目錄裏面
  • 如圖,編譯安裝完成,使用 echo $? 檢測,返回 0
  • 表示編譯安裝沒有問題
  • 編譯安裝過程之中,有可能出現 zlib 或者 pcre not found 之類的錯誤
  • 若是有這個錯誤,就使用上圖的命令安裝 zlib-devel,pcre-devel這兩個包就好了
  • nginx 的啓動命令的路徑是 /usr/local/nginx/sbin/nginx
  • 使用這個路徑就能夠啓動 nginx
  • 還有兩種方法能夠簡單的使用 nginx命令 就能夠啓動nginx服務
  • 好比把這個目錄加入到環境變量的目錄裏面,就能夠直接使用 nginx命令了
  • 或者對/usr/local/nginx/sbin/nginx這個路徑作一個軟連接
  • 放到環境變量的目錄裏面也是可行的
  • 如圖,nginx 服務啓動了,master process 是主進程
  • worker process 是子進程,不少服務是由不一樣的子進程提供的
  • 主進程就是管理全部子進程的
  • 可是如今沒有啓動腳本,只能手動使用 /usr/local/nginx/sbin/nginx 來啓動服務
  • 這樣不方便管理
  • 如圖,cd /usr/local/nginx/conf/ 進入這個目錄
  • nginx 的配置文件就存放在這個目錄裏面
  • nginx.conf文件就是nginx的配置文件
  • 如圖,netstat -ltnp |grep nginx 查看nginx監聽的端口是哪一個
  • 這裏顯示爲 80 端口
  • 上面能夠看到 worker子進程的用戶是 nobody
  • 默認就是nobody,若是想改變子進程的用戶
  • 就能夠在nginx配置文件裏面定義

  • 除了手動安裝nginx之外
  • 還可使用 yum 來安裝
  • 首先仍是進入nginx官網
  • 上圖文檔就是 yum 安裝nginx的文檔
  • 如圖,首先要建立 /etc/yum.repos.d/nginx.repo 這個文件
  • 使用命令 vi /etc/yum.repos.d/nginx.repo
  • 建立並打開這個文件,目前裏面是空的,須要複製一些文件內容進去
  • 如圖,把上圖的內容複製到 /etc/yum.repos.d/nginx.repo 這個文件裏面去
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
  • 如圖,右邊的 nginx-stable 表示倉庫源是 nginx-stable
  • 就是從剛纔編輯的源文件獲得的
  • 咱們要下載到的是 nginx.x86_64
  • 能夠看到版本是 1.16.1
  • 首先使用 killall nginx 把nginx的服務所有關閉
  • 若是沒有killall命令,也可使用 pkill nginx 殺死nginx進程
  • 如圖,ps 查看nginx進程,能夠看到nginx 進程已經沒有了
  • 而後須要把以前安裝的nginx刪除,才能夠yum安裝新的nginx
  • cd /usr/local/ 進入安裝目錄
  • rm -rf nginx 這樣就刪除了 /usr/local/nginx/ 目錄了
  • /usr/local/nginx就是以前指定的安裝目錄
  • 而後就能夠用yum安裝了,yum install -y nginx
  • 執行以上命令,系統就會自動安裝nginx了
  • 使用yum的方法安裝nginx後
  • nginx的配置文件的路徑是 /etc/nginx/nginx.conf
  • 使用 nginx -v 能夠查看版本信息
  • 使用 nginx -V 能夠查看yum編譯安裝時的配置參數
  • 如圖,要啓動nginx 可使用 systemctl start nginx
  • 能夠看到,nginx服務啓動了
  • 若是要關閉服務,可使用 systemctl stop nginx
  • 重啓服務是 systemctl restart nginx
  • 如圖,若是修改了nginx的配置文件
  • 可使用 nginx -t 檢查配置文件是否有語法錯誤
  • yum 安裝nginx 比較方便管理,安裝過程也是全自動
  • 推薦使用 yum 安裝nginx

nginx虛擬主機

  • 虛擬主機就是 host(域名)
  • 從http1.1開始支持虛擬主機的功能
  • 之前,一個web服務,只能支持一個host
  • 後來有了虛擬主機的功能,一個web服務就能夠支持多個host
  • 也就是一個nginx服務,能夠運行多個網站
  • 每一個網站都是不一樣的域名(host)
  • 如圖,cd 進入 /etc/nginx/ 目錄
  • 能夠看到有個文件 nginx.conf ,這是nginx的配置文件
  • vi 打開 nginx.conf 文件查看內容
  • 如圖,這是 nginx.conf 的內容
  • 在 http 的括號內,最後一行
  • include /etc/nginx/conf.d/*.conf;
  • 這行代碼意思是 /etc/nginx/conf.d/ 目錄內的
  • 以 .conf 作結尾的文件都會被加載
  • conf.d 目錄內的每一個以 .conf 結尾的文件都是一個虛擬主機配置文件
  • 因此要配置虛擬主機,就須要到 /etc/nginx/conf.d/ 目錄去配置
  • 如圖,進入conf.d目錄,ls 查看目錄內容
  • 能夠看到,只有一個 default.conf 文件
  • 也就是說,目前只有一個默認的虛擬主機存在
  • vi default.conf 打開文件,查看內容
  • 第一個部分是 server 代碼塊
  • 每個 server 代碼塊,就表明了一個虛擬主機
  • server 代碼塊內部,定義了虛擬主機的一些屬性
  • listen 80 表示這個虛擬主機監聽了80端口
  • server_name localhost 表示域名
  • 也就是host名稱,這裏host叫作 localhost
  • 這個域名是能夠自定義的
  • root /usr/share/nginx/html; 是定義根目錄
  • 每一個host都要對應一個根目錄
  • 跟這個虛擬主機有關的文件就放在根目錄裏面
  • 好比這個網站的文章,圖片,網頁文件等等
  • index index.html index.htm; 表明索引頁
  • 訪問這個網站的時候,首先進入的就是索引頁
  • 也就是若是訪問這個網站,會進入 index.html這個頁面
  • 在windows瀏覽器上面,輸入linux虛擬機的ip地址
  • 由於開啓了nginx服務,因此輸入虛擬機ip能夠訪問nginx裏面的虛擬主機
  • 可是這裏顯示沒法訪問,多是端口不通
  • 登陸第二臺虛擬機,使用 telnet 192.168.64.128 80
  • 檢測第一臺虛擬機這個ip地址端口是否能夠連通
  • 顯示沒有該命令,就安裝一下 yum install -y telnet
  • 如圖,使用telnet檢測ip端口是否連通,信息顯示 no route to host
  • 這說明這個80端口是不通的
  • 端口不通通常是由於防火牆限制了
  • 回到第一臺虛擬機,使用 iptables -nvL 查看一下防火牆
  • 如圖,firewalld 開啓了,因此80端口多是被控制了,沒法連通
  • 有兩種方法能夠開放80端口
  • 一種是關閉firewalld防火牆,第二種是把80端口加入白名單
  • 關閉 firewalld 可使用 systemctl stop firewalld
  • 不過關閉防火牆不太安全,通常來講仍是不要關閉
  • systemctl start firewalld 打開firewalld
  • 使用命令 firewall-cmd --add-prot=80/tcp --permanent
  • 就能夠增長 開放80端口的規則 到firewalld裏面
  • 可是如今尚未生效,須要從新加載一下firewalld規則
  • 使用命令 firewall-cmd --reload
  • 這樣就能夠從新加載firewalld規則
  • 放開80端口後,再到第二臺虛擬機telnet一下
  • 如圖,此次沒有什麼錯誤信息出來,成功連通了
  • 從新到瀏覽器輸入虛擬機ip 192.168.64.128 就進入上圖頁面了
  • 成功鏈接
  • 若是想修改網站域名,能夠 vi /etc/nginx/conf.d/default.conf
  • 在這個配置文件裏面修改
  • 如圖,這裏原本是 localhost,如今修改成 www.aaa.com
  • 這樣,這個網站的域名就被修改成 www.aaa.com 了
  • 修改完域名,保存退出,如圖,使用 nginx -t 檢測配置文件
  • 信息顯示沒有語法錯誤
  • 而後須要使用 nginx -s reload 重載配置文件
  • 配置文件修改了以後須要從新載入才能生效
  • 也可使用 systemctl restart nginx 重啓nginx服務
  • 這樣也能夠重載配置文件,可是這樣會中斷nginx進程
  • 中斷進程,別人就服務訪問這個網站了
  • 若是使用 nginx -s reload 重載就不會中斷進程
  • 重載過程當中,別人仍是能夠訪問這個網站
  • 因此應該使用重載,不要使用重啓比較好
  • 如今host域名修改成了 www.aaa.com
  • 可是仍是不能使用這個域名訪問這個網站
  • 由於這個域名尚未跟 192.168.64.128 這個ip綁定
  • 因此就算輸入這個域名,也沒辦法鏈接到這個ip地址來
  • 要把主機ip地址,和虛擬主機的域名綁定
  • 使用 vi /etc/hosts 編輯這個文件
  • 如圖,文件內寫 ip地址,後面寫域名
  • 而後保存退出
  • 這樣就在本機上面把這個域名跟ip地址綁定了
  • 如圖,在本機上面 ping 一下 www.aaa.com 這個域名
  • 是能夠連通的
  • windows裏面也有host文件
  • 如圖,在 c:/windows\system32\drivers\etc 目錄下面
  • 就有 hosts 文件
  • 如圖,用記事本打開hosts文件,輸入虛擬機ip地址和域名
  • 這樣,在windows上面,這個ip地址就跟這個域名綁定了
  • 使用這臺電腦訪問這個域名的時候,就會鏈接到這個ip地址去
  • 如圖,在windows瀏覽器,輸入www.aaa.com ,就進入了這個頁面
  • 成功鏈接了這個網站
  • 如圖,還能夠寫第二個域名,用兩個域名均可以鏈接到這個ip地址
  • 一個ip地址能夠綁定多個域名,使用不一樣的域名能夠鏈接到同一個ip地址
  • 如今,訪問的這個nginx的虛擬主機,就是默認虛擬主機
  • 默認虛擬主機就是 nginx 的第一個虛擬主機
  • 如圖,把 default.conf 配置文件複製一份,並重命名爲 2.conf
  • 這樣就有兩個配置文件了,也就是有兩個虛擬主機了
  • ls 查看,2.conf 顯示在前面
  • 也就是說 2.conf 變成了默認虛擬主機
  • 通常來講,若是有多個虛擬主機文件,排在最前面的,就是默認虛擬主機
  • 可是,還有一種方法,能夠手動指定某一個虛擬主機爲默認虛擬主機
  • 目前有兩個虛擬主機配置文件,default.conf 和 2.conf
  • vi default.conf 編輯這個文件
  • 如圖,在 80端口後面,寫上 default_server
  • 而後保存退出
  • 這樣就手動指定了 default.conf 爲默認虛擬主機
  • 還須要 vi 2.conf 修改域名爲 www.ccc.com
  • 由於 2.conf 是直接複製 default.conf 來的
  • 裏面的配置信息都同樣,可是這是兩個虛擬主機
  • 域名不能是同樣的
  • 還要修改 2.conf 的根目錄
  • 兩個不一樣的虛擬主機,除了域名,根目錄也不能是相同的
  • 這裏修改成 /tmp/html 目錄
  • 而後保存退出
  • 如圖,nginx -t 檢測配置文件有沒有語法錯誤
  • 而後 nginx -s reload 從新加載配置文件
  • 由於剛纔指定了 www.ccc.com 的根目錄是 /tmp/html/
  • 目前這個目錄還不存在,因此須要建立一個
  • mkdir /tmp/html/
  • 而後在html目錄內建立並追加一些內容進 index.html這個文件
  • 由於 www.ccc.com 這個虛擬主機的索引頁面就是 index.html
  • 可是目前根目錄裏面沒有這個文件,因此須要建立一個
  • 而後還須要往裏面輸入一些內容,方便辨認
  • 因此使用 echo 1111 > /tmp/html/index.html
  • 這樣就能夠建立 /tmp/html/index.html 這個文件
  • 而且把 1111 這個內容寫入文件裏面
  • 如圖,想在windows瀏覽器訪問 www.ccc.com 這個虛擬主機
  • 還要把 www.ccc.com 這個域名跟服務器ip地址進行綁定
  • 用記事本打開,把域名寫在 ip 地址後面
  • 如今有三個域名綁定了這個 ip 地址
  • 訪問這三個域名,都會鏈接到這個 ip 地址
  • 如圖,因爲ccc域名被佔用了,因此 2.conf 的域名修改成 www.ddd.com
  • hosts 文件裏面也要修改成 www.ddd.com
  • 如圖,在windows瀏覽器中,輸入 www.ddd.com
  • 能夠看到,跳轉到一個頁面,內容爲 1111
  • 這就是剛纔建立的 index.html文件的內容
  • 如圖,輸入域名 www.bbb.com
  • 跳轉的頁面跟 www.aaa.com 如出一轍
  • 目前只配置了兩個虛擬主機,一個是 www.aaa.com ,另一個是 www.ddd.com
  • 並無配置 www.bbb.com 這個虛擬主機,爲何 www.bbb.com 能夠跳轉 www.aaa.com 頁面呢
  • 這是由於設置了 www.aaa.com 虛擬主機爲默認虛擬主機
  • 在 windows上面的 hosts文件裏面,www.bbb.com 綁定了 nginx 服務器的ip地址
  • 因此在windows瀏覽器上面輸入 www.bbb.com 就會跳轉到 nginx 服務器
  • 可是沒有配置 www.bbb.com 的虛擬主機的狀況下
  • nginx 就會讓這個域名鏈接到 默認虛擬主機去
  • 沒有指定虛擬主機的鏈接,鏈接到nginx服務器上時,自動全都會鏈接到默認虛擬主機上
  • 可是這樣會產生一個問題
  • 別人可使用任意域名綁定服務器的ip地址
  • 就能夠訪問服務器的默認虛擬主機,這不是咱們想要的
  • 應該是隻能經過指定的域名,纔可以訪問到網站
  • 這纔是咱們想要的
  • 因此,通常都是要把 默認虛擬主機禁掉
  • 這樣其它機器就只能經過 指定的域名來訪問虛擬主機了
  • 如圖,vi default.conf 編輯配置文件
  • 在 server_name 下面一行,加入 deny all;
  • 這樣,就能夠把這個默認虛擬主機禁掉
  • 這樣服務器裏面就沒有默認虛擬主機了
  • 兩個虛擬主機都只能經過指定的域名進行訪問
  • 修改完,保存退出
  • nginx -t 檢測配置文件語法錯誤
  • nginx -s reload 重載配置文件
  • 設置了禁用默認虛擬主機後,如圖
  • 使用 www.bbb.com 直接就是 403 頁面
  • 使用 www.aaa.com 就能夠正常跳轉到虛擬主機
  • 這就說明,禁用默認虛擬主機生效了

  • 如今開始,能夠嘗試作一個博客在服務器上面
  • 如圖,首先,cp 2.conf tom.blog.conf
  • 複製 2.conf 並重命名爲 tom.blog.conf
  • tom.blog.conf就是第三個虛擬主機的配置文件
  • 虛擬主機配置文件的名稱應該以域名做爲名稱
  • 由於若是有不少虛擬主機的話,不用域名做爲名稱就會很難分別哪一個配置文件對應哪一個虛擬主機
  • 因此用域名作配置文件名稱方便管理
  • 如圖,在windows的hosts文件裏面加入 tom.blog.com
  • 這樣就可使用這個域名鏈接到nginx服務器的ip地址了
  • 如圖,還須要 vi tom.blog.conf
  • 把配置文件內的域名修改成 tom.blog.com
  • 這樣使用 tom.blog.com 鏈接到服務器的時候
  • nginx 就會跳轉到這個虛擬主機上去了
  • 不過這樣只有內網能訪問這個虛擬主機
  • 若是要外網也能訪問,就須要去dnspod作域名解析
  • 在dnspod裏面,把這個域名跟服務器的ip地址進行綁定
  • 這樣才能使用這個域名,經過外網訪問
  • 如圖,除了修改域名,還須要修改根目錄
  • 這裏修改成 /tmp/tomblog 目錄爲根目錄
  • 而後使用 ctrl + z 能夠暫停當前任務
  • 回到shell界面
  • 如圖,vi tom.blog.conf 的任務被中止了
  • 跳到了shell界面,使用 mkdir /tmp/tomblog/
  • 建立了 tomblog 目錄,由於指定了這個目錄爲根目錄
  • 可是這個目錄不存在,因此須要建立一個
  • 若是要回到 vi tom.blog.conf 任務
  • 可使用命令 fg 回車 就能夠回到剛纔暫停的任務裏去
  • 如圖,除了修改域名和根目錄,還有別的要改
  • 作博客準備使用 workpress 來作
  • 這是一個php寫的程序,能夠用來管理博客
  • 因此這個虛擬主機的配置文件裏面要增長對 php的支持
  • index 那一行,增長了 index.php
  • 這是 php程序要用的文件
  • 下面的 location 代碼塊原本是被註釋掉的代碼塊
  • 如今把註釋符號刪除,使這個代碼塊生效
  • 這個也是php程序須要用到這個代碼塊配置
  • 代碼塊內部,root行後面的值
  • 修改成 /tmp/tomblog; 就是根目錄
  • 由於php程序要放到這個根目錄裏面,因此這裏要定義爲根目錄
  • 而後下面的 fastcgi_param 那一行後面的值
  • 把 $fastcgi_script_name 前面的值刪除
  • 在前面加上 /tmp/tomblog ,也是根目錄
  • 其它的註釋信息都刪掉了,沒什麼做用
  • 而後保存退出
  • 使用 nginx -t 檢測配置文件錯誤
  • 沒錯就使用 nginx -s reload 重載配置文件
  • 而後百度下載 wordpress
  • 複製下載地址
  • cd /tmp/tomblog/ 進入虛擬主機根目錄
  • 使用 wget + 下載地址 把wordpress下載到根目錄裏面
  • 如圖,下載好就解壓縮出來
  • 如圖,使用 mv wordpress5.3/* ./
  • 意思是把 wordpress5.3目錄下面的全部文件
  • 挪到當前目錄下,也就是根目錄下
  • 符號 * 是通配符,wordpress5.3/* 表示這個目錄下面的全部文件
  • 符號 . 表示當前目錄,因此 ./ 表示當前目錄
  • 這樣 wordpress5.3目錄下的文件就所有移動到根目錄下了
  • 而後須要把 wordpress5.3目錄,還有壓縮文件都刪除掉
  • rm -rf wordpress5.3 wordpress5.3.zip
  • 使用上面命令把wordpress目錄和壓縮文件都刪除
  • 使用ls命令查看根目錄文件,能夠看到,有一個文件
  • index.php,這個文件是以前在配置文件裏面,定義到索引頁面那一行去了
  • 若是訪問這個虛擬主機,首先會進入 index.php 這個文件生成的索引頁面
  • 如圖,訪問 tom.blog.com 域名
  • 就跳轉到這個 wordpress 安裝頁面了
  • 這樣頁面就是 index.php 文件生成的頁面
  • 這樣 wordpress 鏈接配置成功了
  • 而後就是更深刻的功能的安裝了,下章筆記繼續記錄
相關文章
相關標籤/搜索