LNMP的搭建

/etc/httpd/conf.d/welcome.php

du -sh命令查看大小
lnmp(C7)html

Nginx:端口:80
php-fpm:端口9000
安裝:位置錯誤容易引發實驗錯誤mysql

準備工做
1.環境要求:
操做系統:CentOS 7.X 64位
關閉SELinux和iptables防火牆
這次試驗環境使用網絡yum源,保證系統能正常鏈接互聯網
2.網絡yum源:
先將系統自帶的yum配置文件移除或者刪除,而後下載如下兩個配置文件
官方基礎:http://mirrors.163.com/.help/CentOS7-Base-163.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
epel拓展:http://mirrors.aliyun.com/repo/epel-7.repo
下載完成後,須要使用命令清除掉原有的yum緩存,使用新的配置文件創建緩存
# yum clean all #清除掉原有緩存列表
# yum makecache #創建新的緩存列表
# yum update #將全部能更新的軟件更新(非必選)
3.安裝編譯工具和依賴軟件包:
# yum -y install gcc gcc-c++ pcre-devel openssl openssl-devel zlib-devel ncurses-devel cmake bison libxml2-devel libpng-devel
4. Nginx、MySQL、PHP三大軟件的源碼包下載地址:
Nginx:http://nginx.org/en/download.html
MySQL:https://dev.mysql.com/downloads/mysql/
PHP:http://www.php.net/
版本選用:
Nginx: 1.12.* #選用軟件的穩定版便可
Mysql: 5.5.* #5.5以上版本須要1G以上的內存,不然沒法安裝
PHP: 7.1.* #咱們使用的是php7
注意:每次安裝LNMP時,軟件包的小版本都不同,官方會對其大版本下的小版本進行覆蓋式更新,本文內部分連接會失效,切記按照下載版本進行安裝。
2、源碼軟件包安裝
1.Nginx
Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,在BSD-like 協議下發行。其特色是佔有內存少,併發能力強。
1.1 下載Nginx源碼包nginx

wget http://nginx.org/download/nginx-1.12.2.tar.gz

1.2 建立用於運行Nginx的用戶c++

useradd -r -s /sbin/nologin nginx(重要,啓動靠他)

1.3 解壓縮Nginx並安裝sql

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module

make

make install

1.4 上傳編寫好的nginx啓動管理腳本(見文本尾部)
啓動nginx:ln -s /usr/local/nginx/sbin/* /usr/local/bin
啓動:nginx &
2.MySQL
下載:https://dev.mysql.com/downloads/mysql/
選擇:MySQL Community Server 5.5 »
選擇:Select Version: 按照本身要求選擇
Select Operating System: Source Code
Select OS Version: Generic Linux
格式:mysql-N.N.NN.tar.gzapache

wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62.tar.gz

2.1建立用於運行Mysql的用戶:vim

useradd -r -s /sbin/nologin mysql

2.2解壓縮Mysql並安裝:緩存

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306

make

make install

ln -s /usr/local/mysql/bin/* /usr/local/bin

2.3修改安裝後的目錄權限bash

cd /usr/local/mysql

chown -R root .

chown -R mysql data

2.4生成Mysql配置文件

cp -a /lnmp/mysql-5.5.62/support-files/my-medium.cnf /etc/my.cnf

2.5初始化,生成受權表

cd /usr/local/mysql #必定要先切換到此目錄下,而後再執行下一步。

./scripts/mysql_install_db --user=mysql

初始化成功標誌:兩個ok

2.6生成Mysql的啓動和自啓動管理腳本

cd /lnmp/mysql-5.5.62/support-files

切換到mysql的源碼解壓縮目錄下的support-files

cp -a mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig mysqld on

service mysqld start|stop|restart

2.7給mysql的root用戶設置密碼

mysqladmin -uroot password 123456

3.PHP
下載:http://www.php.net/

wget https://www.php.net/distributions/php-7.1.29.tar.gz

3.1解壓縮PHP並安裝:

./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql --with-gd --without-pear --enable-fpm

make

make install

報錯提示:若遇到libpng.so not found .報錯(老版本的PHP會出現此問題)
解決方案:

ln –s /usr/lib64/libpng.so /usr/lib

3.2生成php配置文件

cp -a /lnmp/php-7.1.29/php.ini-production /usr/local/php/etc/php.ini

複製源碼包內的配置文件到安裝目錄下,並更名便可

3.3建立軟鏈接,使用php相關命令是更方便
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/

4.配置Nginx鏈接PHP(重難點)
4.1 nginx鏈接php須要啓動php-fpm服務

cd /usr/local/php/etc/

cp -a php-fpm.conf.default php-fpm.conf

生成php-fpm的配置文件,並修改指定參數

vim php-fpm.conf

修改指定條目的參數:
pid = run/php-fpm.pid

cd /usr/local/php/etc/php-fpm.d/

cp -a www.conf.default www.conf

vim www.conf

修改用戶和組的指定用戶
user = nginx
group = nginx
修改Nginx啓動管理腳本:將php-fpm的註釋取消掉便可

4.2 修改Nginx的配置文件,使其識別.php後綴的文件

vim /usr/local/nginx/conf/nginx.conf #nginx配置文件

取消下列行的註釋,並修改include選項的後綴爲fastcgi.conf,並注意每一行結尾的分號和大括號

location ~ .php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

include fastcgi_params; #修改成fastcgi.conf

}

測試:
重啓Nginx服務,建立php測試文件,訪問並查看是否解析

啓動nginx:/usr/local/nginx/sbin/nginx &
啓動php-fpm:php-fpm
端口:80、9000 ps aux | grep 端口

4.3 修改Nginx配置文件,使其默認自動加載php文件

vim /usr/local/nginx/conf/nginx.conf #nginx配置文件

location / {
root html; #Nginx的默認網頁路徑:PREFIX/html
index index.php index.html; #設置默認加載的頁面,以及優先級
}

附件:建議使用時先複製到文本文件中查看下是否有字符集問題
#################################Nginx啓動管理腳本##################################

!/bin/bash

Author:liu

chkconfig: 2345 99 33

description: nginx server control tools

ngxc="/usr/local/nginx/sbin/nginx"
pidf="usr/local/nginx/logs/nginx.pid"
ngxc_fpm="/usr/local/php/sbin/php-fpm"
pidf_fpm="/usr/local/php/var/run/php-fpm.pid"
case "$1" in
start)
$ngxc -t &> /dev/null
if [ $? -eq 0 ];then
$ngxc
$ngxc_fpm
echo "nginx service start success!"
else
$ngxc -t
fi
;;
stop)
kill -s QUIT $(cat $pidf)
kill -s QUIT $(cat $pidf_fpm)
echo "nginx service stop success!"
;;
restart)
$0 stop
$0 start
;;
reload)
$ngxc -t &> /dev/null
if [ $? -eq 0 ];then
kill -s HUP $(cat $pidf)
kill -s HUP $(cat $pidf_fpm)
echo "reload nginx config success!"
else
$ngxc -t
fi
;;
*)
echo "please input stop|start|restart|reload."
exit 1
esac

screen -S:防掉線
screen -r:恢復以前的狀態

xcache:設置的密碼後面有用
uninstall.sh:卸載命令(只針對腳本)

install.sh安裝軟件(使用方式:./install.sh)
lnmp.org管理命令:lnmp {start|stop等}#因此軟件一塊兒管理
lnmp {apache等}+{start等} #單獨管理某一個

存放目錄:/usr/local/* 網頁目錄:/home/wwwroot/default/ 網站服務器日誌目錄:/home/wwwlogs/

相關文章
相關標籤/搜索