####一、安裝CentOS Linux 7
######1、不用檢測,直接選擇install回車
######2、選擇中文版
######3、系統配置,如果不需要手動分區,則不用設置分區
######4、點擊網絡與主機配置網絡,打開網絡
######5、點擊配置(如果不需要配置靜態ip則跳過本步驟)
######6、點擊開始安裝
######7、這個時候可以創建ROOT密碼和創建一個普通賬戶(設置完成後就等待安裝完成)
######8、重啓
######9、重啓後安裝好了會顯示登錄界面
######10、我們不用這個直接登錄,我們使用第三方工具登錄
######11、安裝wget
[root@localhost ~]# yum -y install wget
######12、這裏我們切換國內yum源,先備份原來的yum源
[root@localhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
######13、獲取阿里雲源
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
######14、清理yum源
[root@localhost ~]# yum clean all
######15、生成緩存
[root@localhost ~]# yum makecache
######16、習慣了使用vim編輯器,這裏順手安裝下
[root@localhost ~]# yum -y install vim epel-release
######17、接下來準備安裝mysql、nginx、php,不過在這之前需要先安裝一些依賴軟件
[root@localhost ~]# yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libzip libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof wget python-devel cmake libxslt-devel libgcrypt-devel readline-devel libgpg-error-devel libmcrypt libmcrypt-devel mcrypt
####二、安裝MySQL5.7.18
######1、在安裝mysql前先檢查有沒有安裝mariadb(默認是安裝的)
[root@localhost ~]# rpm -qa | grep mariadb
######2、卸載mariadb
[root@localhost ~]# rpm -e mariadb-libs --nodeps
######3、由於mysql5.7必須使用boost 1.59.0及以上版本。所以需要先安裝boost 1.59.0
[root@localhost ~]# cd /var/local
[root@localhost local]# wget https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
[root@localhost local]# tar -zxvf boost_1_59_0.tar.gz
[root@localhost local]# cd boost_1_59_0
[root@localhost boost_1_59_0]# ./bootstrap.sh
[root@localhost boost_1_59_0]# ./b2
[root@localhost boost_1_59_0]# ./b2 install
[root@localhost boost_1_59_0]# cd ..
######4、爲了安全起見,我們需要創建mysql用戶組和mysql用戶來運行mysql
[root@localhost local]# groupadd mysql
[root@localhost local]# useradd -s /sbin/nologin -g mysql -M mysql
######5、下載並安裝mysql5.7.18
[root@localhost local]# wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18.tar.gz
[root@localhost local]# tar -zxvf mysql-5.7.18.tar.gz
[root@localhost local]# cd mysql-5.7.18
[root@localhost mysql-5.7.18]# cmake .
[root@localhost mysql-5.7.18]# make && make install
######6、將mysql的bin目錄加入環境變量
[root@localhost mysql-5.7.18]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@localhost mysql-5.7.18]# source /etc/profile
######7、修改/usr/local/mysql/
目錄所屬組和所屬主
[root@localhost mysql-5.7.18]# chown -R root:mysql /usr/local/mysql/
######8、初始化mysql數據庫,這裏會生成一個root用戶的密碼,要記住這個初始密碼,後面要改密碼
[root@localhost mysql-5.7.18]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
######9、mysql5.7需要手動創建my.cnf配置文件
[root@localhost mysql-5.7.18]# vim /etc/my.cnf
寫入
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysqld.pid
socket=/usr/local/mysql/data/mysql.sock
log_error=/usr/local/mysql/data/mysql.err
######10、重新載入系統服務
[root@localhost mysql-5.7.18]# systemctl daemon-reload
######11、複製啓動腳本並設置爲開機自啓
[root@localhost mysql-5.7.18]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost mysql-5.7.18]# chkconfig --add mysql
######12、啓動mysql
[root@localhost mysql-5.7.18]# service mysql start
######13、添加軟鏈接
[root@localhost mysql-5.7.18]# ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock
######14、給root用戶設置密碼(這裏只是本地測試,建議設置複雜密碼)
[root@localhost mysql-5.7.18]# mysqladmin -uroot -p'kp2k9f*U2.?k' password '123456'
######14、登錄mysql
[root@localhost mysql-5.7.18]# mysql -u root -p
######15、給root用戶分配所有的操作權限,並允許其從其他終端登錄和操作MySQL(還需要設置防火牆開放3306端口或者使用SSH方式連接),爲了安全起見,最好把“%”換成指定ip
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> exit;
####三、安裝nginx1.14
######1、創建www用戶組和www用戶,用來運行nginx
[root@localhost mysql-5.7.18]# groupadd www
[root@localhost mysql-5.7.18]# useradd -s /sbin/nologin -g www -M www
######2、下載並安裝
[root@localhost mysql-5.7.18]# cd ..
[root@localhost local]# wget http://nginx.org/download/nginx-1.14.0.tar.gz
[root@localhost local]# tar -zxvf nginx-1.14.0.tar.gz
[root@localhost local]# cd nginx-1.14.0
[root@localhost nginx-1.14.0]# ./configure --user=www --group=www --with-http_stub_status_module
[root@localhost nginx-1.14.0]# make && make install
######3、將nginx的sbin目錄加入環境變量
[root@localhost nginx-1.14.0]# echo "export PATH=$PATH:/usr/local/nginx/sbin" >> /etc/profile
[root@localhost nginx-1.14.0]# source /etc/profile
######4、創建nginx啓動服務
[root@localhost nginx-1.14.0]# vim /etc/init.d/nginx
寫入以下內容
#! /bin/sh
# chkconfig: 2345 55 25
# Description: Startup script for nginx webserver on Debian. Place in /etc/init.d and
# run 'update-rc.d -f nginx defaults', or use the appropriate command on your
# distro. For CentOS/Redhat run: 'chkconfig --add nginx'
### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
### END INIT INFO
# Author: licess
# website: https://lnmp.org
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=nginx
NGINX_BIN=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/$NAME.conf
PIDFILE=/usr/local/nginx/logs/$NAME.pid
if [ -s /bin/ss ]; then
StatBin=/bin/ss
else
StatBin=/bin/netstat
fi
case "$1" in
start)
echo -n "Starting $NAME... "
if $StatBin -tnpl | grep -q nginx;then
echo "$NAME (pid `pidof $NAME`) already running."
exit 1
fi
$NGINX_BIN -c $CONFIGFILE
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Stoping $NAME... "
if ! $StatBin -tnpl | grep -q nginx; then
echo "$NAME is not running."
exit 1
fi
$NGINX_BIN -s stop
if [ "$?" != 0 ] ; then
echo " failed. Use force-quit"
exit 1
else
echo " done"
fi
;;
status)
if $StatBin -tnpl | grep -q nginx; then
PID=`pidof nginx`
echo "$NAME (pid $PID) is running..."
else
echo "$NAME is stopped."
exit 0
fi
;;
force-quit|kill)
echo -n "Terminating $NAME... "
if ! $StatBin -tnpl | grep -q nginx; then
echo "$NAME is is stopped."
exit 1
fi
kill `pidof $NAME`
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
reload)
echo -n "Reload service $NAME... "
if $StatBin -tnpl | grep -q nginx; then
$NGINX_BIN -s reload
echo " done"
else
echo "$NAME is not running, can't reload."
exit 1
fi
;;
configtest)
echo -n "Test $NAME configure files... "
$NGINX_BIN -t
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status|configtest|force-quit|kill}"
exit 1
;;
esac
######5、修改啓動文件權限
[root@localhost nginx-1.14.0]# chmod 755 /etc/init.d/nginx
######6、加入開機自啓
[root@localhost nginx-1.14.0]# chkconfig --add nginx
######7、啓動nginx服務
[root@localhost nginx-1.14.0]# service nginx start
######8、測試是否成功
[root@localhost nginx-1.14.0]# curl 127.0.0.1
看到以下內容則表示成功
####四、安裝PHP7.1.18
######1、下載並安裝
[root@localhost nginx-1.14.0]# cd ..
[root@localhost local]# wget -O php-7.1.18.tar.gz http://cn2.php.net/get/php-7.1.18.tar.gz/from/this/mirror
[root@localhost local]# tar -zxvf php-7.1.18.tar.gz
[root@localhost local]# cd php-7.1.18
[root@localhost php-7.1.18]# ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc/ \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--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-compression-support \
--with-pear \
--enable-opcache
[root@localhost php-7.1.18]# make && make install
######2、將php的bin目錄加入系統環境變量
[root@localhost php-7.1.18]# echo "export PATH=$PATH:/usr/local/php/bin" >> /etc/profile
[root@localhost php-7.1.18]# source /etc/profile
######3、測試是否成功php -v
######4、準備配置文件
[root@localhost php-7.1.18]# cp php.ini-production /usr/local/php/etc/php.ini
[root@localhost php-7.1.18]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@localhost php-7.1.18]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
######5、修改www.conf文件
[root@localhost php-7.1.18]# vim /usr/local/php/etc/php-fpm.d/www.conf
修改爲
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php-cgi.sock
;listen = 127.0.0.1:9000
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log
######6、拷貝啓動文件
[root@localhost php-7.1.18]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
######7、給php-fpm文件添加可執行權限
[root@localhost php-7.1.18]# chmod +x /etc/init.d/php-fpm
######8、加入開機自啓
[root@localhost php-7.1.18]# chkconfig --add php-fpm
######9、啓動php-fpm
[root@localhost php-7.1.18]# service php-fpm start
php安裝完成
####五、創建web目錄並修改nginx支持php
######1、我們將web目錄創建在/var目錄下
[root@localhost php-7.1.18]# cd /var
[root@localhost var]# mkdir -p www/default
[root@localhost var]# chown -R www:www www
######2、創建一個php文件待會測試用
[root@localhost var]# vim /var/www/default/index.php
寫入
<?php
phpinfo();
######3、進入nginx配置目錄
[root@localhost var]# cd /usr/local/nginx/conf
######4、添加支持php
[root@localhost conf]# vim enable-php.conf
寫入(注意:fastcgi_pass配置項使用php-cgi.sock或127.0.0.1:9000要與php-fpm配置項要一致)
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
######5、修改nginx.conf
[root@localhost conf]# vim nginx.conf
修改爲
user www www;
worker_processes auto;
error_log logs/error.log crit;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
worker_rlimit_nofile 51200;
events {
use epoll;
worker_connections 51200;
multi_accept on;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 129;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;
sendfile on;
tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 60;
#gzip on;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
#limit_conn_zone $binary_remote_addr zone=perip:10m;
##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.
server_tokens off;
access_log off;
server {
listen 80 default_server;
#listen [::]:80 default_server ipv6only=on;
server_name _;
index index.html index.htm index.php;
root /var/www/default;
#error_page 404 /404.html;
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
include enable-php.conf;
location /nginx_status
{
stub_status on;
access_log off;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log logs/access.log;
}
include vhost/*.conf;
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
######6、創建vhost目錄,主要存放虛擬主機配置,這樣就無需改動nginx.conf配置文件了
[root@localhost conf]# mkdir vhost
######7、重啓nginx
[root@localhost conf]# service nginx restart
######8、開放80端口
[root@localhost conf]# firewall-cmd --zone=public --add-port=80/tcp --permanent
[root@localhost conf]# systemctl restart firewalld.service
######9、通過瀏覽器訪問地址看到如下就代表成功了
或者通過curl訪問127.0.0.1