CentOS 7.3 下 安装LNMP(Nginx1.10+MySQL5.7+PHP7.0.20)
前言:最近总是要安装服务器环境,记录这次CentOS 7.3下安装LNMP(Nginx1.10+MySQL5.7+PHP7.0.20)环境的过程,以备日后使用。
一、准备工作
1. 更新源
3. 关闭selinux
//修改配置文件,重启服务后永久生效。 # sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config // 立即生效。 # setenforce 0
4. 安装依赖
# yum install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel
二、安装nginx(两种,编译和源)
第一种 源安装(推荐,之后配置以这种安装为准):
// 安装nginx源 # yum localinstall http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm // 安装nginx # yum install nginx // 启动nginx # service nginx start
第二种 编译安装(编译安装自由度高,但配置麻烦):
// 下载Nginx (如需最新版,也可直接去官网下载)
# wget http://nginx.org/download/nginx-1.11.12.tar.gz
// 解压
# tar -zxvf nginx-1.11.12.tar.gz
# cd nginx-1.11.12
// 创建用户
# groupadd -r nginx
# useradd -r -g nginx nginx
// 编译安装
# ./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/tmp/nginx/client \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--user=nginx \
--group=nginx \
--with-pcre \
--with-http_v2_module \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-mail \
--with-mail_ssl_module \
--with-file-aio \
--with-ipv6 \
--with-http_v2_module \
--with-threads \
--with-stream \
--with-stream_ssl_module
# make && make install
# mkdir -pv /var/tmp/nginx/client
// 添加SysV启动脚本。
# 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/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
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
killall -9 nginx
}
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
>> 写入内容结束
// 赋予脚本执行权限。
# chmod +x /etc/init.d/nginx
// 添加至服务管理列表,设置开机自启。
# chkconfig --add nginx
# chkconfig nginx on
// 启动nginx
# service nginx startnginx安装完成,等php安装好后,可以配置nginx文件
三、安装mysql5.7
// 在MySQL官网中下载YUM源rpm安装包 # wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm // 安装mysql源 # yum localinstall mysql57-community-release-el7-8.noarch.rpm // 检查mysql源是否安装成功 # yum repolist enabled | grep "mysql.*-community.*" > mysql-connectors-community/x86_64 MySQL Connectors Community 3 > mysql-tools-community/x86_64 MySQL Tools Community 4 > mysql57-community/x86_64 MySQL 5.7 Community Server 18 // 安装mysql # yum install mysql-community-server # yum install mysql-community-devel // 启动mysql # service mysqld start // 查看mysql启动状态 # service mysqld status // 设置开机启动 # systemctl enable mysqld # systemctl daemon-reload // 获取mysql默认生成的密码 # grep 'temporary password' /var/log/mysqld.log > 2017-07-04T06:06:06.824762Z 1 [Note] A temporary password is generated for root@localhost: h8wob/ou+wpC // :(冒号)后的就是自动生成的密码 h8wob/ou+wpC ,换成自己的密码 # mysql -uroot -p > Enter password:h8wob/ou+wpC > mysql> // 更换密码 > mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123IsYourNewPassword!';
注意:这里的新密码必须包含数字、小写或大写字母、特殊字符串。这个密码的复杂程度,和validate_password_policy的值有关。
| Policy | Tests Performed |
|---|---|
| 0 or LOW | Length |
| 1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
| 2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
默认是1,即MEDIUM。如果想要降低密码复杂度,可以进入mysql后设置。
> mysql> set global validate_password_policy=0; // 退出后再确认一次 > mysql> quit; # mysql -uroot -p123IsYourNewPassword! > mysql>
至此,mysql安装完毕
四、安装php7
// 官网下载7.0.20版本后,用ftp将源码包传到服务器中,保存在/root下 # tar -zxvf php-7.0.20.tar.gz # cd php-7.0.20 // 安装依赖包 # yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel // 编译配置。如果按照我的步骤一步步来,应该一步到位,直接看见 Thank you for using PHP。如果报错,基本就是相关依赖未安装完全。 # ./configure \ --prefix=/usr/local/php \ --with-config-file-path=/etc \ --enable-fpm \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --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 // 编译安装 # make && make install // 添加 PHP 命令到环境变量 # vim /etc/profile // 立即生效 # source /etc/profile // 查看PHP版本 # php -v > PHP 7.0.20 (cli) (built: Jul 4 2017 14:39:02) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies // 配置php-fpm # cp php.ini-production /etc/php.ini # 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 # cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm # chmod +x /etc/init.d/php-fpm // 添加php-fpm至服务列表并设置开机自启。 # chkconfig --add php-fpm # chkconfig --list php-fpm # chkconfig php-fpm on // 启动php-fpm # /etc/init.d/php-fpm start
php安装完成
五、nginx站点配置
// 创建配置文件
# vim /etc/nginx/conf.d/yourWebAddress.com.conf
>> 写入内容
server {
listen 80;
server_name www.yourWebAddress.com;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /var/www/html;
index index.php index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
>> 写入内容结束最近总是要安装服务器环境,记录这次CentOS 7.3下安装LNMP(Nginx1.10+MySQL5.7+PHP7.0.20)环境的过程,以备日后使用。
相关推荐
zrtlin 2020-11-09
Aveiox 2020-06-23
wikiwater 2020-10-27
heheeheh 2020-10-19
Crazyshark 2020-09-15
ZGCdemo 2020-08-16
jczwilliam 2020-08-16
littleFatty 2020-08-16
idning 2020-08-03
jinxiutong 2020-07-26
lanzhusiyu 2020-07-19
Skyline 2020-07-04
xiaofanguan 2020-06-25
dragonzht 2020-06-17