本篇文章講解的是在CentOS7.3下配置 Apache2.4 + MySQL5.7 + PHP7.1.8
-先把服務(wù)器裝成centos7.3鏡像,然后重置服務(wù)器后本地連接需要?jiǎng)h除之前的ip連接保存記錄
vim ~/.ssh/known_hosts
一.Apache
1.查看httpd包是否可用
yum list | grep httpd
2.安裝Apache
yum install httpd
3.配置servername
vi /etc/httpd/conf/httpd.conf
修改這行: ServerName localhost:80
4.啟動(dòng)
systemctl start httpd
如果啟動(dòng)失敗 請(qǐng)注意錯(cuò)誤信息 一般來(lái)說(shuō)新安裝的軟件都會(huì)啟動(dòng)成功 我當(dāng)時(shí)啟動(dòng)失敗后是用ps -aux | grep httpd命令發(fā)現(xiàn)進(jìn)程被占用 所以kill -9 進(jìn)程號(hào) 把httpd的進(jìn)程殺干凈 再啟動(dòng) 就OK了
5.設(shè)置開(kāi)機(jī)啟動(dòng)
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.啟動(dòng)MySQL
systemctl start mysqld
4.獲取密碼
grep 'temporary password' /var/log/mysqld.log
得到這行A temporary password is generated for root@localhost: Jqqskhz1Wr(? 冒號(hào)后面的就是密碼
5.進(jìn)入MySQL
mysql -uroot -p
6.修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY ********** (密碼請(qǐng)用引號(hào)包起來(lái) 注意MySQL的密碼必須復(fù)雜 不復(fù)雜會(huì)報(bào)錯(cuò))
7.開(kāi)放遠(yuǎn)程訪問(wèn)權(quán)限
use mysql;
update user set host = '%' where user = 'root';
百分號(hào)相當(dāng)于*號(hào),意為全部放行,也可改為IP地址則只允許此IP連接,也可以設(shè)置為192.168.%.%或者192.168.0.1/9代表允許一個(gè)ip段進(jìn)行連接,也可以多加幾條數(shù)據(jù)設(shè)置不同ip允許連接。
8.MySQL權(quán)限管理。(只寫(xiě)干貨,不懂的請(qǐng)自行Google)
create user 'myqiutian'@'%' IDENTIFIED BY '*********';
創(chuàng)建一個(gè)用戶為myqiutian,因?yàn)橛玫?所以任何IP都可以登錄,但登錄后卻無(wú)法看到數(shù)據(jù)庫(kù),新增用戶所有權(quán)限默認(rèn)關(guān)閉。
懶人請(qǐng)用這一行:
grant all on . to myqiutian;設(shè)置該用戶所有數(shù)據(jù)庫(kù)所有表?yè)碛兴袡?quán)限
grant select on A數(shù)據(jù)庫(kù).* to myqiutian;
授權(quán)myqiutian這個(gè)用戶可以查看A數(shù)據(jù)庫(kù)里的所有表,但是僅限于A數(shù)據(jù)庫(kù),也僅限于查看。
grant insert on A數(shù)據(jù)庫(kù).user to myqiutian;
授權(quán)myqiutian這個(gè)用戶可以對(duì)A數(shù)據(jù)庫(kù)里的user表進(jìn)行insert操作,但僅限于user表,也僅限于select和insert操作。
撤銷權(quán)限
revoke insert on A數(shù)據(jù)庫(kù).user from myqiutian;
注意:撤銷權(quán)限之前最好用show grants for myqiutian;這條sql查一下該用戶有哪些權(quán)限,增加的什么權(quán)限就撤什么權(quán)限,你增加的insert就不能撤銷all。
MySQL權(quán)限工作流程:
--------->用戶連接MySQL
--------->查詢user表 核對(duì)賬號(hào)密碼 檢查host字段 是否允許你的ip進(jìn)行連接
--------->查詢user表 其他權(quán)限字段 值若為Y 代表用戶對(duì)所有數(shù)據(jù)庫(kù)所有表所有字段都擁有該權(quán)限 若有值為N 則往下走
--------->查詢db表 庫(kù)權(quán)限控制表 獲取該用戶對(duì)哪些庫(kù)擁有哪些權(quán)限 這張表里一條記錄代表一個(gè)庫(kù)
--------->查詢tables_priv表 獲取該用戶的表控制權(quán)限 同樣 如果db表中該用戶對(duì)A數(shù)據(jù)庫(kù)擁有insert權(quán)限 那么不管tables_priv表中如何設(shè)置 都不會(huì)影響該用戶的isnert權(quán)限,如果tables_priv表中的單表權(quán)限不為all,則繼續(xù)往下走
--------->查詢columns_priv表 字段控制 可以設(shè)置對(duì)表字段的控制權(quán)限
四個(gè)表依次為 user db tables_priv columns_priv
注意:
如果user表中全為Y,那么不會(huì)查詢下面的表。
user表中的select為N時(shí),可以在db表中指定哪些庫(kù)可以被用戶看到。
但是無(wú)論是表控制還是字段控制,上級(jí)權(quán)限表(user表除外)的select字段必須為Y。
而其他權(quán)限如果上級(jí)表給出了設(shè)置,那么不會(huì)采用下級(jí)表的設(shè)置。
具體權(quán)限字段請(qǐng)查閱官方手冊(cè):
http://www.yesky.com/imagesnew/software/mysql/manual_Privilege_system.html#Privileges_provided
8.刷新權(quán)限 立即生效
flush privileges;
別忘了這里有一個(gè)配置文件cat /etc/my.cnf 可以查看存儲(chǔ)的數(shù)據(jù)與log的位置。
三:PHP7
1.通過(guò)ftp將php源碼包上傳到Linux上,或者通過(guò)wget在線下載也可以。因?yàn)闆](méi)有找到我要的最新版的7.1.8的包,所以我就去官網(wǎng)下載來(lái)傳到Linux上進(jìn)行使用,
將包放到/usr/local 并cd進(jìn)去。(ftp的內(nèi)容請(qǐng)查看我上一篇文章,php7的包請(qǐng)點(diǎn)擊分享鏈接進(jìn)行下載:http://pan.baidu.com/s/1dEYQjoX)
上官網(wǎng)自行下載也是可以的,用wget下載官網(wǎng)的鏈接
2.解壓
tar -zxvf php-7.1.8.tar.gz
3.進(jìn)入解壓包安裝一些必要的依賴
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.配置
(注意:先進(jìn)入/usr/local/php7的目錄下再執(zhí)行下面,如果最后顯示內(nèi)存不足1G的話加上--d(自行根據(jù)錯(cuò)誤碼百度忘記了))
./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.編譯出現(xiàn)錯(cuò)誤請(qǐng)查閱這篇博客:
http://www.cnblogs.com/sweetXiaoma/p/5855732.html
感謝博主分享經(jīng)驗(yàn)讓學(xué)者收益。
8.編譯檢查
make test
這步可走可不走,因?yàn)樗鲜菒?ài)提示錯(cuò)誤,但又不給錯(cuò)誤信息,如果有問(wèn)題,那么編譯的時(shí)候一定不成功,既然編譯成功了,那么可以直接進(jìn)行安裝。
9.安裝
make install
10.添加環(huán)境變量
vi /etc/profile
在末尾加入:
PATH=$PATH:/usr/local/php7/bin
export PATH
11.使改動(dòng)立即生效
source /etc/profile
12.查看php版本
php -v
(如果有問(wèn)題 請(qǐng)檢查添加的環(huán)境變量是否是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
Configuration File (php.ini) Path /usr/local/php7/lib
Loaded Configuration File /usr/local/php7/lib/php.ini
注意:用phpinfo();出來(lái)后 要加載php.ini需要放在 /usr/local/php7/lib/php.ini
然后打開(kāi)把時(shí)間那里的;去掉,加上PRC,就是中國(guó)時(shí)間了~
14.配置
如果報(bào)錯(cuò) 請(qǐng)敲這行查報(bào)錯(cuò)信息 可以查到哪個(gè)文件第幾行出錯(cuò):
systemctl status httpd.service
修改Apache默認(rèn)歡迎頁(yè):
vi /etc/httpd/conf.d/welcome.conf
將/usr/share/httpd/noindex 修改為/var/www
修改Apache配置:
vi /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/"
(請(qǐng)注意,/var/www這個(gè)路徑是自定義,在配置文件中有好幾處這個(gè)路徑,如果更改,請(qǐng)全局搜索一下都改掉)
找到
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>
搜索有沒(méi)有下面這一行:
LoadModule php7_module modules/libphp7.so
如果沒(méi)有 請(qǐng)手動(dòng)添加 否則 會(huì)出現(xiàn)運(yùn)行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.測(cè)試
在www目錄下創(chuàng)建index.php
添加<?php phpinfo();?>
訪問(wèn):www.你的域名.com
16.重啟apache
systemctl stop httpd
systemctl start httpd
17.配置虛擬主機(jī) 參考
這里因?yàn)橄旅婺抢镩_(kāi)啟了包含擴(kuò)展
vim /etc/httpd/conf/httpd.conf
這個(gè)文件沒(méi)有的話 用vim會(huì)自動(dòng)創(chuàng)建
#包含apache2.4.6擴(kuò)展,這個(gè)版本的話 這里會(huì)自動(dòng)加載這個(gè)虛擬主機(jī)配置文件
IncludeOptional conf.d/*.conf
#網(wǎng)站根目錄的絕對(duì)地址
DocumentRoot "/var/www"
然后新建一個(gè)虛擬主機(jī)文件里面填寫(xiě),apache會(huì)自動(dòng)加載這個(gè)虛擬主機(jī)配置文件
vim /etc/httpd/conf.d/vhost.conf
#DocumentRoot和Directory更換自己的項(xiàng)目絕對(duì)路徑
#ServerName和ServerAlias更換自己的項(xiàng)目地址
<VirtualHost *:80>
DocumentRoot "/var/www"
ServerName www.uigz.cn
ServerAlias www.uigz.cn
<Directory "/var/www">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/liulin"
ServerName liulin.uigz.cn
ServerAlias liulin.uigz.cn
<Directory "/var/www/liulin">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/lkj"
ServerName blog.uigz.cn
ServerAlias blog.uigz.cn
<Directory "/var/www/lkj">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
由于配置了這個(gè)虛擬主機(jī),建議關(guān)閉httpd.conf里面的默認(rèn)目錄路徑的那段話