一化焕、源碼版LNMP環(huán)境
源碼版LNMP環(huán)境:從官網(wǎng)下載源碼包,然后配置铃剔、編譯撒桨、安裝,使其達(dá)到自定義的安裝效果
1键兜、源碼文件的獲确锢唷(官網(wǎng)獲取)
nginx源碼:打開(kāi)官網(wǎng)->documentation ->Stable version(穩(wěn)定版) ->選中nginx-1.14.2右擊拷貝鏈接
之后在終端使用:wget http://nginx.org/download/nginx-1.14.2.tar.gz 下載nginx-1.14.2.tar.gz包
php源碼:打開(kāi)官網(wǎng)-> downloads ->點(diǎn)擊 php-5.5.36.tar.gz 版本->選中 China cn2.php.net 右擊拷貝鏈接
之后在終端使用:wget http://mirrors.sohu.com/php/php-7.2.9.tar.gz下載php-5.5.36.tar.gz包
php版本下載地址:http://mirrors.sohu.com/php/
之后在終端使用:wget https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.62-linux-glibc2.12-i686.tar.gz 下載
二普气、編譯環(huán)境準(zhǔn)備
1谜疤、編譯工具安裝:
因?yàn)樵闯绦蚨际鞘褂胓cc gcc-c++ 編寫(xiě)而成的,所以需要安裝:yum -y install gcc gcc-c++
2、源碼安裝nginx
1)依賴包安裝
查找源碼安裝方法的步驟:nginx官網(wǎng)->documentation->Building nginx from Sources(源碼安裝)
找到nginx源碼下載目錄茎截,通過(guò)命令:tar -xzf nginx-1.14.2.tar.gz解壓
2)配置苇侵、編譯、安裝
進(jìn)入nginx-1.14.2目錄下企锌,配置configure文件
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=../pcre-8.42 --with-zlib=../zlib-1.2.11
執(zhí)行完成報(bào)錯(cuò)(由于依賴包引起的問(wèn)題):
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.
百度搜索錯(cuò)誤信息:nginx SSL modules require the OpenSSL library榆浓,查找解決方案:
安裝nginx(支持https,即開(kāi)啟SSL模塊)撕攒,需要首先安裝pcre陡鹃、zlib、openssl抖坪;
通過(guò)命令:yum -y install openssl openssl-devel 安裝
安裝成功后重新編譯操作
因?yàn)榕渲妹钪写嬖?-with-pcre=../pcre-8.42萍鲸,然而在執(zhí)行編譯時(shí)沒(méi)有找到,所以需要安裝pcre-8.42:
nginx官網(wǎng)->documentation->Building nginx from Sources(源碼安裝)->點(diǎn)擊 PCRE
將pcre-8.42下載到與nginx包所在的目錄下(根目錄/root/)
wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
因?yàn)榕渲妹钪写嬖?-with-zlib=../zlib-1.2.11擦俐,然而在執(zhí)行編譯時(shí)沒(méi)有找到脊阴,所以需要安裝zlib-1.2.11:
nginx官網(wǎng)->documentation->Building nginx from Sources(源碼安裝)->點(diǎn)擊 zlib
進(jìn)入根目錄下載:
wget http://www.zlib.net/zlib-1.2.11.tar.gz
查看已經(jīng)下載的pcre-8.42、zlib-1.2.11蚯瞧,并解壓
繼續(xù)進(jìn)入nginx目錄配置
以上沒(méi)有問(wèn)題嘿期,繼續(xù)make操作
以上沒(méi)有問(wèn)題,執(zhí)行最后一步操作:make install
以上說(shuō)明nginx已經(jīng)安裝成功了
總結(jié):./configure(配置) make(編譯) make install(安裝)
3)nginx目錄分析
查看默認(rèn)安裝的文件目錄(一般情況下都會(huì)默認(rèn)安裝到/usr/local/目錄下):
4)效果測(cè)試
瀏覽器測(cè)試nginx運(yùn)行效果埋合,輸入服務(wù)器ip訪問(wèn)
瀏覽器訪問(wèn)成功备徐,我們進(jìn)入html目錄下,創(chuàng)建test.html文件甚颂,并插入Welcome to nginx!!! 保存退出
3蜜猾、源碼安裝php
1)依賴包安裝
php源碼:打開(kāi)官網(wǎng)->documentation ->Chinese (Simplified)-> Unix 系統(tǒng)下的安裝->Unix 系統(tǒng)下的 Nginx 1.4.x
獲取并解壓 PHP 源代碼:
2)配置、編譯振诬、安裝
配置并構(gòu)建 PHP蹭睡。在此步驟您可以使用很多選項(xiàng)自定義 PHP,例如啟用某些擴(kuò)展等赶么。 運(yùn)行 ./configure --help 命令來(lái)獲得完整的可用選項(xiàng)清單肩豁。 在本示例中,我們僅進(jìn)行包含 PHP-FPM 和 MySQL 支持的簡(jiǎn)單配置禽绪。
配置:./configure --enable-fpm --with-mysqli --with-pdo-mysql
配置完成后蓖救,最底部報(bào)錯(cuò):configure: error: xml2-config not found. Please check your libxml2 installation.代表著libxml2沒(méi)有安裝洪规,需要安裝這個(gè)依賴包:yum -y install libxml2-devel
重新執(zhí)行配置:./configure --enable-fpm --with-mysqli --with-pdo-mysql
安裝操作:make install
創(chuàng)建配置文件印屁,并將其復(fù)制到正確的位置。
cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
需要著重提醒的是斩例,如果文件不存在雄人,則阻止 Nginx 將請(qǐng)求發(fā)送到后端的 PHP-FPM 模塊, 以避免遭受惡意腳本注入的攻擊。
將 php.ini 文件中的配置項(xiàng) cgi.fix_pathinfo 設(shè)置為 0 础钠。
打開(kāi) php.ini:
vi /usr/local/php/php.ini
定位到 cgi.fix_pathinfo= 并將其修改為如下所示:
cgi.fix_pathinfo=0
在啟動(dòng)服務(wù)之前恰力,需要修改 php-fpm.conf 配置文件,確保 php-fpm 模塊使用 www-data 用戶和 www-data 用戶組的身份運(yùn)行旗吁。
vim /usr/local/etc/php-fpm.conf
找到以下內(nèi)容并修改:
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = www-data
group = www-data
檢驗(yàn)系統(tǒng)是否存在踩萎,沒(méi)有此類用戶,以上步驟可以不操作
然后啟動(dòng) php-fpm 服務(wù):
/usr/local/bin/php-fpm
3)nginx如何識(shí)別php
配置 Nginx 使其支持 PHP 應(yīng)用:
vi /usr/local/nginx/nginx.conf
修改默認(rèn)的 location 塊很钓,使其支持 .php 文件:
下一步配置來(lái)保證對(duì)于 .php 文件的請(qǐng)求將被傳送到后端的 PHP-FPM 模塊香府, 取消默認(rèn)的 PHP 配置塊的注釋,并修改為下面的內(nèi)容:
location ~* .phpdocument_rootfastcgi_script_name;
}
重啟 Nginx:./nginx -s reload
4码倦、編譯版安裝mysql
1)依賴包安裝
mysql官網(wǎng)->DOCUMENTATION->MySQL 5.6 Reference Manual(根據(jù)下載的版本選擇手冊(cè))->Installing and Upgrading MySQL ->Installing MySQL on Unix/Linux Using Generic Binaries(編譯版)
cd /root 進(jìn)入安裝包目錄
tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ 解壓安裝包
cd /usr/local
mv mysql-5.7.17-linux-glibc2.5-x86_64/ mysql
cd mysql/support-files/
cp my-default.cnf /etc/my.cnf
vim /etc/my.cnf
添加以下內(nèi)容:
[mysql]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8
2)復(fù)制mysql.server到/etc/init.d/目錄下(目的想實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)執(zhí)行效果)
cp mysql.server /etc/init.d/mysql
修改/etc/init.d/mysql參數(shù)
vim /etc/init.d/mysql
修改以下內(nèi)容:
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
3)出于安全便利企孩,創(chuàng)建一個(gè)操作數(shù)據(jù)庫(kù)的專門(mén)用戶
建立一個(gè)mysql的組:
groupadd mysql
建立mysql用戶,并且把用戶放到mysql組:
useradd -r -g mysql mysql
給mysql用戶設(shè)置一個(gè)密碼:
passwd mysql
新密碼:12121212
給目錄/usr/local/mysql 更改擁有者:
chown -R mysql:mysql /usr/local/mysql/
第四步:初始化 mysql 的數(shù)據(jù)庫(kù)
cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化后會(huì)生成一個(gè)臨時(shí)密碼 root@localhost::*(最好先記錄這個(gè)臨時(shí)密碼)
root@localhost: 0n(yZo7W42.)
4)給數(shù)據(jù)庫(kù)加密
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
5)啟動(dòng)mysql
./mysqld_safe --user=mysql &
檢查mysql是否啟動(dòng)
ps -ef|grep mysql
發(fā)現(xiàn)有進(jìn)程便代表啟動(dòng)成功袁稽,退出mysql勿璃。
mysql>exit
6)進(jìn)入客戶端
登錄:
./mysql -uroot -p
Enter password:這里輸入之前的臨時(shí)密碼
2.修改密碼
mysql> set password=password('12341234');
7)設(shè)置遠(yuǎn)程訪問(wèn)
1:打開(kāi)mysql的默認(rèn)端口3306:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
提示FirewallD is not running,如下圖所示推汽。(ps:圖片是在網(wǎng)上找的)
(1)通過(guò)systemctl status firewalld查看firewalld狀態(tài)补疑,發(fā)現(xiàn)當(dāng)前是dead狀態(tài),即防火墻未開(kāi)啟民泵。
(2)通過(guò)systemctl start firewalld開(kāi)啟防火墻癣丧,沒(méi)有任何提示即開(kāi)啟成功。
(3)再次通過(guò)systemctl status firewalld查看firewalld狀態(tài)栈妆,顯示running即已開(kāi)啟了胁编。
如果要關(guān)閉防火墻設(shè)置,可能通過(guò)systemctl stop firewalld這條指令來(lái)關(guān)閉該功能鳞尔。
打開(kāi)3306端口正確為:
[admin@bogon ~] firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[admin@bogon bin]$ firewall-cmd --reload
success
2:設(shè)置mysql的遠(yuǎn)程訪問(wèn)(暫時(shí)不設(shè)置)
設(shè)置遠(yuǎn)程訪問(wèn)賬號(hào):grant all privileges on . to 遠(yuǎn)程訪問(wèn)用戶名@’%’ identified by ‘用戶密碼’;
mysql> grant all privileges on . to root@'%' identified by 'root';
刷新:
mysql> flush privileges;
8)設(shè)置開(kāi)機(jī)自啟動(dòng)
1嬉橙、添加服務(wù)mysql
cd /usr/local/mysql/bin/
chkconfig --add mysql
2、設(shè)置mysql服務(wù)為自啟動(dòng)
chkconfig mysql on
第八步:配置環(huán)境變量
vim /etc/profile
最后一行添加:
export PATH=PATH
使修改生效: source /etc/profile
至此,mysql5.7的安裝就完成了!!!
2)配置安裝
whereis mysql 安裝路徑
whereis mysql
mysql: /usr/local/mysql /usr/local/mysql/bin/mysql
創(chuàng)建db.php文件
插入以下內(nèi)容:
<?php
$mysqli = new mysqli("localhost", "root", “12341234");
if(!$mysqli) {
echo"database error";
}else{
echo "connection successfully!"
}
$mysqli->close();
?>