前言:最近总是要安装服务器环境,记录这次CentOS 7.3下安装LNMP(Nginx1.10+MySQL5.7+PHP7.0.20)环境的过程,以备日后使用。
一、准备工作
1. 更新源# yum update
2. 安装vsftpd
见 FTP限制用户访问其他目录 http://www.linuxidc.com/Linux/2017-11/148312.htm
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 0nginx=”/usr/sbin/nginx”prog=$(basename $nginx)NGINX_CONF_FILE=”/etc/nginx/nginx.conf”[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginxlockfile=/var/lock/subsys/nginxstart() { [ -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 $retvalkillall -9 nginx}restart() { configtest || return $? stop sleep 1 start}reload() { configtest || return $? echo -n $”Reloading $prog: ” killproc $nginx -HUPRETVAL=$? 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 2esac>> 写入内容结束// 赋予脚本执行权限。# chmod +x /etc/init.d/nginx// 添加至服务管理列表,设置开机自启。# chkconfig –add nginx# chkconfig nginx on// 启动nginx# service nginx start
nginx安装完成,等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 GroupZend 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)环境的过程,以备日后使用。

发表评论

电子邮件地址不会被公开。 必填项已用*标注