需要先搭建好系统环境
gcc编译环境
PHP
点击跳转
下载nginx安装压缩包
wget http://nginx.org/download/nginx-1.9.9.tar.gz
解压并切换到nginx目录
cd nginx-1.9.9/
tar -zxvf nginx-1.9.9.tar.gz
执行配置并编译安装
./configure
make install
默认安装目录为 /usr/local/nginx
默认配置文件为 /usr/local/nginx/conf/nginx.conf
添加nginx服务
vim /usr/lib/systemd/system/nginx.service
配置文件如下:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存并重新载入服务
systemctl daemon-reload
控制命令:
systemctl start nginx #开启服务
systemctl stop nginx #关闭服务
systemctl status nginx #服务状态
systemctl restart nginx #重启服务
systemctl reload nginx #不关闭服务并重新载入配置
添加开机启动
创建一个脚本文件
vi /etc/init.d/nginx
#!/bin/bash # nginx Startup script for the Nginx HTTP Server # it is v.0.0.2 version. # chkconfig: - 85 15 # description: Nginx is a high-performance web and proxy server. # It has a lot of features, but it's not for everyone. # processname: nginx # pidfile: /usr/local/nginx/logs/nginx.pid # config: /usr/local/nginx/conf/nginx.conf nginxd=/usr/local/nginx/sbin/nginx nginx_config=/usr/local/nginx/conf/nginx.conf nginx_pid=/usr/local/nginx/logs/nginx.pid RETVAL=0 prog="nginx" # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "${NETWORKING}" = "no" ] && exit 0 [ -x $nginxd ] || exit 0 # Start nginx daemons functions. start() { if [ -e $nginx_pid ];then echo "nginx already running...." exit 1 fi echo -n
quot;Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
} # Stop nginx daemons functions.
stop() {
echo -nquot;Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid
}
# reload nginx service functions.
reload() {
echo -nquot;Reloading $prog: "
#kill -HUPcat ${nginx_pid}
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echoquot;Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL给脚本执行权限
chmod a+x /etc/init.d/nginx
添加开机服务
echo /etc/init.d/nginx start >>/etc/rc.local
给开机服务添加执行权限
chmod +x /etc/rc.local
为nginx启用PHP服务 并开启PATHINFO
如不开启PATHINFO 动态PHP无法打开出现404错误:
找到这段代码
pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
把下面的location ~ .php$ { 一段注释去掉
并把fastcgi_param修改成
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
重启服务即可
或直接添加以下代码
location ~ \\.php { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+?\\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; client_max_body_size 20480M; #允许客户端上传文件最大大小 include fastcgi_params; }
在HTTP参数中添加以下代码 使php支持.htaccess
include *.htaccess;
开启文件浏览功能
在http参数中添加autoindex on; # 开启目录文件列表 autoindex_exact_size on; # 显示出文件的确切大小,单位是bytes autoindex_localtime on; # 显示的文件时间为文件的服务器时间 charset utf-8,gbk,gb2312; # 避免中文乱码
为某个站点添加则在location中添加
location / { }域名转发配置
修改配置文件 添加如下代码
server { listen 80; server_name xxx.cn; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://xxxxx; } }
server_name为域名
proxy_pass为跳转的地址
暂无评论内容