centos6.5 nginx1.8 php mysql,CentOS6.5 源码安装Nginx1.8 + PHP7.0.6 + MySQL5.7.12

准备工作

使用yum安装相关依赖

yum install -y gcc gcc-c++ autoconf automake libtool make cmake libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl openssl-devel gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel libmcrypt libmcrypt-devel bison-devel

Nginx

下载安装pcre

cd /usr/local/src

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz

tar -zxvf ./pcre-8.38.tar.gz

cd ./pcre-8.38

./configure

make

make install

下载安装zlib

cd /usr/local/src

wget http://zlib.net/zlib-1.2.8.tar.gz

tar -zxvf ./zlib-1.2.8.tar.gz

cd ./zlib-1.2.8

./configure

make

make install

下载openssl

cd /usr/local/src

wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz

tar -zxvf openssl-1.0.1t.tar.gz

下载安装Nginx

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

tar -zxvf ./nginx-1.8.1.tar.gz

cd ./nginx-1.8.1

./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=/usr/local/src/pcre-8.38 \

--with-zlib=/usr/local/src/zlib-1.2.8 \

--with-openssl=/usr/local/src/openssl-1.0.1t

make

make install

添加Nginx启动脚本

vim /etc/init.d/nginx

# 复制粘贴保存以下内容

#!/bin/sh

#

# nginx - this script starts and stops the nginx daemon

#

# chkconfig: - 85 15

# description: NGINX is an HTTP(S) server, HTTP(S) reverse \

# proxy and IMAP/POP3 proxy server

# processname: nginx

# config: /etc/nginx/nginx.conf

# config: /etc/sysconfig/nginx

# pidfile: /var/run/nginx.pid

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs() {

# make required directories

user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`

if [ -z "`grep $user /etc/passwd`" ]; then

useradd -M -s /bin/nologin $user

fi

options=`$nginx -V 2>&1 | grep 'configure arguments:'`

for opt in $options; do

if [ `echo $opt | grep '.*-temp-path'` ]; then

value=`echo $opt | cut -d "=" -f 2`

if [ ! -d "$value" ]; then

# echo "creating" $value

mkdir -p $value && chown -R $user $value

fi

fi

done

}

start() {

[ -x $nginx ] || exit 5

[ -f $NGINX_CONF_FILE ] || exit 6

# make_dirs

echo -n $"Starting $prog: "

daemon $nginx -c $NGINX_CONF_FILE

retval=$?

echo

[ $retval -eq 0 ] && touch $lockfile

return $retval

}

stop() {

echo -n $"Stopping $prog: "

killproc $prog -QUIT

retval=$?

echo

[ $retval -eq 0 ] && rm -f $lockfile

return $retval

}

restart() {

configtest || return $?

stop

sleep 1

start

}

reload() {

configtest || return $?

echo -n $"Reloading $prog: "

killproc $nginx -HUP

RETVAL=$?

echo

}

force_reload() {

restart

}

configtest() {

$nginx -t -c $NGINX_CONF_FILE

}

rh_status() {

status $prog

}

rh_status_q() {

rh_status >/dev/null 2>&1

}

case "$1" in

start)

rh_status_q && exit 0

$1

;;

stop)

rh_status_q || exit 0

$1

;;

restart|configtest)

$1

;;

reload)

rh_status_q || exit 7

$1

;;

force-reload)

force_reload

;;

status)

rh_status

;;

condrestart|try-restart)

rh_status_q || exit 0

;;

*)

echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

exit 2

esac

# 保存退出

:wq

# 为脚本添加执行权限

chmod +x /etc/init.d/nginx

# 添加开启启动

chkconfig --add /etc/init.d/nginx

# 这样就可以使用以下命令来管理Nginx了

service nginx start|restart|stop

添加环境变量

vim /etc/profile

# 添加这一行

export PATH=/usr/local/nginx:$PATH

# 保存退出

:wq

source /etc/profile

PHP

下载安装PHP

cd /usr/local/src

wget -O php-7.0.6.tar.gz http://cn2.php.net/get/php-7.0.6.tar.gz/from/this/mirror

tar -zxvf ./php-7.0.6.tar.gz

cd ./php-7.0.6

./buildconf --force

./configure \

--prefix=/usr/local/php \

--with-config-file-path=/usr/local/php/etc \

--with-config-file-scan-dir=/usr/local/php/etc/conf.d \

--enable-fpm \

--with-fpm-user=web \

--with-fpm-group=www \

--enable-soap \

--with-openssl \

--with-openssl-dir \

--with-mcrypt \

--with-pcre-regex \

--with-zlib \

--with-iconv \

--with-bz2 \

--enable-calendar \

--with-curl \

--with-cdb \

--enable-dom \

--enable-exif \

--with-pcre-dir \

--enable-ftp \

--with-gd \

--with-jpeg-dir \

--with-png-dir \

--with-freetype-dir \

--with-gettext \

--with-gmp \

--with-mhash \

--enable-mbstring \

--with-libmbfl \

--with-onig \

--enable-pdo \

--with-pdo-mysql \

--with-zlib-dir \

--with-readline \

--enable-session \

--enable-shmop \

--enable-simplexml \

--enable-sockets \

--enable-sysvmsg \

--enable-sysvsem \

--enable-sysvshm \

--enable-wddx \

--with-libxml-dir \

--with-xsl \

--enable-zip \

--enable-mysqlnd \

--with-mysqli \

--without-pear

make

make install

复制修改PHP配置文件

cp /usr/local/src/php-7.0.6/php.ini-production /usr/local/php/etc/php.ini

vim /usr/local/php/etc/php.ini

;date.timezone =

修改为

date.timezone = PRC

;cgi.fix_pathinfo=1

修改为

cgi.fix_pathinfo=0

# 开启opcache

zend_extension=opcache.so # 添加这一行

;opcache.enable=0

修改为

opcache.enable=1

;opcache.enable_cli=0

修改为

opcache.enable_cli=1

复制修改PHP-FPM配置文件

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

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

;pid = run/php-fpm.pid

修改为

pid = run/php-fpm.pid

# 保存退出

:wq

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

# 修改PHP-FPM用户

user = web

修改为

user = www

# 修改监听方式

listen = 127.0.0.1:9000

修改为

listen = /usr/local/php/var/run/php-fpm.sock

;listen.owner = web

;listen.group = www

;listen.mode = 0660

修改为

listen.owner = www

listen.group = www

listen.mode = 0660

;listen.allowed_clients = 127.0.0.1

修改为

listen.allowed_clients = 127.0.0.1

添加PHP-FPM启动脚本

vim /etc/init.d/php-fpm

# 复制粘贴保存以下内容

#! /bin/sh

### BEGIN INIT INFO

# Provides: php-fpm

# Required-Start: $remote_fs $network

# Required-Stop: $remote_fs $network

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: starts php-fpm

# Description: starts the PHP FastCGI Process Manager daemon

### END INIT INFO

prefix=/usr/local/php

exec_prefix=${prefix}

php_fpm_BIN=${exec_prefix}/sbin/php-fpm

php_fpm_CONF=${prefix}/etc/php-fpm.conf

php_fpm_PID=${prefix}/var/run/php-fpm.pid

php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"

wait_for_pid () {

try=0

while test $try -lt 35 ; do

case "$1" in

'created')

if [ -f "$2" ] ; then

try=''

break

fi

;;

'removed')

if [ ! -f "$2" ] ; then

try=''

break

fi

;;

esac

echo -n .

try=`expr $try + 1`

sleep 1

done

}

case "$1" in

start)

echo -n "Starting php-fpm "

$php_fpm_BIN --daemonize $php_opts

if [ "$?" != 0 ] ; then

echo " failed"

exit 1

fi

wait_for_pid created $php_fpm_PID

if [ -n "$try" ] ; then

echo " failed"

exit 1

else

echo " done"

fi

;;

stop)

echo -n "Gracefully shutting down php-fpm "

if [ ! -r $php_fpm_PID ] ; then

echo "warning, no pid file found - php-fpm is not running ?"

exit 1

fi

kill -QUIT `cat $php_fpm_PID`

wait_for_pid removed $php_fpm_PID

if [ -n "$try" ] ; then

echo " failed. Use force-quit"

exit 1

else

echo " done"

fi

;;

force-quit)

echo -n "Terminating php-fpm "

if [ ! -r $php_fpm_PID ] ; then

echo "warning, no pid file found - php-fpm is not running ?"

exit 1

fi

kill -TERM `cat $php_fpm_PID`

wait_for_pid removed $php_fpm_PID

if [ -n "$try" ] ; then

echo " failed"

exit 1

else

echo " done"

fi

;;

restart)

$0 stop

$0 start

;;

reload)

echo -n "Reload service php-fpm "

if [ ! -r $php_fpm_PID ] ; then

echo "warning, no pid file found - php-fpm is not running ?"

exit 1

fi

kill -USR2 `cat $php_fpm_PID`

echo " done"

;;

*)

echo "Usage: $0 {start|stop|force-quit|restart|reload}"

exit 1

;;

esac

# 保存退出

:wq

# 为脚本添加执行权限

chmod +x /etc/init.d/php-fpm

# 添加开启启动

chkconfig --add /etc/init.d/php-fpm

# 这样就可以使用以下命令来管理PHP-FPM了

service php-fpm start|restart|stop

添加环境变量

vim /etc/profile

# 添加这一行

export PATH=/usr/local/php/bin:$PATH

# 保存退出

:wq

source /etc/profile

MySQL

cd /usr/local/src

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.12.tar.gz

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.12.tar.gz

tar -zxvf ./mysql-5.7.12.tar.gz

tar -zxvf ./mysql-boost-5.7.12.tar.gz

cd ./mysql-5.7.12

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DSYSCONFDIR=/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DDOWNLOAD_BOOST=1 -DWITH_BOOST=boost

make

make install

添加MySQL用户及用户组

groupadd mysql

useradd -r -g mysql mysql

修改MySQL目录所属用户

chown -R mysql:mysql /usr/local/mysql

数据库初始化

cd /usr/local/mysql

./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

# 查询初始化root用户密码

cat ~/.mysql_secret

添加MySQL服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

chkconfig mysql on

service mysql start

复制MySQL配置文件

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

添加环境变量

vim /etc/profile

# 添加这一行

export PATH=/usr/local/mysql/bin:$PATH

# 保存退出

:wq

source /etc/profile

让Nginx支持PHP

cd /usr/local/nginx

mkdir conf.d

cd conf.d

vim php-fpm

# 添加以下内容

location ~ \.php$ {

try_files $uri = 404;

fastcgi_pass unix:/usr/local/php/var/run/php-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

# 保存退出

:wq

修改Nginx配置文件

cd /usr/local/nginx

vim nginx.conf

# 修改为以下内容

user www;

worker_processes 1;

events {

use epoll;

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /usr/local/nginx/logs/access.log main;

sendfile on;

keepalive_timeout 65;

tcp_nodelay on;

gzip on;

gzip_disable "MSIE [1-6].";

client_header_buffer_size 128k;

large_client_header_buffers 4 128k;

include /usr/local/nginx/sites-enabled/*;

}

# 保存退出

:wq

添加站点

mkdir sites-enabled

cd ./sites-enabled

vim site

# 复制粘贴以下内容

server {

listen 80;

server_name www.test.com;

root /var/www;

access_log /usr/local/nginx/logs/init.access.log main;

error_log /usr/local/nginx/logs/init.error.log;

location / {

index index.php index.html index.htm;

try_files $uri $uri/ /index.php?$query_string;

include /usr/local/nginx/conf.d/php-fpm;

}

location ~ ^/(images|javascript|js|css|flash|media|static)/ {

expires 30d;

}

location ~ /.ht {

deny all;

}

}

# 保存退出

:wq

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值