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
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...