1. 程式人生 > >Ubuntu 搭建Web伺服器(MySQL+PHP+Apache)詳細教程 (全網最全)

Ubuntu 搭建Web伺服器(MySQL+PHP+Apache)詳細教程 (全網最全)

Ubuntu 搭建Web伺服器(MySQL+PHP+Apache)詳細教程 (全網最全)

看了好多人的部落格,有的不全 or 有問題,整理了一下,適合小白
新手先整理幾個小問題

1.為啥使用 Linux 搭建伺服器?
一個是因為主流的雲伺服器太貴,買個低配的容易崩,聽說 Linux 比較穩定,之後

2.PHP 和 Apache 啥關係?
一說到 php,  很多人會本能地想到 apache, 其 php 和 apache 沒有半毛錢的關係
php 是語言, 而apache是web伺服器

3.What is LAMP?
LAMP:Linux+Apache+Mysql/MariaDB+Perl/PHP/Python

4.啥是 Linux 包管理器,為啥我的用不了?
(1)Linux 的常用包管理器 apt rpm yum 安裝系統時是沒有的,需要自己安裝,就類似 windows 裡面的新增/刪除程式
(2)Ubuntu 預設的包管理器為 apt,而 rpm,yum 是 Redhat 的軟體包管理器
(3)Ubuntu 絕大多數用 apt 就夠了,當然也可以用 rpm yum 包管理器

1.安裝 rpm 

apt install rpm

2.安裝 yum

apt install yum

5.怎麼檢視 apt 管理的所有包,使用命令:

apt list

怎麼檢視 apt 所有已經安裝的包,使用命令:

apt list --installed

一、Ubuntu 安裝 MySQL

1.開啟 Ubuntu 終端,使用下面速度命令進入管理員許可權

sudu su

輸入系統的密碼

2.Ubuntu 上安裝 mysql 非常簡單隻需要幾條命令就可以完成

apt-get install mysql-server
 
apt-get install mysql-client
 
apt-get install libmysqlclient-dev

執行命令時會提示輸入 Y 表示同意

3.Ubuntu 安裝 net-tools

apt install net-tools

4.檢查是否安裝成功

sudo netstat -tap | grep mysql

如果看到有 mysql 的socket處於 listen 狀態則表示安裝成功

5.登陸mysql資料庫可以通過如下命令:

mysql -u root -p 
-u 表示選擇登陸的使用者名稱, -p 表示登陸的使用者密碼,上面命令輸入之後會提示輸入密碼,此時輸入密碼就可以登入到 mysql
(預設會有一個 root 使用者,密碼也為:root)

6.然後就可以檢視當前的資料庫

show databases;

7.然後就是 MySQL 的一些操作了
分享我整理的 MySQL 常用命令:MySQL 常用命令大全

二、Ubuntu 安裝 Apache2

1.Ubuntu 安裝 Apache2

apt-get install apache2

輸入 Y 同意

2.檢查是否安裝成功,在瀏覽器輸入地址:

http:localhost

截圖:

3.apache 的預設的一些目錄
預設文件根目錄是在 ubuntu 上的 /var/www 目錄
配置檔案是 / etc/apache2/apache2.conf
配置儲存在的子目錄在/etc/apache2 目錄

4.我怎麼手動開啟/關閉 Apache 伺服器呢?
(一般 Apache 伺服器會自動啟動)
(1)重啟 Apache 伺服器(常用)

sudo /etc/init.d/apache2 restart

(2)開啟 Apache 伺服器

sudo /etc/init.d/apache2 start

(3)關閉 Apache 伺服器

sudo /etc/init.d/apache2 stop

三、安裝安裝 php 7.0

1.這裡安裝比較多,也是為了以後少一些麻煩,使用命令

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:ondrej/php && sudo apt-get update

sudo apt-get -y install php7.2

# 如果之前有其他版本PHP,在這邊禁用掉

sudo a2dismod php5
sudo a2enmod php7.2

# 安裝常用擴充套件(建議安裝)
sudo apt-get -y install php7.2-fpm php7.2-mysql php7.2-curl php7.2-json php7.2-mbstring php7.2-xml  php7.2-intl php7.2-odbc php7.2-cgi

#  安裝其他擴充套件(按需要安裝)
sudo apt-get install php7.2-gd
sudo apt-get install php7.2-soap
sudo apt-get install php7.2-gmp      
sudo apt-get install php7.2-pspell     
sudo apt-get install php7.2-bcmath   
sudo apt-get install php7.2-enchant    
sudo apt-get install php7.2-imap       
sudo apt-get install php7.2-ldap       
sudo apt-get install php7.2-opcache
sudo apt-get install php7.2-readline   
sudo apt-get install php7.2-sqlite3    
sudo apt-get install php7.2-xmlrpc
sudo apt-get install php7.2-bz2
sudo apt-get install php7.2-interbase
sudo apt-get install php7.2-pgsql      
sudo apt-get install php7.2-recode     
sudo apt-get install php7.2-sybase     
sudo apt-get install php7.2-xsl     
sudo apt-get install php7.2-dba 
sudo apt-get install php7.2-phpdbg     
sudo apt-get install php7.2-snmp       
sudo apt-get install php7.2-tidy       
sudo apt-get install php7.2-zip

然後靜靜等待安裝完成

四、介紹 Nginx

1.什麼是 Nginx ?
Nginx (engine x) 是一個高效能的 HTTP 和反向代理服務

2.不太懂,那 nginx 和 php 有什麼關係?
php 是一門程式語言,但是隻有 php 的話,你的 php 只能在你的伺服器裡的執行,比如你用 php 寫了一個可以通過身高計算人的標準體重的程式,雖然這個程式可以在伺服器執行,但是他還不能和客戶互動,因為客戶現在還不能訪問你的 php 程式,他也不會去下載你的 php 程式到自己電腦裡執行,他只想默默的通過瀏覽器告訴你他的身高,然後得到這個程式返回的體重,那麼誰來得到這個使用者傳送過來的請求呢,又怎麼把請求資料轉發給對應的 php 程式呢 ?
nginx 就是為了解決上述問題而出現的,nginx 是一個已經寫好的程式,需要安裝配置,作用是專門接收處理客戶通過瀏覽器等傳送來的請求,並和你寫的 php 程式互動,就這麼簡單,但是 nginx 不僅可以和你寫的 php 程式互動,也可以和你寫的其他程式互動,比如 C,python,因為不是所有人都用 php 來寫 web 程式,簡單點說 nginx 是一個可以監聽處理 http 請求(瀏覽器請求)的程式,會裝會配置,知道流程就可以用了,當然深入瞭解下就更好了。

 這樣的話,nginx 就可以比喻處理成處理 http 請求業務的部門,是伺服器和外部千千萬萬瀏覽器等客戶端進行溝通的關口。php 是伺服器內部一個數據加工部門,可以加工生成各種頁面。客戶端傳送的 http 請求歷經層層路由到達你的伺服器,然後被nginx 逮個正著,統一聽候 nginx 大人的排程,如果客戶請求的是其他靜態資源,比如 txt 文字,圖片等,nginx 直接找到該資源,並返回給客戶端,如果客戶請求的是 php 程式,就找到對應的 php 程式,然後把客戶資料給這個程式,讓這個 php 程式執行一遍,再把這個程式執行的結果返回給客戶端。

  當然 nginx 和 php 具體互動並沒有那麼簡單,還需要保證規範和高效,在資料交換上,需遵守統一的規範,這個好理解,大家統一資料格式才不會亂套,效率才會更高。

更多文章

轉載請註明出處:https://www.cnblogs.com/xpwi/p/9817440.html