linux+docker+nginx如何配置環境並配置域名訪問


一、環境准備

1)下載php環境包,下載地址為:https://www.php.net/downloads.php

2)安裝docker,這個主要的作用就是用來安裝mysql.你也可以不需要安裝這個東西,直接在linux中安裝mysql

3)  安裝nginx,主要作用就是用來分發php的地址分發管理

二、開始安裝

這一步中,我主要教大家如何安裝php環境,因為剩下的兩個都是小問題。最后也就是教大家如何配置nginx的nginx配置,用來訪問到我們的php項目。

1.安裝php環境

1)安裝php環境(我這里主要下載的php7.2版本)

2)把下載的包傳到linux文件夾里面,並進行解壓,假如沒有相關的命令提示,請自行安裝。

tar -xvzf php-7.0.5.tar.gz
cd php-7.0.53)

3)接下來進行參數配置,配置前如果沒有libxml2和libxml2-devel會報錯,所以應該更新libxml2並安裝libxml2-devel,使用在線安裝:

yum -y install libxml2
yum -y install libxml2-devel
注:補充,因為不同的操作系統環境,系統安裝開發環境包的完整程度也不相同,所以建議安裝操作系統的時候做必要選擇,也可以統一執行一遍所有的命令,將沒有安裝的組件安裝好,如果已經安裝了可能會進行升級,版本完全一致則不會進行任何操作,命令除上面2個之外,匯總如下:
yum -y install openssl
yum -y install openssl-devel
yum -y install curl
yum -y install curl-devel
yum -y install libjpeg
yum -y install libjpeg-devel
yum -y install libpng
yum -y install libpng-devel
yum -y install freetype
yum -y install freetype-devel
yum -y install pcre
yum -y install pcre-devel
yum -y install libxslt
yum -y install libxslt-devel
yum -y install bzip2
yum -y install bzip2-devel

4)完成上面的安裝后執行配置

./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir

5)執行編譯/安裝

    make

    make install

   注:這里等等吧,因為需要時間,大概10分鍾。

6)php的默認安裝位置上面已經指定為/usr/local/php,接下來配置相應的文件

cp php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin

7)設置php.ini

   vim /usr/local/php/lib/php.ini

  注:默認被注釋並且值為1,根據官方文檔的說明,這里為了當文件不存在時,阻止Nginx將請求發送到后端的PHP-FPM模塊,從而避免惡意腳本注入的攻擊,所以此項應該去掉注釋並設置為0,設置完畢保存並退出

 

8)此時首先應該創建web用戶

groupadd www-data
useradd -g www-data www-data
注:名字可以根據自己的喜歡確定

9)然后網上一些教程說讓修改php-fpm.conf添加以上創建的用戶和組,這時候使用 vim /usr/local/etc/php-fpm.conf 打開文件后找不到官方所提示的位置

  

 

  注:如果此時隨便在一個位置添加,那么接下來啟動php-fpm的時候,會報目錄找不到的錯誤,所以不要在php-fpm.conf中添加用戶和組,這個時候翻到php-fpm.conf最后一行會發現如下內容(如果編譯時添加--prefix選項以下位置會自動補全,默認是下面是空的,要注意)

 

 

 這里引入了php-fpm.d目錄下所有的conf配置文件,但是NONE需要修改為我們的實際目錄:/usr/local

 

 

 

 這里我自己把自己坑了一把,所以最后我直接進入到php的sbin中進行啟動和停止。

 10)默認情況下etc/php-fpm.d/下有一個名為www.conf.defalut的配置用戶的文件,執行下面命令復制一個新文件並且打開

cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
vim /usr/local/etc/php-fpm.d/www.conf
默認user和group的設置為nobody,將其改為www-data

 

 

11)修改完成之后,保存並退出,然后執行以下命令啟動php-fpm服務

/usr/local/bin/php-fpm

12)啟動完畢之后,php-fpm服務默認使用9000端口,使用 netstat -tln | grep 9000 可以查看端口使用情況

 

 9000端口正常使用,說明php-fpm服務啟動成功

2.安裝nginx,在這里默認大家都會安裝,不會安裝自己的度娘下啊。

1)配置nginx

 vim /usr/local/nginx/nginx.conf

 注:這里附上我的nginx配置,進攻參考

user data-www data-www;
worker_processes 1;
events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;


server {
listen 80;
server_name 你的域名地址(www.baidu.com);
index index.php index.html;
error_log /usr/local/nginx/logs/項目名.error.log;
access_log /usr/local/nginx/logs/項目名.access.log;
root /usr/local/nginx/html/項目名;
#nginx header
underscores_in_headers on;


location / {
try_files $uri $uri/ /index.php$is_args$args;
}


location ~ \.php {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;fastcgi_param RUN_ENV development;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
}

}


}

 

2)修改完這些保存並退出,然后重啟nginx

/usr/local/nginx/nginx -s stop
/usr/local/nginx/nginx

3)測試,

    假如你的php項目中沒有相關的東西,那么你在你的新項目名中新建一個index.php文件,並訪問你配置的域名地址www.baidu.com,並出現下面的頁面,說明配置成功

 

 附上:在執行項目時可能你會出現出現很多的問題,不要慌,記得看日志哦。

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM