2019独角兽企业重金招聘Python工程师标准>>>
yum安装Nginx
使用源码包安装Nginx需要很多步骤,我们可以使用yum的方式来安装Nginx。可以跟简单明了。
- 文档:http://nginx.org/en/linux_packages.html
- 首先将之前编译安装的Nginx进程禁用掉
[root@localhost ~]# ps aux |grep nginx
root 7373 0.0 0.1 45936 1124 ? Ss 21:44 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 7374 0.0 0.1 46388 1904 ? S 21:44 0:00 nginx: worker process
root 7376 0.0 0.0 112708 980 pts/0 R+ 21:44 0:00 grep --color=auto nginx
[root@localhost ~]# pkill nginx
[root@localhost ~]# ps aux |grep nginx
root 7379 0.0 0.0 112708 980 pts/0 R+ 21:44 0:00 grep --color=auto nginx
- 删掉之前编译安装的Nginx
[root@localhost ~]# rm -rf /usr/local/nginx/
- 搭建yum仓库
vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
- 查看yum仓库是否生效
[root@localhost ~]# yum list |grep nginx
BDB2053 Freeing read locks for locker 0x5: 7383/140362401236800
nginx.x86_64 1:1.14.2-1.el7_4.ngx nginx
nginx-debug.x86_64 1:1.8.0-1.el7.ngx nginx
nginx-debuginfo.x86_64 1:1.14.2-1.el7_4.ngx nginx
nginx-module-geoip.x86_64 1:1.14.2-1.el7_4.ngx nginx
nginx-module-geoip-debuginfo.x86_64 1:1.14.2-1.el7_4.ngx nginx
nginx-module-image-filter.x86_64 1:1.14.2-1.el7_4.ngx nginx
nginx-module-image-filter-debuginfo.x86_64 1:1.14.2-1.el7_4.ngx nginx
nginx-module-njs.x86_64 1:1.14.2.0.2.7-1.el7_4.ngx nginx
nginx-module-njs-debuginfo.x86_64 1:1.14.2.0.2.7-1.el7_4.ngx nginx
nginx-module-perl.x86_64 1:1.14.2-1.el7_4.ngx nginx
nginx-module-perl-debuginfo.x86_64 1:1.14.2-1.el7_4.ngx nginx
nginx-module-xslt.x86_64 1:1.14.2-1.el7_4.ngx nginx
nginx-module-xslt-debuginfo.x86_64 1:1.14.2-1.el7_4.ngx nginx
nginx-nr-agent.noarch 2.0.0-12.el7.ngx nginx
pcp-pmda-nginx.x86_64 4.1.0-5.el7_6 updates
- 使用yum安装Nginx
[root@localhost ~]# yum install nginx -y
- 可以使用nginx -v 命令来查看Nginx版本。-V查看Nginx的参数。
[root@localhost ~]# nginx -v
nginx version: nginx/1.14.2
[root@localhost ~]# nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --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/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
- 配置文件路径是/etc/nginx/nginx.conf
[root@localhost ~]# ls /etc/nginx/nginx.conf
/etc/nginx/nginx.conf
- 查看配置文件有没有语法错误,使用nginx -t
[root@localhost ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
- 启动nginx
[root@localhost ~]# systemctl start nginx
- 如果提示错误,则运行如下命令
Job for nginx.service failed because a configured resource limit was exceeded. See "systemctl status nginx.service" and "journalctl -xe" for details.
[root@localhost init.d]# sudo netstat -lnp | grep 0.0.0.0:80
Nginx虚拟主机
在一个web服务上能跑多个站点,每个站点就是一个虚拟主机。
[root@localhost /]# vi /etc/nginx/nginx.conf 打开Nginx配置文件
http {
include /etc/nginx/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 /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf; 这个就是虚拟主机配置文件的路径。
- 可以看到,默认在这个路径下有一个default.conf的文件
[root@localhost /]# ls /etc/nginx/conf.d/
default.conf
- 查看虚拟主机配置文件,定义虚拟主机配置文件,以域名为命名
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
- 这时候可以通过ip地址来访问该站点下的内容,是可以访问到的,如果访问不到,可以看一下是不是防火墙的安全策略的问题。iptables -nvL 查看防火墙规则
- iptables -nvL 查看防火墙规则,如果确认是防火墙的问题,可以将80端口写入白名单。
firewall-cmd --add-port=80/tcp --permanent 将80端口写入安全策略。
firewall-cmd --reload 重新加载firewalld
- Nginx配置文件
server {
listen 80;
server_name www.gongzi.com;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/gongzi;
index index.html index.htm;
}
- 检查配置有无错误。
nginx -t //查看配置文件是否有错误
nginx -s reload //重新加载配置文件
systemctl restart nginx //重启nginx
默认虚拟主机
排在第一位的虚拟主机配置文件就是默认虚拟主机,或者是在配置文件中listen 80 后面添加default_server 。这样可以将该配置文件的站点定义成默认虚拟主机。
- 默认虚拟主机,举个例子,abc.com能解析到该服务器,但是配置文件中并没有配置abc.com的域名,照样可以访问到默认虚拟主机的内容。添加一行deny all可以取消默认虚拟主机带来的泛解析
补充
Ctrl+z可以暂停一个进程,按fg可以再次回到进程。
新建一个站点blog
- 新建一个blog.com.conf的虚拟主机配置文件
server {
listen 80;
server_name blog.abc.com;
#access_log /var/log/nginx/host.access.log main;
#charset koi8-r;
location / {
root /data/wwwroot/blog.abc.com;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /data/wwwroot/blog.abc.com;
}
location ~ \.php$ {
root /data/wwwroot/blog.abc.com;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/wwwroot/blog.abc.com$fastcgi_script_name;
include fastcgi_params;
}
}
- 创建相应的目录
[root@localhost conf.d]# mkdir -p /data/wwwroot/blog.abc.com
- 验证配置文件是否有错并重新加载
[root@localhost conf.d]# nginx -t
[root@localhost conf.d]# nginx -s reload
安装WordPress
-
先进入到data/wwwroot/blog.abc.com目录
-
下载WordPress下载地址: https://cn.wordpress.org/download/
[root@localhost blog.abc.com]# wget https://cn.wordpress.org/wordpress-5.0.2-zh_CN.tar.gz
- 将下载的压缩包解压
[root@localhost blog.abc.com]# tar zxvf wordpress-5.0.2-zh_CN.tar.gz
- 将解压的目录下的所有东西复制到当前目录,然后将压缩包和原目录删掉。
[root@localhost blog.abc.com]# cp wordpress/* ./
cp: omitting directory ‘wordpress/wp-admin’
cp: omitting directory ‘wordpress/wp-content’
cp: omitting directory ‘wordpress/wp-includes’
[root@localhost blog.abc.com]# ls
index.php wordpress wp-blog-header.php wp-cron.php wp-login.php wp-signup.php
license.txt wordpress-5.0.2-zh_CN.tar.gz wp-comments-post.php wp-links-opml.php wp-mail.php wp-trackback.php
readme.html wp-activate.php wp-config-sample.php wp-load.php wp-settings.php xmlrpc.php
[root@localhost blog.abc.com]# rm -rf wordpress wordpress-5.0.2-zh_CN.tar.gz
- 创建数据库设置数据库(先连接到MariaDB)
[root@localhost blog.abc.com]# mysql -uroot -ppassword
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 66
Server version: 10.3.12-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database blog;
- 在MariaDB中为blog数据库创建用户
grant all on blog.* to 'blog'@'127.0.0.1' identified by 'pbxfuej3LR4r';
- 切换到blog库,查询blog库里有什么标
use blog;
show tables;
安装discuz
- discuz官网:http://www.discuz.net/forum.php
- 先安装git工具
yum install git -y
- 克隆discuz
git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git
- 复制upload里面的内容到我们自定义的路径下
[root@localhost DiscuzX]# cp -r upload /data/wwwroot/bbs.abc.site
- 定义主机配置文件
server {
listen 80;
server_name bbs.abc.site;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /data/wwwroot/bbs.abc.site;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /data/wwwroot/bbs.abc.site;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/wwwroot/bbs.abc.site$fastcgi_script_name;
include fastcgi_params;
}
}
- 重新加载配置文件并检查有无错误
[root@localhost conf.d]# nginx -s reload
[root@localhost conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost nginx]# setenforce 0
- 修改目录属主权限。
[root@localhost bbs.abc.site]# chown -R php-fpm config data uc_server/data uc_client/data
[root@localhost bbs.abc.site]# chown -R php-fpm config data uc_server/data uc_client/data