配置HTTP2.0需要的是NGINX1.9.5以上的版本,以及一个HTTPS证书。这里我讲同时介绍HTTP2.0的LNMP环境搭建,所以同时需要用到PHP7以及MariaDB。
NGINX安装配置
首先到NGINX官网下载高于1.9.5的版本,http://nginx.org/,我这里推荐使用稳定的1.10.0。
cd 到 root目录下,下载nginx1.10.0
下载好后解压
tar -xvzf nginx-1.10.0.tar.gz
转到NGINX目录
cd nginx-1.10.0.tar.gz
准备编译环境
yum install gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel
需要注意的是HTTP2.0模块需要openssl1.0.1以上的版本来编译才能使用,而多数Linux/Unix系统下普遍为openssl1.0.1,所以需要下载openssl1.0.1以上的版本,配置中我使用的是openssl1.0.2h
同样解压
tar -xvzf openssl-1.0.2h.tar.gz
转入NGINX目录
cd nginx-1.10.0
检测NGINX编译环境
./configure \
--prefix=/etc/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/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-openssl=/root/openssl-1.0.2h \
--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-debug \
--with-mail_ssl_module \
--with-file-aio \
--with-ipv6 \
--with-threads \
--with-stream \
--with-stream_ssl_module \
--with-http_slice_module \
--with-http_v2_module
成功后编译NGINX
make && make install
编译完成后开始配置NGINX,首先修改/etc/nginx/nginx.conf
user nginx nginx;
worker_processes auto;
error_log /var/run/error.log info;
pid /var/run/nginx.pid;
lock_file /var/run/nginx.lock;
events {
worker_connections 4096;
accept_mutex off;
}
http {
include mime.types;
server_names_hash_bucket_size 64;
default_type application/octet-stream;
access_log off;
aio threads;
sendfile on;
sendfile_max_chunk 512k;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 5;
gzip on;
gzip_disable “MSIE [1-6].(?!.*SV1)”;
gzip_http_version 1.1;
gzip_vary on;
gzip_proxied any;
gzip_min_length 1000;
gzip_buffers 16 8k;
gzip_comp_level 6;
client_max_body_size 256m;
gzip_types text/plain text/css text/xml text/javascript application/json application/x-javascript application/xml application/xml+rss;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_temp_path /home/temp_dir;
include vhost/*.conf;
}
然后在/etc/nginx/vhost中添加个虚拟主机目录,比如www.XXX.com.conf,这里的证书可以在沃通中免费申请,红色是配置SSL模块和H2模块的重要部分
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.XXX.com XXX.com;
charset utf-8;
ssl_certificate /etc/nginx/vhost/www.XXX.com.crt;
ssl_certificate_key /etc/nginx/vhost/www.XXX.com.key;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5';
root /home/www.XXX.com;
location / {
aio threads=default;
index index.html index.htm index.php;
}
error_page 404 403 /404.html;
error_page 500 502 503 504 /50x.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
配置完成后在给Linux添加个NGINX用户和用户组
groupadd -r nginx
useradd -s /sbin/nologin -g nginx -r nginx
最后检测NGINX配置是否正常
nginx -t
正常的情况下加入Systemctl模块,开机启动,到/usr/lib/systemd/system目录下创建nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存后,加入开机启动
systemctl enable nginx
开启nginx
systemctl start nginx
验证HTTP2.0是否成功可以使用Chrome的开发模式下的NetWork,如图
如果这里显示的是H2则说明配置成功!!
PHP-FPM安装配置
同样首先到php官网下载php.tar.gz,推荐使用最新的PHP7.0.6,将他上传到root中,解压
tar php.tar.gz
cd php
安装PHP所需环境
yum install libacl libacl-devel libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel enchant enchant-devel gd gd-devel gmp gmp-devel libmcrypt libmcrypt-devel libtidy libtidy-devel libxslt libxslt-devel
检测编译
'./configure' '--disable-debug' '--disable-rpath' '--enable-fpm' '--with-fpm-user=nginx' '--with-fpm-group=nginx' '--with-fpm-acl' '--with-libxml-dir' '--with-openssl' '--with-kerberos' '--with-pcre-regex' '--with-zlib' '--enable-bcmath' '--with-bz2' '--enable-calendar' '--with-curl' '--enable-dba' '--with-enchant' '--enable-exif' '--disable-fileinfo' '--with-pcre-dir' '--enable-ftp' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-zlib-dir' '--with-xpm-dir' '--with-freetype-dir' '--enable-gd-native-ttf' '--with-gettext' '--with-gmp' '--with-mhash' '--enable-mbstring' '--enable-mbregex' '--with-mcrypt' '--with-mysqli' '--enable-embedded-mysqli' '--with-mysql-sock=/tmp/mysql.sock' '--enable-pcntl' '--with-pdo-mysql' '--enable-session' '--enable-shmop' '--enable-soap' '--enable-sockets' '--enable-sysvsem' '--with-tidy' '--enable-wddx' '--with-xmlrpc' '--enable-xml' '--with-iconv-dir' '--with-xsl' '--enable-zip' '--enable-mysqlnd' '--without-pear' '--enable-shared'
成功后编译
make && make install
编译完成后配置php-fpm,到/usr/local/etc修改php-fpm.conf
将最底部的修改为include=/usr/local/etc/php-fpm.d/*.conf,然后修改/usr/local/etc/php-fpm.d/www.conf,修改两处
;pool name ('www' here)
[nginx]
user = nginx
group = nginx
修改完成后检测是否正确
php-fpm -t
正确添加Systemctl模块,直接到php.tar.gz解压后的文件夹中找/sapi/fpm/init.d.php-fpm,并把他复制到/etc/init.d/中,添加权限
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
加入开机启动
systemctl enable php-fpm
开启php-fpm
systemctl start php-fpm
创建phpinfo测试一下,如图
MaraiDB安装配置
MariaDB的安装可以直接添加更新官方的源,到/etc/yum.repos.d下创建MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
保存后更新源
yum update
安装最新MariaDB
yum install mariadb mariadb-server
添加开机启动
systemctl enable mariadb
开启
systemctl start mariadb
在服务开启的状态下,设置最新密码
mysql_secure_installation
2024 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123