LNMP---PHP和nginx編譯安裝、yum安裝nginx、nginx虛擬主機

4.27/28/29 php編譯安裝
4.30 編譯安裝nginx
4.31 yum安裝nginx
4.32/33 nginx虛擬主機php

 

vi編輯器中的一些操做方法:html

vi 裏面在通常模式下,按dd能夠刪除行(剪切),5dd(剪切5行),光標挪到要粘貼的位置,按p。
操做錯誤以後,想要撤銷,能夠按u,反着撤銷按 ctrl r; 
通常模式下按gg能夠把光標定位到首行,按G能夠定位到末行; 
按yy複製,5yy複製5行;
顯示行號,在通常模式裏輸入:set nu; 
定位到指定的行:通常模式下直接按數字G,如10G

 

1、php編譯安裝mysql

下載PHP:linux

cd /usr/local/src        進入該目錄下載
wget https://www.php.net/distributions/php-7.3.10.tar.bz2

解壓:nginx

tar jxvf php-7.3.10.tar.bz2


編譯安裝php:git

cd php-7.3.10  解壓後進入該目錄,能夠 訪問INSTALL中的幫助文件的連接

建立php-fpm用戶sql

useradd php-fpm

 編譯參數:vim

./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl


相關名稱釋義:
--prefix=指定安裝位置
--with-config-file-path=指定配置文件目錄
--enable-fpm=啓動fpm服務,必需要加
--with-fpm-user=指定用戶
--with-fpm-group=指定用戶組
--with-mysql=指定mysql的路徑(兼容老版本使用此方法)
--with-mysqli=指定Mysql路徑(新版本)
--with-pdo-mysql 加上此項才能夠和php通訊
--with-libxml-dir及以後的都是php的模塊

  make
  make install 

編譯安裝一個軟件包的步驟:windows

一、 ./configure ***和後面的參數
   二、 make
   三、 make install

錯誤1:centos

解決: yum install -y gcc

錯誤2:

error: libxml2 not found
解決:yum install -y libxml2-devel

    缺乏軟件包能夠yum list |grep 包名        grep -i 忽略大小寫

錯誤3:

error: Cannot find OpenSSL's
解決:yum install -y openssl-devel

yum list |grep -i OpenSSL

錯誤4:

error: cURL version 7.15.5 or later is required 
解決:yum install -y libcurl-devel

yum list |grep curl

錯誤5:

configure: error: jpeglib.h not found
解決:yum install -y libjpeg-turbo-devel

yum list |grep jpeg

錯誤6:

configure: error: png.h not found
解決:yum install -y libpng-devel

yum list |grep png

錯誤7:

configure: error: freetype-config not found.
解決: yum install -y freetype-devel

錯誤8:

configure: error: wrong mysql library version or lib not found
解決:下載一個低版本的MySQL/Mariadb

wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
tar zxvf mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz 
mv mysql-5.6.45-linux-glibc2.12-x86_64 /usr/local/mysql5.6

改完後的編譯參數:

./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql5.6 --with-mysqli=/usr/local/mysql5.6/bin/mysql_config --with-pdo-mysql=/usr/local/mysql5.6 --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl

錯誤9(啓動php-fpm時若是沒有php-fpm用戶報該錯誤):

ERROR: [pool www] cannot get uid for user 'php-fpm'
 解決:useradd php-fpm

編譯完成後,出現WARNING, 這幾個選項在新版本的php中不識別了,編譯參數去掉便可,帶上這些參數也不會報錯--with-mysql, --with-mcrypt, --enable-gd-native-ttf

接着make和make install便可,make是把源碼包變成二進制包,進行編譯

配置文件:

cd /usr/local/php-fpm/

編譯完成後,拷貝php-fpm.conf.default爲php-fpm.conf,不然php-fpm沒法啓動

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

另外一個配置文件:

cd /usr/local/src/php-7.3.10

php.ini-development    用做於測試環境

php.ini-production     用做於生產環境

cp php.ini-development /usr/local/php-fpm/etc/php.ini

diff 查看兩個文件的差別的,如 diff php.ini-development php.ini-production  ,; 表明註釋的行

啓動腳本:

cd /usr/local/src/php-7.3.10/sapi/fpm

並把該目錄下的init.d.php-fpm拷貝到/etc/init.d/,做爲啓動腳本

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chkconfig --add php-fpm   加入到服務列表

chkconfig php-fpm on        開機啓動

chmod 755 /etc/init.d/php-fpm     並給執行權限

/etc/init.d/php-fpm start  啓動報錯

vim /usr/local/php-fpm/etc/php-fpm.conf   根據報錯查看該配置文件的第143行

vim /usr/local/php-fpm/etc/php-fpm.conf

/usr/local/php-fpm/etc/php-fpm.d目錄下沒有.conf文件

cp www.conf.default www.conf    

/etc/init.d/php-fpm start   此時啓動成功

 

2、編譯安裝nginx

官網:http://nginx.org/ 

下載:

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

解壓:

tar zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1

官方文檔:http://nginx.org/en/docs/install.html   (選擇此選項即源碼安裝:Building nginx from Sources,文檔最下面有編譯參數示例)

編譯參數可參考官方文檔,prefix安裝路徑要有:

./configure --prefix=/usr/local/nginx --with-http_ssl_module
make && make install

編譯完成:

建立nginx啓動命令腳本:

vi /etc/init.d/nginx

插入如下內容, 注意修改PATH和NAME字段, 匹配本身的安裝路徑 

或者https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx

#! /bin/bash
# chkconfig: - 85 15
PATH=/usr/local/nginx
DESC="nginx daemon"
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/conf/$NAME.conf
PIDFILE=$PATH/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
$DAEMON -s stop || echo -n "nginx not running"
}
do_reload() {
$DAEMON -s reload || echo -n "nginx can't reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0

設置執行權限

chmod a+x /etc/init.d/nginx

啓動:

無啓動腳本:/usr/local/nginx/sbin/nginx,    用此方法啓動後,使用  pkill nginx  關閉
建立啓動腳本後:/etc/init.d/nginx start
chkconfig --add nginx    加入到服務列表
chkconfig nginx on    設置開機啓動

配置文件所在位置:

vim /usr/local/nginx/conf/nginx.conf

3、yum安裝nginx

文檔:

http://nginx.org/en/linux_packages.html

編輯yum倉庫:

vi /etc/yum.repos.d/nginx.repo

粘貼:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/       yum時會到此路徑查找rpm包
gpgcheck=0
enabled=1

yum list |grep nginx        能夠看到獲取到的nginx的包,爲最新的穩定版

安裝:

yum install -y nginx

配置文件路徑:

/etc/nginx

nginx -v  查看版本
nginx -V 查看編譯參數


更改配置文件後查看配置文件有沒有語法錯誤: nginx -t

啓動:

systemctl start nginx

4、nginx虛擬主機

虛擬主機:

HTTP相關概念中(1.1版本開始支持虛擬主機) 即爲--> host (域名) 一個WEB服務能夠有多個站點,一個站點就是一個虛擬主機

定義虛擬主機配置文件,以域名爲命名。

啓動nginx服務

vim /etc/nginx/nginx.conf           yum安裝的nginx配置文件所在位置

/etc/nginx/conf.d/        虛擬主機配置文件所在路徑

該路徑下的文件中,每個server就是一個虛擬主機,能夠在瀏覽器中訪問server_name後面的域名

更改server_name後的域名爲www.aaa.com

nginx -t //查看配置文件是否有錯誤
nginx -s reload //重載配置文件

Linux中綁定hosts:

vim /etc/hosts

windows中綁定hosts:

C:\Windows\System32\drivers\etc中的hosts文件

更改完成後可使用www.aaa.com在瀏覽器中訪問

默認虛擬主機:

默認虛擬主機的做用:泛解析(任何一個域名只要解析到ip上,這個站點均可以訪問到)
默認虛擬主機就是Nginx的第一個虛擬主機。誰排在第一位誰就是第一個

或者在虛擬主機中80端口後添加: default_server  就成爲了默認的虛擬主機,只能添加一個

在  default.conf   中添加default_server,就成了默認虛擬主機

2.conf    作以下更改,並在/tmp/html/目錄下定義一個index.html

echo 123 > /tmp/html/index.html

訪問ccc.com爲定義的內容爲123的index.html

bbb.com仍是會請求到默認的虛擬主機,由於添加了default_server 

禁掉默認虛擬主機,加一行 deny all; 此時虛擬主機403

CentOS7 firewalld


可參考:https://blog.csdn.net/z13615480737/article/details/79178458/
iptables -nvL  查看防火牆規則 
自帶firewalld服務,開啓狀態。

查看防火牆的狀態:systemctl status firewalld
(不推薦)關閉firewalld服務: systemctl stop firewalld

添加80端口到白名單: 

firewall-cmd --zone=public --list-ports       #查看已開放的端口
firewall-cmd --add-port=80/tcp --permanent      #永久添加80端口 
firewall-cmd --reload        #從新載入配置,好比添加規則以後,須要執行此命令

命令含義:

--zone #做用域
--add-port=80/tcp #添加端口,格式爲:端口/通信協議
--permanent #永久生效,沒有此參數重啓後失效

相關文章
相關標籤/搜索