Ubuntu 17.10 用 apt 搭建 lamp 環境、安裝 phpmyadmin、redis 服務+擴展、mysql 擴展、開啟錯誤提示、配置虛擬主機

来源:http://www.cnblogs.com/mingc/archive/2017/11/20/7864030.html
-Advertisement-
Play Games

最終環境: Ubuntu17.10、Apache2.4.27、MySQL5.7.20、PHP7.1 1. 安裝 apache 官方源有,直接安裝: 2. 安裝 mysql 官方源有,直接安裝: 安裝期間會提示設置 MySQL administrator 的密碼 PS:需要什麼軟體或包,直接用 apt ...


最終環境:

Ubuntu17.10、Apache2.4.27、MySQL5.7.20、PHP7.1

 

1. 安裝 apache

官方源有,直接安裝:

sudo apt-get install apache2

 

2. 安裝 mysql

官方源有,直接安裝:

sudo apt-get install mysql-server

安裝期間會提示設置 MySQL administrator 的密碼

 

============================================================

PS:需要什麼軟體或包,直接用 apt-cache 搜索

sudo apt-cache search <關鍵詞>

確認包名後,直接用 apt-get install 安裝。

 

3. 安裝 php

官方源有 php7.1,直接安裝:

sudo apt-get install php7.1 php7.1-dev

php7.1 是主程式,php7.1-dev 是 7.1 版的工具包(有 phpize、php-config 等等,phpize 可以為 已編譯好的 php 建立擴展模塊,php-config 可以獲得 php 的詳細配置)。

 

============================================================

如果要裝 php5.6 的話,推薦這個 PPA 源(就算不裝 5.6,也推薦):ppa:ondrej/php這個源有 php5.6 和 php7.x 以及絕大多數的 php 擴展,包括 redis、memcache、mongodb 等等。

添加 ppa:ondrej/php 源:

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

安裝 php5.6:

sudo apt-get install php5.6

 

4. 重啟 apache

sudo /etc/init.d/apache2 restart

更多選項:

Usage: apache2 {start|stop|graceful-stop|restart|reload|force-reload}

 

5. 檢查 apache

訪問 http://localhost/。這是 apache 伺服器的預設頁在 /var/www/html 下,裡面還介紹了 apche 的相關配置文件。

 

6. 檢查 mysql

終端輸入 mysql,跟著打兩個 Tab,看到所有有關 mysql 的命令包:

mingc@mingc-GE60-2PL:~$ mysql
mysql                      mysql_install_db
mysqladmin                 mysqloptimize
mysqlanalyze               mysql_plugin
mysqlbinlog                mysqlpump
mysqlcheck                 mysqlrepair
mysql_config_editor        mysqlreport
mysqld                     mysql_secure_installation
mysqld_multi               mysqlshow
mysqld_safe                mysqlslap
mysqldump                  mysql_ssl_rsa_setup
mysqldumpslow              mysql_tzinfo_to_sql
mysql_embedded             mysql_upgrade
mysqlimport                

輸入 mysql -u<你的賬號> -p ,回車,輸入密碼,進入 mysql:

mingc@mingc-GE60-2PL:~$ mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 73
Server version: 5.7.20-0ubuntu0.17.10.1 (Ubuntu)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

 

7. 檢查  php

php -v

不出意外的話,應該顯示 php 的版本

 

8. 創建 php 探針

sudo vim /var/www/html/info.php

添加如下內容:

<?php
phpinfo();

改變所有者:

sudo chown www-data:www-data /var/www/html/info.php

訪問 http://localhost/info.php,得到有關 PHP 的詳細頁面。

 

9. 安裝 phpmyadmin

sudo apt-get install phpmyadmin

安裝期間,

詢問要連接的伺服器,選擇 apache2;

詢問創建 phpmyadmin 的資料庫,選擇“是”;

詢問設置登錄 phpmyadmin 的用戶和密碼。

然後瀏覽器訪問:http://localhost/phpmyadmin

 

 

10. 安裝 redis 服務和 redis 擴展

官方源有,直接安裝:

(1)redis 伺服器

sudo apt-get install redis-server

期間,一些需要的工具包也會自動安裝。安裝好後,預設自啟動、後臺運行,配置文件在 /etc/redis 目錄下。

(2)redis 擴展

sudo apt-get install php-redis

其他的擴展也可以這麼裝,利用 apt-cache search 搜索包名,再用 apt-get install 安裝。

重啟 apche, sudo /etc/init.d/apache2 restart 

訪問 http://localhost/info.php,確認 redis 擴展:

測試一下:

終端輸入 redis-,跟著打兩個 Tab 鍵,看到有關 redis 的命令和工具:

mingc@mingc-GE60-2PL:~$ redis-
redis-benchmark  redis-check-rdb  redis-server     
redis-check-aof  redis-cli

redis-cli 是 訪問 redis-server 的客戶端介面,執行 redis-cli 即可登錄到 redis 伺服器:

mingc@mingc-GE60-2PL:~$ redis-cli 
127.0.0.1:6379> 

更多 redis-cli 的命令選項,使用 redis-cli --help 查看。

再寫一段 php 腳本測試一下, vim /var/www/html/test_redis.php 

內容如下:

<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
echo "Server is running: " . $redis->ping(); 

 

11. 安裝 mysql 擴展

在上面的 http://localhost/info.php 里可以看到,沒有 mysql 擴展。雖說 php7 里棄用了 mysql 擴展,但有些舊項目還是需要的。裝一下 mysql 擴展。

這裡選擇編譯安裝(通過 apt 安裝的 php-mysql 擴展,如果是 php7.x,那就是裝 pdo_mysql 擴展)

(1)直接從 PECL 官方站 搜索 mysql,找到 MySQL 擴展的 頁面 ,點擊頁面的 [ Browse Source ],選擇最新的 commit、下載 tar.gz 包。我下載後的包名為 mysql-fae9884.tar.gz

(2)編譯安裝:

tar -xf mysql-fae9884.tar.gz
cd mysql-fae9884
phpize
./configure --with-php-config=/usr/bin/php-config
sudo make && sudo make install

前面裝 php7.1 的時候,也裝了 php7.1-dev,這裡面就有 phpize 和 php-config。而 --with-php-config 是 php-config 程式(命令)的位置,可以使用 whereis php-config 查看。

編譯安裝成功後,會有成功提示 和 mysql 擴展模塊(.so 文件)的路徑:

Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/lib/php/20160303/  

然後,編輯 php 用於 apache 的配置文件 /etc/php/7.1/apache2/php.ini,在最後添加一行:

extension=mysql.so

重啟 apache, sudo /etc/init.d/apache2 restart 

訪問 http://localhost/info.php,確認下有了 mysql 擴展。

 

寫一段 php 腳本測試:  vim /etc/www/html/test_mysql.php 

內容如下:

<?php
$mysql = mysql_connect('127.0.0.1', 'root', 'root');
if(!$mysql) {
	die(mysql_error($mysql));
}
echo 'Ok' . "\r\n";

 

12. 開啟 php 和 apache 的錯誤提示

預設不顯示 php 錯誤,下麵開啟。

(1)修改 php 的配置文件,在 /etc/php/7.1/apache2 下,打開 php.ini。

(2)搜索 display_errors = Off,修改為 On

(3)搜索 error_reporting =  E_ALL & ~E_NOTICE,修改為 E_ALL | E_STRICT(搜不到的話就搜短一點:“error_reporting =”)。

(4)修改 apache 的配置文件,在 /etc/apache2 下,打開 apache.conf。

(5)文件最後添加兩行:

php_flag display_errors        on
php_value error_reporting       2039

(6)重啟 apache:

sudo /etc/init.d/apache2 restart

 

13. 創建虛擬主機

創建虛擬主機自然用 apache 配置,瞭解一下 apache 的配置目錄:

/etc/apache2
├── apache2.conf      # 主配置文件,其他的一些配置文件通過 Include 指令包含進來
├── conf-available    # 所有可用的配置文件(裡面的 *.conf 文件內容幾乎都被預設註釋了)
├── conf-enabled      # 可用的配置文件中,啟用了哪些,一般都是符號鏈接、指向上面的 conf-available 目錄里每個 *.conf 文件
├── envvars           # 環境變數
├── magic
├── mods-available    # 所有可用的模塊
├── mods-enabled      # 哪些模塊被啟用了
├── ports.conf        # 定義埠監聽
├── sites-available   # 重點來了:所有可用的站點
└── sites-enabled     # 哪些站點被啟用了

步驟簡單,就是在 sites-available 目錄定義站點配置文件,然後在 sites-enabled 里建立指向這個配置文件的符號鏈接。

(1)建配置

cd /etc/apache2/sites-available/
sudo cp 000-default.conf my.site.conf
vim my.site.conf

修改如下(註意別把註釋與指令行放在一行,會有語法錯誤):

<VirtualHost *:80>
	# The ServerName directive sets the request scheme, hostname and port that
	# the server uses to identify itself. This is used when creating
	# redirection URLs. In the context of virtual hosts, the ServerName
	# specifies what hostname must appear in the request's Host: header to
	# match this virtual host. For the default virtual host (this file) this
	# value is not decisive as it is used as a last resort host regardless.
	# However, you must set it for any further virtual host explicitly.
	
	# 功能變數名稱
	ServerName my.site
	
	# 功能變數名稱別名,可以設置多個,空格隔開
	ServerAlias my.site

	ServerAdmin webmaster@localhost
        
        # 站點根目錄
        DocumentRoot /var/www/my.site
	<Directory "/var/www/my.site/">
	    # 啟用符號鏈接
	    Options FollowSymLinks
	    
	    DirectoryIndex index.php index.html index.htm
	    
	    # 註意這個配置,會影響本地目錄下的 .htaccess 的啟用
	    AllowOverride All
	    
	    Order deny,allow
	    Allow from All
	    
	    # 限制訪問目錄,多個目錄用空格隔開
	    # php_admin_value open_basedir "/var/www/my.site/:/tmp:/usr/lib/php/"
	</Directory>

	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
	# error, crit, alert, emerg.
	# It is also possible to configure the loglevel for particular
	# modules, e.g.
	#LogLevel info ssl:warn

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

	# For most configuration files from conf-available/, which are
	# enabled or disabled at a global level, it is possible to
	# include a line for only one particular virtual host. For example the
	# following line enables the CGI configuration for this host only
	# after it has been globally disabled with "a2disconf".
	#Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

精簡一下就是這樣的:

<VirtualHost *:80>
	ServerName my.site
	ServerAlias my.site
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/my.site
	<Directory "/var/www/my.site/">
	    Options FollowSymLinks
	    DirectoryIndex index.php index.html index.htm
	    AllowOverride All
	    Order deny,allow
	    Allow from All
	    # php_admin_value open_basedir "/var/www/my.site/:/tmp:/usr/lib/php/"
	</Directory>
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

(2)建符號鏈接

cd /etc/apache2/
sudo ln -s ./sites-available/my.site.conf ./sites-enabled/my.site.conf

(3)檢查語法

apachectl configtest

(4)添加 hosts 解析

vim /etc/hosts,添加一行:

127.0.0.1   my.site

(4)重啟apache

sudo /etc/init.d/apache2 restart

然後,按照配置的站點目錄 /etc/www/my.site,創建目錄和測試文件:

sudo makedir -p /etc/www/my.site
cd /etc/www/my.site/
sudo echo "<h2>Hello, Welcome to my.site!</h2>" > index.html

瀏覽器訪問 http://my.site

OK,完成~~

 

本文永久更新地址:http://www.cnblogs.com/mingc/p/7864030.html 

 

參考鏈接:

相關鏈接:


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

-Advertisement-
Play Games
更多相關文章
  • [20171120]11G關閉直接路徑讀.txt--//今天做filesystemio_options參數測試時,遇到一個關於直接路徑讀的問題.--//如果看以前的博客介紹,設置"_serial_direct_read"=never或者events '10949 trace name context ...
  • 要使用Linux系統很重要的一個操作就是使Linux系統能夠訪問互聯網,只有Linux系統能夠訪問互聯網才能夠去下載很多自己所需要的資源,如果不能訪問互聯網那麼使用Linux系統往往會卡在這一步,假設你裝的是一個minimal版本的CentOS,那麼很多Linux系統下麵的工具都是沒有被安裝的,這個 ...
  • 第1章 批量添加3個用戶stu01-stu03,設置密碼為123456. 1.1 預備知識 前的產生的命令通過管道後可以交給bash運行 1.2 命令的樣子 目標命令的形狀,想讓命令變成這個樣子執行。 1.3 命令的生成 1.3.1 第一步 生成名字 1.3.2 第二步 拼接出想要的形狀 兩條命令之 ...
  • 引用原文地址 : https://msdn.microsoft.com/en-us/library/x98tx3cf.aspx 1. 在program中嚴格按下麵順序include 2. 必須是Debug版的build Q : LiteServer遍Debug可能會遇到一些問題 A : 可以用來驗證 ...
  • && : 邏輯與,都為真則真 ||: 邏輯或,一個為真則為真 !:邏輯非, &:按位與 |:按位或 ~:按位取反 ^:按位異或,相異為1.例如A=0b11001100,B=0b11110000,F=A^B=0b00111100 時鐘周期:晶振就是時鐘源,就是晶振分之一。 機器周期:完成一個操作的最短 ...
  • 本節學習目的 1)分析Linux中的OSS音效卡系統 2)移植wm9876音效卡 3)使用madplay應用程式播放mp3 1.聲音三要素 採樣頻率 音頻採樣率是指錄音設備在一秒鐘內對聲音信號的採樣次數, 常用的採樣率有: 8KHz - 電話所用採樣率, 對於人的說話已經足夠清除 22.05KHz - ...
  • 目的: 使類似於樹莓派的AARCH-64架構的嵌入式設備能通過USB無線網卡連接上乙太網; 該設備有LAN介面,但在前一次系統固件升級後,其內部的三個網路介面可以相互ping通,但任一介面無法ping通外部網路介面,目前該問題還沒有解決; 另外實驗室還涉及到連接外部網路的許可權問題,所以就想是否可以通 ...
  • zabbix 監控的搭建、使用--詳解 zabbix 是一個基於WEB界面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...