Centos7 安装PHP7+Nginx+MariaDB+HTTPS

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install -y git

Nginx

yum install nginx
nginx -t
nginx
Centos7 安装PHP7+Nginx+MariaDB+HTTPS_第1张图片

PHP7

yum install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-fpm php71w-gd php71w-mbstring php71w-mysqlnd php71w-opcache php71w-pdo php71w-xml php71w-geoip php71w-mcrypt php71w-pecl-redis php71w-pecl-xdebug php71w-pecl-geoip
php-fpm -t
php-fpm
Centos7 安装PHP7+Nginx+MariaDB+HTTPS_第2张图片

Nginx + PHP

  • vi /etc/nginx/nginx.conf
user nobody nobody;  ### `user-1`, this is the user run nginx woker process
...
include servers/*.conf;
  • vi /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  wwww.safecode.cc;


    root   /usr/share/nginx/html;
    location / {
        index  index.html index.htm index.php;
    }

    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~* \.php$ {
        fastcgi_pass   unix:/run/php-fpm/fpm-www.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ /\.ht {
        deny  all;
    }
}
  • vi /etc/php-fpm.d/www.conf
[www]
user = apache  ### `user-2`, this is the user run php-fpm pool process
user = apache

;listen = 127.0.0.1:9000  # tcp socket
listen = /var/run/php-fpm/fpm-www.sock  # unix socket

listen.onwer = nobody  ### `user-3`, this is the user for unix socket, like /var/run/php-fpm/fpm-www.sock
listen.group = nobody  # for tcp socket, these lines can be commented
listen.mode = 0660
systemctl restart php-fpm
nginx -s reload
echo " /usr/share/nginx/html/info.php
Centos7 安装PHP7+Nginx+MariaDB+HTTPS_第3张图片
image.png

MariaDb

安装

yum -y install mariadb mariadb-server
systemctl enable mariadb
systemctl start mariadb
mysql_secure_installation

编码设置为UTF-8

  • vi /etc/my.cnf
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
character-set-server=utf8 
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake
  • vi /etc/my.cnf.d/client.cnf
[client]
default-character-set=utf8
  • vi /etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set=utf8
  • vi /etc/my.cnf.d/server.cnf
    设置表明大小写不敏感
[mysqld]
lower_case_table_names=1 

重启

systemctl restart mariadb

Let's encrypt

证书生成

cd /var/www/
export WEBROOT=/usr/share/nginx/html
export DOMAIN=www.safecode.cc
export [email protected]
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
chmod +x letsencrypt-auto
./letsencrypt-auto certonly -a webroot --webroot-path=$WEBROOT --email $EMAIL -d $DOMAIN -d $DOMAIN

Nginx 添加https

  • vi /etc/nginx/conf.d/default.conf
server {
    listen  80;
    server_name www.safecode.cc;
    rewrite ^(.*)$  https://$host$1 permanent;
}
server {
        listen 443 ssl;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/www.safecode.cc/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/www.safecode.cc/privkey.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;

        server_name www.safecode.cc;
        index index.html index.htm index.php default.html default.htm default.php;
        root /usr/share/nginx/html;

        location ~* \.php$ {
            fastcgi_pass   unix:/run/php-fpm/fpm-www.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

}
nginx -s reload
Centos7 安装PHP7+Nginx+MariaDB+HTTPS_第4张图片

问题

  1. nginx: [error] invalid PID number "" in "/var/run/nginx.pid"
pkill -9 nginx
nginx -c /etc/nginx/nginx.conf
  1. File not found
  • nginx的配置中检查
# 检查SCRIPT_FILENAME是否是/script
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  • /var/log/nginx/error.log 中出现FastCGI sent in stderr: "Primary script unknown"
    "Primary script unknown" is caused by SELinux security context.
#检查根目录权限

你可能感兴趣的:(Centos7 安装PHP7+Nginx+MariaDB+HTTPS)