日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

【NGINX+PHP7.3+MYSQL】安装指南

發(fā)布時(shí)間:2025/3/20 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【NGINX+PHP7.3+MYSQL】安装指南 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • NGINX
    • 添加源 --> 查看
    • 安裝
    • 配置
      • 設(shè)置開(kāi)機(jī)啟動(dòng)
      • 啟動(dòng)服務(wù)
      • 停止服務(wù)
      • 重新加載
    • 防火墻
    • 效果圖
    • 可能出現(xiàn)的問(wèn)題
      • 報(bào) [emerg] bind() to 0.0.0.0:XXXX failed (13: Permission denied)錯(cuò)誤的處理方式
        • 端口小于1024
        • 端口大于1024
      • 403 Forbidden
        • SELinux沒(méi)有關(guān)閉
        • Nginx啟動(dòng)用戶和工作用戶不一致
        • 網(wǎng)頁(yè)所在的目錄權(quán)限不對(duì)
        • 缺少默認(rèn)的首頁(yè)
      • 訪問(wèn)報(bào)錯(cuò):No input file specified
      • recv() failed (104: Connection reset by peer) while reading response header from upstream
  • MYSQL
    • yum源的安裝
    • 擴(kuò)展
      • 修改密碼的強(qiáng)度:
  • PHP7.3
    • 安裝源
    • 安裝PHP 以及 擴(kuò)展
    • 設(shè)置
    • 安裝更多擴(kuò)展:
  • Composer

NGINX

Nginx (engine x) 是一個(gè)高性能的 HTTP 和反向代理服務(wù)器,也是一個(gè) IMAP/POP3/SMTP 服務(wù)器。。 本例演示 CentOS 7 下安裝和配置 Nginx 的基本步驟。

添加源 --> 查看

$ sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm$ sudo yum repolist Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com repo id repo name status base/7/x86_64 CentOS-7 - Base 9,911 extras/7/x86_64 CentOS-7 - Extras 368 nginx/x86_64 nginx repo 108 updates/7/x86_64 CentOS-7 - Updates 1,041 repolist: 11,428

安裝

$ sudo yum install nginx

配置

設(shè)置開(kāi)機(jī)啟動(dòng)

$ sudo systemctl enable nginx

啟動(dòng)服務(wù)

$ sudo systemctl start nginx

停止服務(wù)

$ sudo systemctl restart nginx

重新加載

一般重新配置之后,不希望重啟服務(wù),這時(shí)可以使用重新加載。

$ sudo systemctl reload nginx

防火墻

默認(rèn) CentOS7 使用的防火墻 firewalld 是關(guān)閉 http 服務(wù)的(打開(kāi) 80 端口)。

$ sudo firewall-cmd --zone=public --permanent --add-service=http success $ sudo firewall-cmd --reload success

打開(kāi)之后,可以查看一下防火墻打開(kāi)的所有的服務(wù)

$ sudo firewall-cmd --list-service ssh dhcpv6-client http

可以看到,系統(tǒng)已經(jīng)打開(kāi)了 http 服務(wù)。

效果圖

可能出現(xiàn)的問(wèn)題

報(bào) [emerg] bind() to 0.0.0.0:XXXX failed (13: Permission denied)錯(cuò)誤的處理方式

端口小于1024

原因是1024以下端口啟動(dòng)時(shí)需要root權(quán)限,所以sudo nginx即可。

端口大于1024

  • 查看http允許訪問(wèn)的端口

    $ semanage port -l | grep http_port_t
  • 將要啟動(dòng)的端口加入到如上端口列表中

    $ semanage port -a -t http_port_t -p tcp 8090
  • 403 Forbidden

    一般是四種原因:

    • SELinux沒(méi)有關(guān)閉
    • Nginx啟動(dòng)用戶和工作用戶不一致
    • 網(wǎng)頁(yè)所在的目錄權(quán)限不對(duì)
    • 缺少默認(rèn)的首頁(yè)

    SELinux沒(méi)有關(guān)閉

    1.1 臨時(shí)關(guān)閉SELinux,但是重啟操作系統(tǒng)還會(huì)開(kāi)啟

    setenforce=0

    1.2 永久關(guān)閉SELinux

    vim /etc/selinux/config 將SELINUX=enforcing 修改為 SELINUX=disabled 狀態(tài)

    Nginx啟動(dòng)用戶和工作用戶不一致

    查看啟動(dòng)nginx 用戶 ps aux | grep "nginx: worker process" | awk '{print $1}' nobody root修改nginx 配置文件 vim /etc/nginx/nginx.conf將 user nobody; 修改為 user root; 重啟Nginx 注意:Nginx的啟動(dòng)用戶和工作用戶可以不一致,但是要配好網(wǎng)頁(yè)目錄的權(quán)限,讓工作用戶有訪問(wèn)網(wǎng)頁(yè)目錄的權(quán)限

    網(wǎng)頁(yè)所在的目錄權(quán)限不對(duì)

    3.1 精細(xì)控制:網(wǎng)頁(yè)根目錄要用x權(quán)限(也就是可以cd進(jìn)去),網(wǎng)頁(yè)所在的父級(jí)目錄要有r(可讀權(quán)限)
    3.2 簡(jiǎn)單粗暴(不推薦,不安全,但是效果明顯):

    chmod -R 777 /web chmod -R 777 /web/www

    缺少默認(rèn)的首頁(yè)

    權(quán)限配完了,訪問(wèn)首頁(yè)還顯示403 Forbidden?
    網(wǎng)頁(yè)根目錄提供一個(gè)默認(rèn)的首頁(yè): index.html

    訪問(wèn)報(bào)錯(cuò):No input file specified

    根本原因,是nginx配置不正確,導(dǎo)致CGI獲取參數(shù)錯(cuò)誤。簡(jiǎn)單來(lái)說(shuō),是因?yàn)榕渲梦募衒astcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 的 $document_root 這個(gè)變量未定義。

    分析:
    Nginx的配置文件中,有三級(jí)關(guān)系,http > server > location。
    如果要在location中使用document_root,需要在上層server塊或http塊中定義了root指令,這樣才能通過(guò)繼承關(guān)系,
    在location中用document_root拿到root的值。而定義在別的location中的root指令值,是一個(gè)局部變量,它的值無(wú)法在匹配php的這個(gè)location中被獲取。

    解決:
    把“/” location中的 root 往上提到 server 塊中。
    或者,
    在php的location塊中重新定義 root。

    recv() failed (104: Connection reset by peer) while reading response header from upstream

    • 修改配置文件 /etc/php-fpm.d/www.conf
    • listen = 127.0.0.1:9000 改成 listen = 9000
    • listen.allowed_clients = 127.0.0.1 注釋掉或刪掉

    MYSQL

    yum源的安裝

    rpm -ivh mysql57-community-release-el7-9.noarch.rpm

    安裝完成后,就可以使用yum命令安裝mysql了:
    yum -y install mysql-server

    # 啟動(dòng)mysql: systemctl start mysqld# 查看mysql狀態(tài): systemctl status mysqld# 獲取mysql的臨時(shí)密碼: grep 'temporary password' /var/log/mysqld.logx# 登錄mysql:(密碼為上一步驟獲取的臨時(shí)密碼) mysql -u root -p(此處不用輸入密碼,按下回車后會(huì)專門要你再輸入密碼的)# 登錄成功后,做任何操作都會(huì)被要求先修改密碼 show databases;# 因?yàn)?.7及以上版本的數(shù)據(jù)庫(kù)對(duì)密碼做了強(qiáng)度要求, # 默認(rèn)密碼的要求必須是大小寫字母數(shù)字特殊字母的組合且至少要8位長(zhǎng)度 ALTER USER 'root'@'localhost' IDENTIFIED BY '新的密碼';

    擴(kuò)展

    修改密碼的強(qiáng)度:

    查看密碼的規(guī)則:
    SHOW VARIABLES LIKE 'validate_password%';

    關(guān)注兩個(gè)信息即可:

    • validate_password_length=8,表示長(zhǎng)度最少為8位
    • validate_password_policy=MEDIUM,表示密碼的安全等級(jí)為中

    設(shè)置密碼強(qiáng)度

    • set global validate_password_policy=0;–表示將密碼安全等級(jí)設(shè)置為low
    • set global validate_password_length=6;–表示將密碼長(zhǎng)度設(shè)置為最小6位

    PHP7.3

    安裝源

    yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

    安裝PHP 以及 擴(kuò)展

    yum install -y php73-php-fpm php73-php-cli php73-php-bcmath php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-pecl-swoole php73-php-recode php73-php-snmp php73-php-soap php73-php-xml php73-php-zipphp73 -v #查看版本systemctl enable php73-php-fpm #開(kāi)啟開(kāi)機(jī)自啟systemctl restart php73-php-fpm #重啟systemctl start php73-php-fpm #啟動(dòng)systemctl stop php73-php-fpm #關(guān)閉systemctl status php73-php-fpm #檢查狀態(tài)

    設(shè)置

    # 將php73鏈接到系統(tǒng)環(huán)境變量中,就可以使用 php -vln -s /opt/remi/php73/root/usr/bin/php /usr/bin/php# 將 cgi.fix_pathinfo 設(shè)置為 0sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/opt/remi/php73/php.ini關(guān)于 cgi.fix_pathinfo 選項(xiàng)請(qǐng)查看(https://taobig.org/?p=650)潛在的漏洞風(fēng)險(xiǎn),關(guān)于安全隱患的問(wèn)題可查看(http://www.laruence.com/2010/05/20/1495.html)

    安裝更多擴(kuò)展:

    目前只安裝了部分 PHP 拓展,更多擴(kuò)展可見(jiàn): $ yum search php73$ 更新 PHP: yum update #更新可更新的所有軟件,包括PHP

    Composer

    curl -sS https://getcomposer.org/installer -o composer-setup.phpsudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer# 更新 composer sudo composer self-update

    總結(jié)

    以上是生活随笔為你收集整理的【NGINX+PHP7.3+MYSQL】安装指南的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。