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 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 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
xuebingnan 2020-11-05
wikiwater 2020-10-27
heheeheh 2020-10-19
Crazyshark 2020-09-15
softwear 2020-08-21
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