配置最新版LAMP環境

来源:http://www.cnblogs.com/fengyumeng/archive/2017/08/14/7356070.html
-Advertisement-
Play Games

本篇文章講解的是在centos7.3下配置 Apache2.4 + MySQL5.7 + PHP7.1.8 一.Apache 1.查看httpd包是否可用yum list | grep httpd 2.安裝Apacheyum install httpd 3.配置servernamevi /etc/h ...


 

本篇文章講解的是在centos7.3下配置 Apache2.4 + MySQL5.7 + PHP7.1.8


一.Apache

 

1.查看httpd包是否可用
yum list | grep httpd

 

2.安裝Apache
yum install httpd

 

3.配置servername
vi /etc/httpd/conf/httpd.conf
修改這行: ServerName localhost:80

 

4.啟動
systemctl start httpd

如果啟動失敗 請註意錯誤信息 一般來說新安裝的軟體都會啟動成功 我當時啟動失敗後是用ps -aux | grep httpd命令發現進程被占用 所以kill -9 進程號 把httpd的進程殺乾凈 再啟動 就OK了

 

5.設置開機啟動
chkconfig httpd on

 


二 MySQL

1.安裝MySQL源
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

 

2.安裝MySQL
yum install mysql-community-server

 

3.啟動MySQL
systemctl start mysqld

 

4.獲取密碼
grep 'temporary password' /var/log/mysqld.log
得到這行A temporary password is generated for root@localhost: Jqqskhz1Wr(? 冒號後面的就是密碼

 

5.進入MySQL
mysql -uroot -p

 

6.修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY ********** (密碼請用引號包起來 註意MySQL的密碼必須複雜 不複雜會報錯)

 

7.開放遠程訪問許可權
use mysql;
update user set host = '%' where user = 'root';
百分號相當於*號,意為全部放行,也可改為IP地址則只允許此IP連接,也可以設置為192.168.%.%或者192.168.0.1/9代表允許一個ip段進行連接,也可以多加幾條數據設置不同ip允許連接。

 

8.MySQL許可權管理。(只寫乾貨,不懂的請自行Google)

 

create user 'myqiutian'@'%' IDENTIFIED BY '*********';
創建一個用戶為myqiutian,因為用的%所以任何IP都可以登錄,但登錄後卻無法看到資料庫,新增用戶所有許可權預設關閉。

 

懶人請用這一行:
grant all on *.* to myqiutian;設置該用戶所有資料庫所有表擁有所有許可權

 

grant select on A資料庫.* to myqiutian;
授權myqiutian這個用戶可以查看A資料庫里的所有表,但是僅限於A資料庫,也僅限於查看。

 

grant insert on A資料庫.user to myqiutian;
授權myqiutian這個用戶可以對A資料庫里的user表進行insert操作,但僅限於user表,也僅限於select和insert操作。

 

撤銷許可權
revoke insert on A資料庫.user from myqiutian;
註意:撤銷許可權之前最好用show grants for myqiutian;這條sql查一下該用戶有哪些許可權,增加的什麼許可權就撤什麼許可權,你增加的insert就不能撤銷all。

 

MySQL許可權工作流程:
--------->用戶連接MySQL
--------->查詢user表 核對賬號密碼 檢查host欄位 是否允許你的ip進行連接
--------->查詢user表 其他許可權欄位 值若為Y 代表用戶對所有資料庫所有表所有欄位都擁有該許可權 若有值為N 則往下走
--------->查詢db表 庫許可權控製表 獲取該用戶對哪些庫擁有哪些許可權 這張表裡一條記錄代表一個庫
--------->查詢tables_priv表 獲取該用戶的表控制許可權 同樣 如果db表中該用戶對A資料庫擁有insert許可權 那麼不管tables_priv表中如何設置 都不會影響該用戶的isnert許可權,如果tables_priv表中的單表許可權不為all,則繼續往下走
--------->查詢columns_priv表 欄位控制 可以設置對錶欄位的控制許可權

 

 

四個表依次為 user db tables_priv columns_priv

 

註意:
如果user表中全為Y,那麼不會查詢下麵的表。
user表中的select為N時,可以在db表中指定哪些庫可以被用戶看到。
但是無論是表控制還是欄位控制,上級許可權表(user表除外)的select欄位必須為Y。
而其他許可權如果上級表給出了設置,那麼不會採用下級表的設置。


具體許可權欄位請查閱官方手冊:
http://www.yesky.com/imagesnew/software/mysql/manual_Privilege_system.html#Privileges_provided


8.刷新許可權 立即生效
flush privileges;


別忘了這裡有一個配置文件cat /etc/my.cnf 可以查看存儲的數據與log的位置。

 


三:PHP7

1.通過ftp將php源碼包上傳到Linux上,或者通過wget線上下載也可以。因為沒有找到我要的最新版的7.1.8的包,所以我就去官網下載來傳到Linux上進行使用,
將包放到/usr/local 並cd進去。(ftp的內容請查看我上一篇文章,php7的包請點擊分享鏈接進行下載:http://pan.baidu.com/s/1dEYQjoX)

 

2.解壓
tar -zxvf php-7.1.8.tar.gz

 

 

3.進入解壓包安裝一些必要的依賴
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel

 

4.安裝gcc
yum install gcc

 

5.安裝
yum -y install libxslt-devel*
yum -y install perl*
yum -y install httpd-devel
find / -name apxs 得到的路徑是:/usr/bin/apxs
於是得到--with-apsx2的路徑是/usr/bin/apxs

 

5.配置
./configure --prefix=/usr/local/php7 --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath -enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-pcntl --with-curl --with-fpm-user=nginx --enable-ftp --enable-session --enable-xml --with-apxs2=/usr/bin/apxs


6.編譯
make

 

7.編譯出現錯誤請查閱這篇博客:
http://www.cnblogs.com/sweetXiaoma/p/5855732.html
感謝博主分享經驗讓學者收益。

 

8.編譯檢查
make test
這步可走可不走,因為它老是愛提示錯誤,但又不給錯誤信息,如果有問題,那麼編譯的時候一定不成功,既然編譯成功了,那麼可以直接進行安裝。

 

9.安裝
make install

 

10.添加環境變數
vi /etc/profile
在末尾加入:
PATH=$PATH:/usr/local/php7/bin
export PATH

 

11.使改動立即生效
source /etc/profile

 

12.查看php版本
php -v
(如果有問題 請檢查添加的環境變數是否是PHP安裝目錄里的bin目錄)


13.生成必要文件
cp php.ini-production /usr/local/php7/etc/php.ini
cp sapi/fpm/php-fpm /usr/local/php7/etc/php-fpm
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

 


14.配置
如果報錯 請敲這行查報錯信息 可以查到哪個文件第幾行出錯:
systemctl status httpd.service

 

修改Apache預設歡迎頁:
vi /etc/httpd/conf.d/welcome.conf
將/usr/share/httpd/noindex 修改為/var/www

 

修改Apache配置:
vi /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/"
(請註意,/var/www這個路徑是自定義,在配置文件中有好幾處這個路徑,如果更改,請全局搜索一下都改掉)

找到
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在後面添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .php7

搜索<IfModule dir_module>下麵這一塊添加上index.php
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

搜索有沒有下麵這一行:
LoadModule php7_module modules/libphp7.so
如果沒有 請手動添加 否則 會出現運行php文件變成下載

 

在最下麵配置功能變數名稱
<VirtualHost *:80>
DocumentRoot /var/www
ServerName www.你的功能變數名稱.com
ServerAlias 你的功能變數名稱.com
<Directory /phpstudy/www>
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>


15.測試
在www目錄下創建index.php
添加<?php phpinfo();?>
訪問:www.你的功能變數名稱.com

 


感謝閱讀

 


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

-Advertisement-
Play Games
更多相關文章
  • /** * @return int|mixed * $user 返回的時候是需要解密的 */ function is_login(){ $user = session('user_auth'); if (empty($user)) { return 0; } else { return sessio ...
  • 本次重構優化內容 1 前端頁面增加JS判斷 2 使用JSTL+EL替換JSP語句 3 Servlet增加用戶名是否重覆檢查 註冊頁面 userReg.jsp 後臺Servlet ...
  • 題目背景 令 夜 色 的 鐘 聲 響 起 令 黃 昏 (起 始) 的 鐘 聲 響 起 我 愛 (渴 望) 的 就 只 有 你 我 愛 ( 渴 望 ) 你 正因如此 獨自安靜地哭泣吧 正因如此 無論你在何處哭泣 我都會率先去迎接你 不存在何處 直至深夜(小小的你) 你存在此處 至美者(心顯崇高之人) ...
  • file類常用方法 delete()刪除此抽象路徑名錶示的文件和目錄。 equals()測試此抽象路徑名與給定對象是否相等。 exists()測試此抽象路徑名錶示的文件或目錄是否存在。 getName()返回由此抽象路徑名錶示的文件或目錄的名稱。 isDirectory()測試此抽象路徑名錶示的文件 ...
  • 題目背景 縮點+DP 題目描述 給定一個n個點m條邊有向圖,每個點有一個權值,求一條路徑,使路徑經過的點權值之和最大。你只需要求出這個權值和。 允許多次經過一條邊或者一個點,但是,重覆經過的點,權值只計算一次。 輸入輸出格式 輸入格式: 第一行,n,m 第二行,n個整數,依次代表點權 第三至m+2行 ...
  • 逆向工程1.什麼是逆向工程mybaits需要程式員自己編寫sql語句,mybatis官方提供逆向工程 可以針對單表自動生成mybatis執行所需要的代碼(mapper.java,mapper.xml、po..)企業實際開發中,常用的逆向工程方式:由於資料庫的表生成java代碼。2.下載逆向工程myb ...
  • 巨集觀上: 1.技術廣度方面至少要精通多門開源技術吧,研究過struts\spring等的源碼。2.項目經驗方面從頭到尾跟過幾個大項目,頭是指需求階段,包括需求調研。尾是指上線交付之後,包括維護階段。3.架構經驗方面有過分散式系統的架構和開發經驗。對於跨系統的結構優化,數據存儲的性能指標等有豐富經驗。 ...
  • Java的三大版本是什麼?它們有什麼功能?Java另一個與三有關的三大環境是什麼?它們是什麼關係?併列還是包含?Oracle公司官網UI更新後,Java又怎麼下載?小星星帶你一探究竟。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...