1.源碼安裝Nginx
依賴軟體包安裝。
[root@linux-node1 ~]# rpm -ivh
http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm[root@linux-node1 ~]# yum install -y gcc glibc gcc-c++ pcre-devel openssl-devel
建立www使用者,用于啟動Nginx
[root@linux-node1 src]# useradd -s /sbin/nologin -M www
Nginx源碼編譯安裝
[root@linux-node1 ~]# cd /usr/local/src
[root@linux-node1 src]# wget
http://nginx.org/download/nginx-1.14.2.tar.gz[root@linux-node1 src]# tar zxf nginx-1.14.2.tar.gz
[root@linux-node1 src]# cd nginx-1.14.2
[root@linux-node1 nginx-1.14.2]#./configure --prefix=/usr/local/nginx-1.14.2 \
--user=www --group=www \
--with-http_ssl_module --with-stream \
--with-http_stub_status_module --with-file-aio
[root@linux-node1 nginx-1.14.2]# make && make install
2.測試配置并啟動Nginx
[root@linux-node1 ~]# ln -s /usr/local/nginx-1.14.2/ /usr/local/nginx
[root@linux-node1 ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx-1.14.2/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx-1.14.2/conf/nginx.conf test is successful
[root@linux-node1 ~]# /usr/local/nginx/sbin/nginx
檢視Nginx啟動狀态
[root@linux-node1 ~]# netstat –ntlp | grep 80
3.源碼安裝PHP(FPM)
首先,我們需要将PHP依賴的軟體包都安裝上。
[root@linux-node1 ~]# yum install -y gcc gcc-c++ glibc make autoconf \
libjpeg-turbo-devel libpng-devel mhash-devel \
freetype-devel libxml2-devel zlib-devel \
libcurl-devel openssl-devel swig libmcrypt-devel
4.下載下傳軟體包
http://120.52.51.16/cn2.php.net/distributions/php-5.6.39.tar.gz[root@linux-node1 src]# tar zxf php-5.6.39.tar.gz
[root@linux-node1 src]# cd php-5.6.39
5.編譯軟體包
[root@linux-node1 php-5.6.39]#./configure --prefix=/usr/local/php-5.6.39 --with-mysql \
--with-jpeg-dir --with-png-dir --with-curl --with-gd \
--with-zlib --enable-xml --with-libxml-dir --enable-bcmath \
--enable-sysvsem --enable-mbregex --with-openssl \
--enable-mbstring --enable-gd-native-ttf --enable-sockets \
--enable-shmop --enable-opcache --disable-debug \
--with-xmlrpc --enable-zip --enable-soap --enable-zip --enable-fpm \
--with-fpm-user=www --with-fpm-group=www --with-freetype-dir \
--with-mcrypt --with-mhash --enable-inline-optimization
[root@linux-node1 php-5.6.39]# make && make install
6.設定php配置檔案和啟動腳本
[root@linux-node1 php-5.6.39]# ln -s /usr/local/php-5.6.39/ /usr/local/php
[root@linux-node1 php-5.6.39]# cp php.ini-production /usr/local/php/lib/php.ini
[root@linux-node1 php-5.6.39]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@linux-node1 php-5.6.39]# chmod +x /etc/init.d/php-fpm
fpm配置檔案
[root@linux-node1 php-5.6.39]# cd /usr/local/php/etc/
[root@linux-node1 etc]# cp php-fpm.conf.default php-fpm.conf
[root@linux-node1 etc]# /etc/init.d/php-fpm start
Starting php-fpm done
預設情況下php-fpm會監聽在本地127.0.0.1的9000端口,你也可以調整php-fpm.conf設定為監聽sock檔案。
7.配置Nginx和PHP的連接配接
[root@linux-node1 ~]# cd /usr/local/nginx/conf/
[root@linux-node1 conf]# vim nginx.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.conf; #注意修改
}
重載Nginx配置
[root@linux-node1 conf]# /usr/local/nginx/sbin/nginx -t
[root@linux-node1 conf]# /usr/local/nginx/sbin/nginx -s reload
測試PHP安裝
[root@linux-node1 conf]# cd /usr/local/nginx/html/
[root@linux-node1 html]# vim info.php
<?php
phpinfo();
?>

MySQL 生産部署
mysql的安裝除了yum,還可以源碼編譯,其實如果你沒有完全掌握源碼編譯的優化選項,選擇官方編譯好的二進制版本也是不錯的選擇。
下載下傳mysql二進制包
wget
https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz建立mysql使用者
[root@linux-node1 ~]# groupadd mysql
[root@linux-node1 ~]# useradd -r -g mysql -s /bin/false mysql
解壓mysql二進制包
[root@linux-node1 src]# tar zxf mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz
[root@linux-node1 src]# mv mysql-5.6.30-linux-glibc2.5-x86_64 /usr/local/
[root@linux-node1 ~]# chown -R mysql:mysql /usr/local/mysql-5.6.30-linux-glibc2.5-x86_64
初始化mysql
[root@linux-node1 ~]# ln -s /usr/local/mysql-5.6.30-linux-glibc2.5-x86_64/ /usr/local/mysql
[root@linux-node1 ~]# chown -R mysql:mysql /usr/local/mysql
[root@linux-node1 ~]# /usr/local/mysql/scripts/mysql_install_db \
--defaults-file=/usr/local/mysql/my.cnf \
--user=mysql --basedir=/usr/local/mysql/ \
--datadir=/usr/local/mysql/data
啟動mysql
[root@linux-node1 src]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &
PHP安裝PDO MySQL擴充
要讓PHP連接配接到MySQL。可以使用PDO擴充,安裝PDO擴充和安裝其它PHP子產品的方法都是類似的,分為三個步驟:
第一步:安裝PDO擴充:
[root@linux-node1 ~]# cd /usr/local/src/php-5.6.21/ext/pdo_mysql/
phpize是用來擴充php擴充子產品的,通過phpize可以建立php的外挂子產品
[root@linux-node1 pdo_mysql]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
[root@linux-node1 pdo_mysql]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@linux-node1 pdo_mysql]# make && make install
執行完畢,最後會輸出講擴充安裝到的位置,
ls /usr/local/php-5.6.21/lib/php/extensions/no-debug-non-zts-20131226/
opcache.a opcache.so pdo_mysql.so
第二步:修改配置檔案
[root@linux-node1 ~]# vim /usr/local/php/lib/php.ini
在檔案末尾添加
extension=pdo_mysql.so
第三步:重新加載PHP(FPM)
[root@linux-node1 ~]# /etc/init.d/php-fpm reload
Reload service php-fpm done
使用mysqli連接配接資料庫,是以需要給PHP安裝該子產品。
[root@linux-node1 pdo_mysql]# cd /usr/local/src/php-5.6.39/ext/mysqli/
[root@linux-node1 mysqli]# /usr/local/php/bin/phpize
[root@linux-node1 mysqli]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@linux-node1 mysqli]# make && make install
[root@linux-node1 mysqli]# vim /usr/local/php/lib/php.ini
在最下面新添加一行
extension=mysqli.so
[root@linux-node1 mysqli]# /etc/init.d/php-fpm reload
安裝其他PHP子產品均使用類似的方法。例如安裝Redis、Memcached子產品等。