LAMP環境的搭建

来源:http://www.cnblogs.com/stinson/archive/2016/02/23/5203982.html
-Advertisement-
Play Games

【一些前言廢話】一名web開發尤其是後端不懂LAMP環境的搭建,那就攤上事了,有些人說他一直用win下的wampServer這種傻瓜式環境搭建,用的挺好的,也有人說他用雲伺服器,搭配“一鍵搭建LAMP環境”大法也挺好用的,是的,這些在初學的時候都是可以先用上的,但是“不知其所以然”的習慣一旦養成,很


【一些前言廢話】一名web開發尤其是後端不懂LAMP環境的搭建,那就攤上事了,有些人說他一直用win下的wampServer這種傻瓜式環境搭建,用的挺好的,也有人說他用雲伺服器,搭配“一鍵搭建LAMP環境”大法也挺好用的,是的,這些在初學的時候都是可以先用上的,但是“不知其所以然”的習慣一旦養成,很多事情就不再好奇,不再想去一探究竟,到某天也就失去了前行的動力,所以我還是會一步一步來搭建下LAMP環境,說不定會遇到一些迷之bug...

目的

如何從零開始在本地虛擬機搭建一個LAMP環境以便我們進行本地測試,遠程伺服器上搭建是一樣一樣的

系統和軟體

WIN8.1 64位
VMware Workstation
Xshell

一、在虛擬機上下載安裝 Ubuntu Server LTS

VM虛擬機如何建立不在這裡贅述,Ubuntu Server鏡像可以在Ubuntu官網上找到,Server表示伺服器版本,而LTS表示 Long Term Support,長時間支持版本,至少支持4年。本文用的是14.04.4。

如何安裝Ubuntu系統也不贅述,安裝過程相對簡單,有問題可以另行參考其他資料。

如果是遠程伺服器,像國內的阿裡雲等雲伺服器,一般在你選擇購買產品時會讓你選擇安裝的系統,所以就不用自己下載安裝了。

註意:在虛擬機安裝系統後,虛擬機網路連接方式一般我們選NAT方式,以便於我們接下去的SSH遠程連接。

二、SSH終端工具遠程連接伺服器

SSH是一種協議,也可以理解為一種服務,以一種安全的方式允許用戶遠程登錄主機進行操作,SSH終端軟體也有很多,大同小異,這裡我們推薦使用Xshell,可以從官網下載免費版,夠用了。為什麼推薦使用遠程連接,而不是虛擬機裡面直接操作呢?因為我們儘量模擬真實的工作環境,虛擬機里直接操作好比我們在伺服器機房直接操作,這在現實中幾乎不會這麼做,所以就算我們本地使用,還是推薦使用SSH終端。

打開Xshell,文件 -- 新建,只需要填寫這幾個地方就可以設置好一個連接。

這裡的ip,如果你是遠程伺服器,這個ip你購買產品的時候就會告訴你,如果是本地虛擬機,你不知道,那怎麼辦?可以進入虛擬機,利用ifconfig命令查看當前的ip

這裡我們的登錄名,不用root登錄,這是一個好習慣,root用戶許可權太大,很不安全,普通用戶可以依靠susudo命令執行root用戶許可權命令。

設置好後可以連接,填寫密碼,第一次連接會彈出提示框,選“接受保存”。

連接成功後

三、利用apt-get安裝Apache MySQL PHP

apt-get是ubuntu安裝軟體包的一個工具,原理是首先準備一個源列表,這個列表包括了許許多多ubuntu可以下載安裝的軟體,然後安裝的時候就是在這上面選擇相應的安裝包下載安裝。

首先執行sudo apt-get update命令進行源列表的更新,而後準備安裝 A M P

安裝Apache,執行sudo apt-get install apache2,中間有確認環節,需要鍵入Y,註意有時小寫的y是不行的。
安裝好後在瀏覽器鍵入伺服器的ip地址,看到apache預設頁面就說明apache安裝完成。

安裝MySQL,執行sudo apt-get install mysql-server
安裝MySQL過程中會要求輸入MySQL的root密碼(註意這個root是資料庫的root而不是伺服器的root)。安裝完成後執行mysql --version,如果看到版本信息,說明mysql已經被安裝。

安裝PHP,執行sudo apt-get install php5
執行php5 -v,如果出現php的版本信息,就說明PHP已被安裝。

註意,如果先安裝PHP再安裝MySQL,那麼可能需要的MySQL擴展沒有被安裝到PHP中,需要手動安裝,當我們執行cat /etc/php5/mods-available/mysql.ini命令時,我們發現提示找不到這樣的文件或目錄就說明在PHP中我們的MySQL擴展沒有被載入,因為PHP安裝是預設不載入的,於是我們需要手動載入MySQL擴展。

執行sudo apt-get install php5-mysql命令,為PHP安裝MySQL擴展。然後重啟MySQL和Apache服務,執行sudo service mysql restartsudo service apache2 restart重啟服務。

而如果是執行cat /etc/php5/mods-available/mysql.ini命令可以看到extension=mysql.so,那就是mysql擴展被正確載入。

四、創建phpinfo伺服器探針查看是否LAMP環境正常工作

預設的伺服器目錄為/var/www/html目錄,所以我們通過cd /var/www/html進入此目錄創建一個info.php文件(記得使用sudo以超級用戶創建,否則保存不了的),文件內容如下:

<?php

echo mysql_connect('localhost','root','這裡填寫資料庫root的密碼,每個人不一樣')?'連接資料庫成功':'居然失敗了';

phpinfo();

?>

此時回到瀏覽器,當我們訪問這個PHP文件時,比如"http://192.168.17.129/info.php"時會出現“伺服器錯誤”,原因是PHP文件需要有許可權被執行,這樣才能被解析,所以可以用chmod命令賦755的許可權給info.php文件,註意以上的操作都是需要超級用戶許可權的,重啟下apache服務,再去訪問,發現就會出現正確的顯示:

此時,說明資料庫連接已經沒有問題,同時也可以看到phpinfo給出的相關信息。

至此,證明我們的LAMP環境已經初步搭建成功。

五、LAMP環境配置文件簡單瞭解

通過apt-get安裝的軟體,配置文件都在/etc目錄下,apache配置文件在/etc/apache2目錄下,php在/etc/php5下,mysql在/etc/mysql下。

apache配置文件,進入/etc/apache2目錄,其中apache2.conf是總配置文件,將其餘的配置文件都包含進來形成的,使apache的配置成模塊化,不至於使配置文件太大同時又使配置項的條理清晰。核心的配置項是mods-*sites-*文件夾,帶尾碼關鍵詞available的是可使用的配置,而帶enabled的是當前使用的,通過在enabled建立軟連接來指向available中的配置文件以達到激活某種配置的目的。
php和mysql配置文件,mysql配置核心文件是其目錄下的my.cnf文件,php是其自身配置目錄下的php.ini文件。

六、虛擬主機的配置

讓多個功能變數名稱解析到一臺伺服器,伺服器根據不同來源的功能變數名稱進入不同的目錄進行操作。

這裡如果不是具有真實功能變數名稱進行,僅僅本地實驗的話,可以通過修改本地的host文件將某個功能變數名稱解析到指定的ip(也就是你自己伺服器的ip)。

假設我們有兩個二級功能變數名稱,blog.test.com和info.test.com,我們有兩個目錄/www/blog/和/www/info/分別對應兩個功能變數名稱處理的目錄,在兩個目錄下我們可以創建不同的index.html測試頁面,然後我們來進行apache多站點虛擬主機的配置。

進入/etc/apache2/sites-available目錄,找到預設配置文件000-default.conf,複製該文件內容到當下目錄的一個新建的配置文件,我們可以取名blog.conf,我們再編輯此配置文件:

<Directory /www/blog>   //這裡改成你的虛擬主機目錄
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
<VirtualHost *:80>
        ServerName blog.test.com    //這裡改成你的功能變數名稱
        ServerAdmin webmaster@localhost
        DocumentRoot /www/blog      //這裡改成你的虛擬主機目錄

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost> 

同樣,我們類似的編輯info.conf配置文件,註意修改相應地方。

然後執行sudo a2ensite blog.confsudo a2ensite info.conf將該配置文件在sites-enabled文件夾下創建軟鏈接,當然你也可以自己手工創建軟鏈接,然後重啟apache服務。

訪問下不同的兩個子功能變數名稱,看看是否成功,如果是Forbidden,那就註意文件的許可權問題哦。

七、phpMyAdmin的安裝

執行sudo apt-get install phpmyadminsudo ln -s /usr/share/phpmyadmin/ /var/www/pma 即可完成phpmyadmin的安裝,至於其相關的配置等可自行參考其餘資料。

至此,基本上完成了LAMP環境的搭建,而至於其詳細配置,路漫漫其修遠兮...


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • <!DOCTYPE html><html><head><meta charset="utf-8"/><title>NEC:更好的CSS方案</title><meta name="keywords" content=""/><meta name="description" content=""/><m
  • mkdir dir1 創建一個叫做dir1的目錄 pwd 顯示工作路徑 cat filename 顯示文件信息
  • 1.插入U盤,磁碟工具,格式化U盤為Mac OS X拓展 (日誌式); 2.去網站搜索recovery disk assistant,此文件大約1.1M,直接打開使用它製作啟動盤,進度條完畢就完成了。 (這個文件我下載好了,在spotlit裡面搜索recoverydiskassistant就找到了)
  • cd -> 變換路徑 //文件一般存在/var/路徑下,var為可修改存儲盤 ls -> 列出所有隱藏文件與相關文件的屬性 #ls -al #ls -al -rwxrwxrwx 1 root root 293 2016-02-23 test 文件屬性 連接數 文件擁有者 文件所屬用戶組 大小 時間
  • 一、什麼是SSH? 簡單說,SSH是一種網路協議,用於電腦之間的加密登錄。 如果一個用戶從本地電腦,使用SSH協議登錄另一臺遠程電腦,我們就可以認為,這種登錄是安全的,即使被中途截獲,密碼也不會泄露。 最早的時候,互聯網通信都是明文通信,一旦被截獲,內容就暴露無疑。1995年,芬蘭學者Tatu
  • 1. 先編輯一個解壓腳本ins.sh 1 #!/bin/bash 2 preline=10 3 line=`wc -l $0|awk '{print $1}'` 4 line=`expr $line - $preline` 5 tail -n $line $0 |tar xz -C ./ 6 #do
  • 安裝 Centos 7後, 習慣性的安裝 Xmanager 3或4, 都不能正常工作, 無奈之下開始安裝 VNCServer。 (個人習慣使用Xmanager, 因為不需要安裝,只要配置一下就能用, 而且一直很穩定) 為了節省以後安裝 vncserver 的時間,寫這篇文章作備忘用 安裝/配置: 使
  • 這是一個關於怎樣在你的 CentOS 7 上安裝配置 VNC 服務的教程。當然這個教程也適合 RHEL 7 。在這個教程里,我們將學習什麼是 VNC 以及怎樣在 CentOS 7 上安裝配置 VNC 伺服器 。 我們都知道 這是一個關於怎樣在你的 CentOS 7 上安裝配置 VNC 服務的教程。當
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...