ubuntu搭建PHP網站完整實例教程

原文是在我本身博客中,小夥伴也能夠點閱讀原文進行跳轉查看,還有好聽的背景音樂噢~php

ubuntu.jpg

以前寫過兩篇關於ubuntu系統搭建php環境的文章html

在以後的屢次實踐中,發現有些東西尚未說到,這裏就把以後遇到的問題以及方法補充一下,做爲一個完整的在ubuntu下搭建lamp環境的總結。mysql

一鍵安裝lamp

這裏就很少作介紹了,在我以前的文章Ubuntu一鍵安裝LAMP環境也有說明,很簡單的兩個命令,就能夠搭建好lamp;
(博主在搭建php環境的時候,比較傾向於使用一鍵安裝這種懶方式去搭建(除非場景非得是那種各個軟件必須單獨下載安裝的時候,纔會一個一個去安裝),相較於apache、mysql、php程序一個一個的安裝,這樣來的更有效率也更快,配置起來也簡單,同時也能避免出現沒必要要的麻煩)linux

配置數據庫遠程訪問

安裝完lamp環境以後,接下來就是配置咱們的遠程mysql用戶了。這一點很是有用,由於在平常的數據庫操做中,相較於phpmyadmin這種方法,我我的比較喜歡用工具的方式去操做數據庫。推薦一款親民好用的數據庫工具navicat for mysql,工做以來一直使用這款mysql工具進行數據庫操做,大大提高了工做效率;web

言歸正傳,在一鍵安裝程序中,安裝到mysql的時候,會有提示設置一個root的密碼。安裝完成以後,在ubuntu命令行(如下簡稱命令行)訪問mysqlmysql -u root -p,隨後鍵入密碼進入mysql,選擇數據庫:use mysqlsql

建立用戶

命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
例子:數據庫

  1. CREATE USER 'test'@'localhost' IDENTIFIED BY 'test2017666';
  2. CREATE USER 'ycfw'@'%' IDENTIFIED BY 'ycfw2017666';
  3. CREATE USER 'zdip'@'118.119.120.110' IDENTIFIED BY 'zdip2017666';

參數:apache

  1. username:mysql用戶密碼啦
  2. host:指定用戶在哪一個主機上能夠訪問數據庫(localhost指定只能在本地訪問數據庫,%指遠程訪問,任何地方都能訪問,也能夠指定某個ip訪問,例3)
  3. password 訪問密碼

用戶受權

命令:GRANT privileges ON databasename.tablename TO 'username'@'host';
例子:ubuntu

  1. GRANT all ON *.* TO 'test'@'test2017666';(擁有全部數據庫全部操做權限)
  2. GRANT all ON test.* TO 'test'@'test2017666';(擁有test數據庫的全部表操做權限)
  3. GRANT select ON test.test TO 'test'@'test2017666';(擁有test數據庫test表的全部查詢權限)
  4. ......

參數:服務器

  1. privileges:對數據庫的操做權限,能夠是insert、select、update、delete;all爲賦予全部操做權限
  2. databasename和tablename:數據庫和數據庫名稱,這裏指定能夠操做的數據庫,數據表,能夠指定單獨的數據庫或者數據表,所有數據庫均可操做設置 *.*
  3. 'username'@'host':設置受權用戶和主機

設置完成,執行flush privileges刷新mysql權限表

這時候,能夠用新建的遠程用戶嘗試鏈接數據庫了,若是連接上了,那麼數據庫遠程用戶的配置已經完成。若是連接不上,繼續往下看修改mysql的配置項;

查看受權信息

命令:show grants for test@localhost

修改my.cnf

若是在新建了遠程用戶,並經過查看受權信息命令知道新建的遠程用戶權限沒問題的時候,還連接不上。那麼可能還須要再作一步操做,修改my.cnf文件裏的bind-address參數。

my.con文件在mysq目錄下/etc/mysql/,進入到目錄後在mysql的配置文件中找到bind-address,原先爲bind-address=127.0.0.1,修改成bind-address=0.0.0.0

PS:一、因爲ubuntu的版本不一樣安裝下來的mysql版本可能也會不同,因此只要找到相關的mysql配置文件進行修改便可(稍後會在文末貼出相關的參考文章,那裏描述的更爲詳細);二、bind-address的意思是綁定地址,原先爲127.0.0.1綁定的是隻能本地訪問,改成0.0.0.0的話就是任何ip均可以訪問

經過以上的幾點配置,遠程mysql用戶應該就能夠訪問了。

域名綁定

域名配置

這裏再也不介紹從域名供應商那裏解析域名到ip的操做了,直接說在apache2裏的域名配置
關於apache2的域名綁定我以前的文章Linux服務器域名綁定指定目錄(ubuntu下apache2綁定多域名)裏基本上介紹的也很清楚,不過在後來,發現配置域名的配置文件並不須要那麼長,只要下面這一小段就好:

<VirtualHost *:80>
        ServerName www.cxiansheng.cn
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/cxsblog

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

其他的該配置軟鏈接配置軟鏈接,該填寫域名的地方填寫域名,和那篇文章裏的操做差很少了;
PS:當咱們在實際中實現多域名綁定的時候可能總是會出現域名都指向了某一個目錄的狀況,這時候咱們能夠把site-available中的000-default.conf刪掉試一下,可能會解決這個問題。固然仍是要以實際狀況爲準

apache2 路由重寫

一鍵安裝的apache2中通常不會默認開啓rewrite模塊,須要咱們手動開啓
命令行輸入:a2enmod rewrite,它會自動開啓apache的重寫模塊,在/etc/apache2/mod-enabled中生成一條軟鏈接指向mod-available的rewrite.load,假若咱們在執行這個命令以後,發如今目錄中沒有生成軟鏈接,咱們手動生成便可;
命令執行失敗,也能夠手動生成軟鏈接

PS:必需要開啓這個的緣由是:通常在咱們的web項目中都會有一些寫僞靜態(.htaccess)文件,咱們對於url重寫規則都會放在這個文件裏,若是rewrite沒有開啓,那麼apache就不能識別這些規則,致使咱們的網站出現500或者其餘錯誤

apache.conf

/etc/apache2的目錄中找到apache2.conf文件,打開文件,修改其中對於網站路的權限問題,找到

<Directory />
        Options Indexes FollowSymLinks
        AllowOverride none
        Require all denied
</Directory>

修改AllowOverride爲all,AllowOverride的意思是對.htaccess的操做,爲none時會忽略.htaccess文件,致使咱們的僞靜態失效,訪問web項目出現問題;

關於配置option各個值的含義,戳下圖:
option

配置好上面以後,重啓apache,執行/etc/init.d/apache2 restart,這時候

總結

通過以上三節內容的展現,在ubuntu中搭建lamp環境所必須的操做,基本上都在這裏了。通常狀況下,通過上面的步驟以後,網站基本上能夠搭建成功。固然,在平常的實際操做中,可能還會有一些意想不到的狀況發生,到時候就考驗咱們解決問題的能力了。

參考文章

相關文章
相關標籤/搜索