本篇文章講解的是在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
感謝閱讀